From 9abc2b39e1208213c24c413ee80154302eab5dcf Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 4 Apr 2018 16:03:43 +0200 Subject: [PATCH] Migrating to byte arrays; fixes #605 --- .../integration/StubRunnerIntegrationTransformer.java | 2 +- .../messaging/stream/StubRunnerStreamTransformer.java | 2 +- .../stream/ContractVerifierStreamMessageBuilder.java | 6 +++++- .../messaging/stream/StubRunnerStreamTransformerSpec.groovy | 6 +++--- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationTransformer.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationTransformer.java index edae399e92..5bc54fc057 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationTransformer.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationTransformer.java @@ -40,7 +40,7 @@ class StubRunnerIntegrationTransformer implements GenericTransformer, @Override public Message transform(Message source) { - if (this.groovyDsl.getOutputMessage()==null) { + if (this.groovyDsl.getOutputMessage() == null) { return source; } String payload = BodyExtractor.extractStubValueFrom(this.groovyDsl.getOutputMessage().getBody()); diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamTransformer.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamTransformer.java index c9b864838a..f419ae365d 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamTransformer.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamTransformer.java @@ -45,6 +45,6 @@ class StubRunnerStreamTransformer implements GenericTransformer, Mess } String payload = BodyExtractor.extractStubValueFrom(this.groovyDsl.getOutputMessage().getBody()); Map headers = this.groovyDsl.getOutputMessage().getHeaders().asStubSideMap(); - return MessageBuilder.createMessage(payload, new MessageHeaders(headers)); + return MessageBuilder.createMessage(payload.getBytes(), new MessageHeaders(headers)); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessageBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessageBuilder.java index a7ce272a67..f51f331a26 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessageBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessageBuilder.java @@ -28,7 +28,11 @@ import org.springframework.messaging.support.MessageBuilder; class ContractVerifierStreamMessageBuilder { public Message create(T payload, Map headers) { - return MessageBuilder.createMessage(payload, new MessageHeaders(headers)); + Object payloadToSend = payload; + if (payload instanceof String) { + payloadToSend = ((String) payload).getBytes(); + } + return MessageBuilder.createMessage(payloadToSend, new MessageHeaders(headers)); } } diff --git a/tests/spring-cloud-contract-stub-runner-stream/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamTransformerSpec.groovy b/tests/spring-cloud-contract-stub-runner-stream/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamTransformerSpec.groovy index a948936dad..7e16370941 100644 --- a/tests/spring-cloud-contract-stub-runner-stream/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamTransformerSpec.groovy +++ b/tests/spring-cloud-contract-stub-runner-stream/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamTransformerSpec.groovy @@ -59,7 +59,7 @@ class StubRunnerStreamTransformerSpec extends Specification { when: def result = streamTransformer.transform(message) then: - result.payload == '{"responseId":"123"}' + result.payload == '{"responseId":"123"}'.bytes } def dslWithRegexInGString = Contract.make { @@ -90,7 +90,7 @@ class StubRunnerStreamTransformerSpec extends Specification { when: def result = streamTransformer.transform(message) then: - result.payload == '''{"id":"99","temperature":"123.45"}''' + result.payload == '''{"id":"99","temperature":"123.45"}'''.bytes } def 'should parse dsl without DslProperty'() { @@ -126,7 +126,7 @@ class StubRunnerStreamTransformerSpec extends Specification { when: def result = streamTransformer.transform(message) then: - result.payload == '''{"orderId":"40058c70-891c-4176-a033-f70bad0c5f77","description":"This is the order description"}''' + result.payload == '''{"orderId":"40058c70-891c-4176-a033-f70bad0c5f77","description":"This is the order description"}'''.bytes } }