@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; }
@Override public void interactionDescription(Interaction interaction) { this.interactionGroup = new GroupEntry(interaction.getDescription()); this.verificationGroup.getPropertyEntries().add(this.interactionGroup); }
protected Statement withStateChanges(final Interaction interaction, final Object target, final Statement prevStatement) { if (!interaction.getProviderStates().isEmpty()) { Statement stateChange = prevStatement; for (ProviderState state: interaction.getProviderStates()) { List<Pair<FrameworkMethod, State>> methods = getAnnotatedMethods(testClass, State.class) .stream() .map(method -> { final State annotation = method.getAnnotation(State.class); return new Pair<>(method, annotation); }) .filter(method -> ArrayUtils.contains(method.getSecond().value(), state.getName())) .collect(Collectors.toList()); if (methods.isEmpty()) { return new Fail(new MissingStateChangeMethod("MissingStateChangeMethod: Did not find a test class method annotated with @State(\"" + state.getName() + "\")")); } else { stateChange = new RunStateChanges(stateChange, methods, target, state); } } return stateChange; } else { return prevStatement; } }
protected Description describeChild(final Interaction interaction) { if (!childDescriptions.containsKey(interaction)) { childDescriptions.put(interaction, Description.createTestDescription(testClass.getJavaClass(), pact.getConsumer().getName() + " - " + interaction.getDescription())); } return childDescriptions.get(interaction); }
@NotNull @Override protected ProviderVerifier setupVerifier(Interaction interaction, ProviderInfo provider, ConsumerInfo consumer) { ProviderVerifier verifier = new CustomProviderVerifier(getPackagesToScan()); setupReporters(verifier, provider.getName(), interaction.getDescription()); verifier.initialiseReporters(provider); verifier.reportVerificationForConsumer(consumer, provider); if (!interaction.getProviderStates().isEmpty()) { for (ProviderState state : interaction.getProviderStates()) { verifier.reportStateForInteraction(state.getName(), provider, consumer, true); } } verifier.reportInteractionDescription(interaction); return verifier; } }
/** * {@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(); } }
.filter(m -> { PactVerifyProvider annotation = m.getAnnotation(PactVerifyProvider.class); return annotation.value().equals(((Interaction)interaction).getDescription()); }) .collect(Collectors.toSet());