contract-testing-demo

pact and java contract testing with micro-commits

git clone https://9o.is/git/contract-testing-demo.git

commit 18fcf94515f384eaf0b6d676079ddb9d4c00dbf8
parent 54559fa28e6af0c2ca01a7e07d4f8460eaba4618
Author: Jul <jul@9o.is>
Date:   Wed, 26 Jun 2019 15:27:31 -0400

Extract Pact setup and verification - refactoring

Diffstat:
Aconsumer-driven/zoo-service/src/test/java/AnimalServiceHelper.java | 28++++++++++++++++++++++++++++
Mconsumer-driven/zoo-service/src/test/java/AnimalServicePactTest.java | 27++-------------------------
2 files changed, 30 insertions(+), 25 deletions(-)

diff --git a/consumer-driven/zoo-service/src/test/java/AnimalServiceHelper.java b/consumer-driven/zoo-service/src/test/java/AnimalServiceHelper.java @@ -0,0 +1,28 @@ +import au.com.dius.pact.consumer.PactVerificationResult; +import au.com.dius.pact.model.MockProviderConfig; +import au.com.dius.pact.model.RequestResponsePact; + +import static au.com.dius.pact.consumer.ConsumerPactRunnerKt.runConsumerTest; +import static org.junit.Assert.assertEquals; + +class AnimalServiceHelper { + + interface AnimalServiceSetup { + void setupAnimalService(AnimalService animalService); + } + + static void consume(RequestResponsePact pact, AnimalServiceSetup animalServiceSetup) { + MockProviderConfig config = MockProviderConfig.createDefault(); + + PactVerificationResult result = runConsumerTest(pact, config, (mockServer, context) -> { + AnimalService animalService = new AnimalService(mockServer.getUrl()); + animalServiceSetup.setupAnimalService(animalService); + }); + + if (result instanceof PactVerificationResult.Error) { + throw new RuntimeException(((PactVerificationResult.Error)result).getError()); + } + + assertEquals(PactVerificationResult.Ok.INSTANCE, result); + } +} diff --git a/consumer-driven/zoo-service/src/test/java/AnimalServicePactTest.java b/consumer-driven/zoo-service/src/test/java/AnimalServicePactTest.java @@ -1,14 +1,11 @@ import au.com.dius.pact.consumer.ConsumerPactBuilder; -import au.com.dius.pact.consumer.PactVerificationResult; import au.com.dius.pact.consumer.dsl.PactDslWithProvider; -import au.com.dius.pact.model.MockProviderConfig; import au.com.dius.pact.model.RequestResponsePact; import org.junit.Test; import java.util.HashMap; import java.util.Map; -import static au.com.dius.pact.consumer.ConsumerPactRunnerKt.runConsumerTest; import static org.junit.Assert.*; public class AnimalServicePactTest { @@ -34,20 +31,10 @@ public class AnimalServicePactTest { .body("{\"name\": \"Mary\"}") .toPact(); - MockProviderConfig config = MockProviderConfig.createDefault(); - - PactVerificationResult result = runConsumerTest(pact, config, (mockServer, context) -> { - AnimalService animalService = new AnimalService(mockServer.getUrl()); + AnimalServiceHelper.consume(pact, animalService -> { Alligator alligator = animalService.getAlligator("Mary"); - assertEquals("Mary", alligator.getName()); }); - - if (result instanceof PactVerificationResult.Error) { - throw new RuntimeException(((PactVerificationResult.Error)result).getError()); - } - - assertEquals(PactVerificationResult.Ok.INSTANCE, result); } @Test @@ -61,20 +48,10 @@ public class AnimalServicePactTest { .status(404) .toPact(); - MockProviderConfig config = MockProviderConfig.createDefault(); - - PactVerificationResult result = runConsumerTest(pact, config, (mockServer, context) -> { - AnimalService animalService = new AnimalService(mockServer.getUrl()); + AnimalServiceHelper.consume(pact, animalService -> { Alligator alligator = animalService.getAlligator("Mary"); - assertNull(alligator); }); - - if (result instanceof PactVerificationResult.Error) { - throw new RuntimeException(((PactVerificationResult.Error)result).getError()); - } - - assertEquals(PactVerificationResult.Ok.INSTANCE, result); } public void animalServiceIsUnavailable() {}