package au.com.dius.pact.consumer.pactproviderrule;
import au.com.dius.pact.consumer.PactProviderRuleMk2;
import au.com.dius.pact.consumer.PactVerification;
import au.com.dius.pact.consumer.PactVerificationResult;
import java.util.function.BiConsumer;
public class TestFailureProviderRule extends PactProviderRuleMk2 {
private BiConsumer<PactVerificationResult, Throwable> verificationResultConsumer;
public TestFailureProviderRule(String provider, Object target) {
super(provider, target);
}
@Override
protected void validateResult(PactVerificationResult result, PactVerification pactVerification) throws Throwable {
try {
super.validateResult(result, pactVerification);
if (verificationResultConsumer != null) {
verificationResultConsumer.accept(result, null);
}
} catch (Throwable throwable) {
if (verificationResultConsumer != null) {
verificationResultConsumer.accept(result, throwable);
} else {
throw throwable;
}
}
}
public void validateResultWith(BiConsumer<PactVerificationResult, Throwable> function) {
this.verificationResultConsumer = function;
}
}