protected Target lookupTarget(Object testInstance) { final Target target = testClass.getAnnotatedFieldValues(testInstance, TestTarget.class, Target.class).get(0); if (target instanceof TestClassAwareTarget) { ((TestClassAwareTarget) target).setTestClass(testClass, testInstance); } return target; }
@Override public void evaluate() throws Throwable { setupTargetForInteraction(target); target.addResultCallback((result, verifier) -> results.put(interaction, new Pair<>(result, verifier))); surrogateTestMethod(); target.testInteraction(pact.getConsumer().getName(), interaction, source); } };
/** * {@inheritDoc} */ @Override public void testInteraction(final String consumerName, final Interaction interaction, PactSource source) { ProviderInfo provider = getProviderInfo(source); ConsumerInfo consumer = new ConsumerInfo(consumerName); ProviderVerifier verifier = setupVerifier(interaction, provider, consumer); Map<String, Object> failures = new HashMap<>(); ProviderClient client = new ProviderClient(provider, new HttpClientFactory()); verifier.verifyResponseFromProvider(provider, interaction, interaction.getDescription(), failures, client); reportTestResult(failures.isEmpty(), verifier); try { if (!failures.isEmpty()) { verifier.displayFailures(failures); throw getAssertionError(failures); } } finally { verifier.finialiseReports(); } }
@TestTarget public final MockMvcTarget target = new MockMvcTarget();
@Override protected ProviderVerifier setupVerifier(Interaction interaction, ProviderInfo provider, ConsumerInfo consumer) { ProviderVerifier verifier = new ProviderVerifier(); setupReporters(verifier, provider.getName(), interaction.getDescription()); verifier.initialiseReporters(provider); verifier.reportVerificationForConsumer(consumer, provider); if (!interaction.getProviderStates().isEmpty()) { for (ProviderState providerState: interaction.getProviderStates()) { verifier.reportStateForInteraction(providerState.getName(), provider, consumer, true); } } verifier.reportInteractionDescription(interaction); return verifier; }
public class UserCreatedMessageProviderTest { @TestTarget public final Target target = new CustomAmqpTarget(Collections.singletonList("io.reflectoring"));
@RunWith(PactRunner.class) @Provider("Our Provider") @PactBroker(host = "test.pact.dius.com.au", protocol = "https", port = "443", authentication = @PactBrokerAuth(username = "${pactBrokerUser}", password = "${pactBrokerPassword}")) public class PactVerificationTest { @ClassRule public static final DropwizardAppRule<ServiceConfig> RULE = new DropwizardAppRule<ServiceConfig>(MainApplication.class, ResourceHelpers.resourceFilePath("main-app-config.yaml")); @TestTarget public final Target target = new HttpTarget(8080); @State("data count > 0") public void dataCountGreaterThanZero() { DataStore.INSTANCE.setDataCount(1000); } @State("data count == 0") public void dataCountZero() { DataStore.INSTANCE.setDataCount(0); } }