use of au.com.dius.pact.consumer.PactVerification in project pact-jvm by DiUS.
the class PactMultiProviderTest method bothprovidersFail.
@Test
@PactVerification(value = { "test_provider", "test_provider2" })
public void bothprovidersFail() throws IOException, InterruptedException {
mockTestProvider.validateResultWith((result, t) -> {
assertThat(t, is(instanceOf(AssertionError.class)));
assertThat(t.getMessage(), startsWith("The following mismatched requests occurred:\nUnexpected Request:\n\tmethod: GET\n\tpath: /abc"));
assertThat(result, is(instanceOf(PactVerificationResult.Mismatches.class)));
PactVerificationResult.Mismatches error = (PactVerificationResult.Mismatches) result;
assertThat(error.getMismatches(), hasSize(1));
PactVerificationResult result1 = error.getMismatches().get(0);
assertThat(result1, is(instanceOf(PactVerificationResult.UnexpectedRequest.class)));
PactVerificationResult.UnexpectedRequest unexpectedRequest = (PactVerificationResult.UnexpectedRequest) result1;
assertThat(unexpectedRequest.getRequest().getPath(), is("/abc"));
});
mockTestProvider2.validateResultWith((result, t) -> {
assertThat(t, is(instanceOf(AssertionError.class)));
assertThat(t.getMessage(), is("The following mismatched requests occurred:\n" + "PartialMismatch(mismatches=[BodyMismatch(larry,farry,Some(Expected 'larry' but received 'farry'),$.body.name,None)])"));
assertThat(result, is(instanceOf(PactVerificationResult.Mismatches.class)));
PactVerificationResult.Mismatches error = (PactVerificationResult.Mismatches) result;
assertThat(error.getMismatches(), hasSize(1));
PactVerificationResult result1 = error.getMismatches().get(0);
assertThat(result1, is(instanceOf(PactVerificationResult.PartialMismatch.class)));
PactVerificationResult.PartialMismatch error1 = (PactVerificationResult.PartialMismatch) result1;
assertThat(error1.getMismatches(), hasSize(1));
RequestPartMismatch mismatch = error1.getMismatches().get(0);
assertThat(mismatch, is(instanceOf(BodyMismatch.class)));
});
doTest("/abc", "{\"name\": \"farry\"}");
}
use of au.com.dius.pact.consumer.PactVerification in project pact-jvm by DiUS.
the class PactProviderHttpsKeystoreTest method testKeystoreHappyPath.
@Test
@PactVerification(value = "test_provider")
public void testKeystoreHappyPath() {
MockHttpsKeystoreProviderConfig config = (MockHttpsKeystoreProviderConfig) mockTestProvider.getConfig();
LOGGER.info("Keystore path: " + config.getKeystore());
RestAssured.given().header("testreqheader", "testreqheadervalue").trustStore(config.getKeystore(), config.getKeystorePassword()).when().options(mockTestProvider.getConfig().url() + "/second").then().statusCode(200);
RestAssured.given().header("testreqheader", "testreqheadervalue").trustStore(config.getKeystore(), config.getKeystorePassword()).when().get(mockTestProvider.getConfig().url() + "/").then().body("responsetest", Matchers.equalTo(true)).body("name", Matchers.equalTo("harry"));
}
use of au.com.dius.pact.consumer.PactVerification in project pact-jvm by DiUS.
the class ExampleServiceConsumerTest method testBookCar.
@PactVerification("CarBookingProvider")
@Test
public void testBookCar() throws IOException {
ProviderCarBookingRestClient providerRestClient = new ProviderCarBookingRestClient();
HttpResponse response = providerRestClient.placeOrder("http://localhost:1234", DATA_A_ID, DATA_B_ID, "2015-03-15");
Assert.assertEquals(201, response.getStatusLine().getStatusCode());
String orderDetails = EntityUtils.toString(response.getEntity());
Assert.assertEquals("{\"id\":\"ORDER_ID_123456\"}", orderDetails);
}
use of au.com.dius.pact.consumer.PactVerification in project pact-jvm by DiUS.
the class PactMultiProviderTest method provider2Fails.
@Test
@PactVerification(value = { "test_provider", "test_provider2" })
public void provider2Fails() throws IOException, InterruptedException {
mockTestProvider2.validateResultWith((result, t) -> {
assertThat(t, is(instanceOf(AssertionError.class)));
assertThat(t.getMessage(), is("The following mismatched requests occurred:\n" + "PartialMismatch(mismatches=[BodyMismatch(larry,farry,Some(Expected 'larry' but received 'farry'),$.body.name,None)])"));
assertThat(result, is(instanceOf(PactVerificationResult.Mismatches.class)));
PactVerificationResult.Mismatches error = (PactVerificationResult.Mismatches) result;
assertThat(error.getMismatches(), hasSize(1));
PactVerificationResult result1 = error.getMismatches().get(0);
assertThat(result1, is(instanceOf(PactVerificationResult.PartialMismatch.class)));
PactVerificationResult.PartialMismatch error1 = (PactVerificationResult.PartialMismatch) result1;
assertThat(error1.getMismatches(), hasSize(1));
RequestPartMismatch mismatch = error1.getMismatches().get(0);
assertThat(mismatch, is(instanceOf(BodyMismatch.class)));
});
doTest("/", "{\"name\": \"farry\"}");
}
use of au.com.dius.pact.consumer.PactVerification in project pact-jvm by DiUS.
the class PactProviderHttpsKeystoreTest method testMisMatchedTrustStore.
@Test(expected = SSLHandshakeException.class)
@PactVerification(value = "test_provider")
public void testMisMatchedTrustStore() {
testKeystoreHappyPath();
//Used the following command to create jks file:
//keytool -genkeypair -alias localhost -keyalg RSA -validity 36500 -keystore pact-jvm-other.jks
File trustStore = Paths.get("src/test/resources/keystore/pact-jvm-other.jks").toFile();
RestAssured.given().header("testreqheader", "testreqheadervalue").trustStore(trustStore, "bbarkewashere").when().options(mockTestProvider.getConfig().url() + "/second").then().statusCode(200);
}
Aggregations