contract-testing-demo
pact and java contract testing with micro-commits
AnimalServiceHelper.java
(1076B)
1 import au.com.dius.pact.consumer.PactVerificationResult;
2 import au.com.dius.pact.model.MockProviderConfig;
3 import au.com.dius.pact.model.RequestResponsePact;
4
5 import static au.com.dius.pact.consumer.ConsumerPactRunnerKt.runConsumerTest;
6 import static org.junit.Assert.assertEquals;
7
8 class AnimalServiceHelper {
9
10 interface AnimalServiceSetup {
11 void setupAnimalService(AnimalService animalService);
12 }
13
14 static void consume(RequestResponsePact pact, AnimalServiceSetup animalServiceSetup) {
15 MockProviderConfig config = MockProviderConfig.createDefault();
16
17 PactVerificationResult result = runConsumerTest(pact, config, (mockServer, context) -> {
18 AnimalService animalService = new AnimalService(mockServer.getUrl());
19 animalServiceSetup.setupAnimalService(animalService);
20 });
21
22 if (result instanceof PactVerificationResult.Error) {
23 throw new RuntimeException(((PactVerificationResult.Error)result).getError());
24 }
25
26 assertEquals(PactVerificationResult.Ok.INSTANCE, result);
27 }
28 }