package au.com.dius.pact.consumer.resultstests; import au.com.dius.pact.consumer.MockServer; import au.com.dius.pact.consumer.PactMismatchesException; import au.com.dius.pact.consumer.dsl.PactDslWithProvider; import au.com.dius.pact.consumer.exampleclients.ConsumerClient; import au.com.dius.pact.model.RequestResponsePact; import java.io.IOException; import java.util.HashMap; import java.util.Map; import static org.hamcrest.Matchers.containsString; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; public class UnexpectedRequestConsumerPassesTest extends ExpectedToFailBase { public UnexpectedRequestConsumerPassesTest() { super(PactMismatchesException.class); } @Override protected RequestResponsePact createPact(PactDslWithProvider builder) { Map<String, String> headers = new HashMap<String, String>(); headers.put("testreqheader", "testreqheadervalue"); return builder .uponReceiving("UnexpectedRequestConsumerPassesTest test interaction") .path("/") .method("GET") .headers(headers) .willRespondWith() .status(200) .body("{\"responsetest\": true, \"name\": \"fred\"}") .toPact(); } @Override protected String providerName() { return "resultstests_provider"; } @Override protected String consumerName() { return "resultstests_consumer"; } @Override protected void runTest(MockServer mockServer) throws IOException { Map<String, Object> expectedResponse = new HashMap<String, Object>(); expectedResponse.put("responsetest", true); expectedResponse.put("name", "fred"); ConsumerClient consumerClient = new ConsumerClient(mockServer.getUrl()); assertEquals(consumerClient.getAsMap("/", ""), expectedResponse); consumerClient.options("/options"); } @Override protected void assertException(Throwable e) { assertThat(e.getMessage(), containsString("The following mismatched requests occurred:\n" + "Unexpected Request:\n" + "\tmethod: OPTIONS\n" + "\tpath: /options")); } }