From a3712e77c4d913b38124889650d7f3a69e3491b6 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Mon, 18 Jul 2016 15:52:21 +0100 Subject: [PATCH] Make ContractVerifierMessaging independent of the builder interface The builder is really an internal detail of the messaging support, so it' sbetter if users just use the send method directly. --- .../CamelMessagingApplicationSpec.groovy | 21 +++++++------------ ...IntegrationMessagingApplicationSpec.groovy | 17 +++++---------- .../StreamMessagingApplicationSpec.groovy | 19 ++++++----------- .../stubrunner/StubRunnerExecutorSpec.groovy | 5 ----- .../camel/ContractVerifierCamelMessaging.java | 6 ------ .../ContractVerifierIntegrationMessaging.java | 7 +------ .../messaging/ContractVerifierMessaging.java | 3 +-- .../noop/NoOpContractVerifierMessaging.java | 5 ----- .../ContractVerifierStreamMessaging.java | 5 ----- 9 files changed, 20 insertions(+), 68 deletions(-) diff --git a/samples/samples-messaging-camel/src/test/groovy/com/example/CamelMessagingApplicationSpec.groovy b/samples/samples-messaging-camel/src/test/groovy/com/example/CamelMessagingApplicationSpec.groovy index 60cfab45da..13aa03b49d 100644 --- a/samples/samples-messaging-camel/src/test/groovy/com/example/CamelMessagingApplicationSpec.groovy +++ b/samples/samples-messaging-camel/src/test/groovy/com/example/CamelMessagingApplicationSpec.groovy @@ -76,7 +76,7 @@ public class CamelMessagingApplicationSpec extends Specification { def response = contractVerifierMessaging.receiveMessage('activemq:output') response.headers.get('BOOK-NAME') == 'foo' and: - DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.payload)) + DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.body)) JsonAssertion.assertThat(parsedJson).field('bookName').isEqualTo('foo') } @@ -107,18 +107,15 @@ public class CamelMessagingApplicationSpec extends Specification { // generated test should look like this: - //given: - Message inputMessage = contractVerifierMessaging.create( - contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), - [sample: 'header'] - ) when: - contractVerifierMessaging.send(inputMessage, 'jms:input') + contractVerifierMessaging.send( + contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), + [sample: 'header'], 'jms:input') then: def response = contractVerifierMessaging.receiveMessage('jms:output') response.headers.get('BOOK-NAME') == 'foo' and: - DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.payload)) + DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.body)) JsonAssertion.assertThat(parsedJson).field('bookName').isEqualTo('foo') } @@ -140,13 +137,9 @@ public class CamelMessagingApplicationSpec extends Specification { // generated test should look like this: - //given: - Message inputMessage = contractVerifierMessaging.create( - contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), - [sample: 'header'] - ) when: - contractVerifierMessaging.send(inputMessage, 'jms:delete') + contractVerifierMessaging.send(contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), + [sample: 'header'], 'jms:delete') then: noExceptionThrown() bookWasDeleted() diff --git a/samples/samples-messaging-integration/src/test/groovy/com/example/IntegrationMessagingApplicationSpec.groovy b/samples/samples-messaging-integration/src/test/groovy/com/example/IntegrationMessagingApplicationSpec.groovy index 68f20f4991..b03513291e 100644 --- a/samples/samples-messaging-integration/src/test/groovy/com/example/IntegrationMessagingApplicationSpec.groovy +++ b/samples/samples-messaging-integration/src/test/groovy/com/example/IntegrationMessagingApplicationSpec.groovy @@ -113,13 +113,10 @@ public class IntegrationMessagingApplicationSpec extends Specification { // generated test should look like this: - //given: - Message inputMessage = contractVerifierMessaging.create( - contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), - [sample: 'header'] - ) when: - contractVerifierMessaging.send(inputMessage, 'input') + contractVerifierMessaging.send( + contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), + [sample: 'header'], 'input') then: def response = contractVerifierMessaging.receiveMessage('output') response.headers.get('BOOK-NAME') == 'foo' @@ -146,13 +143,9 @@ public class IntegrationMessagingApplicationSpec extends Specification { // generated test should look like this: - //given: - Message inputMessage = contractVerifierMessaging.create( - contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), - [sample: 'header'] - ) when: - contractVerifierMessaging.send(inputMessage, 'delete') + contractVerifierMessaging.send(contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), + [sample: 'header'], 'delete') then: noExceptionThrown() bookWasDeleted() diff --git a/samples/samples-messaging-stream/src/test/groovy/com/example/StreamMessagingApplicationSpec.groovy b/samples/samples-messaging-stream/src/test/groovy/com/example/StreamMessagingApplicationSpec.groovy index 40dcd39128..e50f4a07e2 100644 --- a/samples/samples-messaging-stream/src/test/groovy/com/example/StreamMessagingApplicationSpec.groovy +++ b/samples/samples-messaging-stream/src/test/groovy/com/example/StreamMessagingApplicationSpec.groovy @@ -19,7 +19,7 @@ package com.example import javax.inject.Inject import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.IntegrationTest; +import org.springframework.boot.test.IntegrationTest import org.springframework.boot.test.context.SpringBootContextLoader import org.springframework.cloud.contract.spec.Contract import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging @@ -100,13 +100,10 @@ public class StreamMessagingApplicationSpec extends Specification { // generated test should look like this: - //given: - Message inputMessage = contractVerifierMessaging.create( - contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), - [sample: 'header'] - ) when: - contractVerifierMessaging.send(inputMessage, 'input') + contractVerifierMessaging.send( + contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), + [sample: 'header'], 'input') then: def response = contractVerifierMessaging.receiveMessage('output') response.headers.get('BOOK-NAME') == 'foo' @@ -133,13 +130,9 @@ public class StreamMessagingApplicationSpec extends Specification { // generated test should look like this: - //given: - Message inputMessage = contractVerifierMessaging.create( - contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), - [sample: 'header'] - ) when: - contractVerifierMessaging.send(inputMessage, 'delete') + contractVerifierMessaging.send(contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), + [sample: 'header'], 'delete') then: noExceptionThrown() bookWasDeleted() diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/StubRunnerExecutorSpec.groovy b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/StubRunnerExecutorSpec.groovy index c8a553a128..acc3f2ccd7 100644 --- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/StubRunnerExecutorSpec.groovy +++ b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/StubRunnerExecutorSpec.groovy @@ -118,13 +118,8 @@ class StubRunnerExecutorSpec extends Specification { @Override void send(Object o, Map headers, String destination) { - } - - @Override - Object create(Object o, Map headers) { assert !(JsonOutput.toJson(o).contains("serverValue")) assert headers.entrySet().every { !(it.value.toString().contains("serverValue")) } - return null } } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessaging.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessaging.java index d3b3d6d65a..5944f225ce 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessaging.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessaging.java @@ -91,10 +91,4 @@ public class ContractVerifierCamelMessaging implements return receiveMessage(destination, 5, TimeUnit.SECONDS); } - @Override - @SuppressWarnings("unchecked") - public Message create(T t, Map headers) { - return builder.create(t, headers); - } - } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationMessaging.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationMessaging.java index dc22e7b360..60b7795038 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationMessaging.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationMessaging.java @@ -51,7 +51,7 @@ public class ContractVerifierIntegrationMessaging implements @Override public void send(T payload, Map headers, String destination) { - send(create(payload, headers), destination); + send(builder.create(payload, headers), destination); } @Override @@ -83,9 +83,4 @@ public class ContractVerifierIntegrationMessaging implements return receiveMessage(destination, 5, TimeUnit.SECONDS); } - @Override - public Message create(T t, Map headers) { - return builder.create(t, headers); - } - } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessaging.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessaging.java index b46eb48f1d..e529cc1c41 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessaging.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessaging.java @@ -26,8 +26,7 @@ import java.util.concurrent.TimeUnit; * * @author Marcin Grzejszczak */ -public interface ContractVerifierMessaging extends - ContractVerifierMessageBuilder { +public interface ContractVerifierMessaging { /** * Sends the {@link ContractVerifierMessage} to the given destination. */ diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessaging.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessaging.java index 6b6bc56ff2..73a342e3c5 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessaging.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessaging.java @@ -43,9 +43,4 @@ public class NoOpContractVerifierMessaging implements ContractVerifierMessaging< return null; } - @Override - public Object create(T o, Map headers) { - return o; - } - } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessaging.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessaging.java index d30d312e29..fafdf2673f 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessaging.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessaging.java @@ -97,9 +97,4 @@ public class ContractVerifierStreamMessaging implements return receiveMessage(destination, 5, TimeUnit.SECONDS); } - @Override - public Message create(T t, Map headers) { - return builder.create(t, headers); - } - }