From ccd4e2f532e3a660e4078370fd58d46429755078 Mon Sep 17 00:00:00 2001 From: Yuriy Date: Wed, 19 Sep 2018 18:55:09 +0300 Subject: [PATCH 1/2] bump camel version (#733) --- pom.xml | 2 +- .../contract/verifier/messaging/camel/CamelStubMessages.java | 2 +- .../messaging/camel/ContractVerifierCamelMessageBuilder.java | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index d8c769cd7e..b4fcd83b25 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ 5.12.1 - 2.18.3 + 2.21.2 2.17 1.3.10.RELEASE 1.2.2.BUILD-SNAPSHOT diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelStubMessages.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelStubMessages.java index b5a2461373..3d49f227c4 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelStubMessages.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelStubMessages.java @@ -64,7 +64,7 @@ public class CamelStubMessages implements MessageVerifier { @Override public void send(T payload, Map headers, String destination) { - send(this.builder.create(payload, headers), destination); + send(this.builder.create(this.context, payload, headers), destination); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessageBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessageBuilder.java index c2e87c94ca..5fba63a5a3 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessageBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessageBuilder.java @@ -18,6 +18,7 @@ package org.springframework.cloud.contract.verifier.messaging.camel; import java.util.Map; +import org.apache.camel.CamelContext; import org.apache.camel.Message; import org.apache.camel.impl.DefaultMessage; @@ -26,8 +27,8 @@ import org.apache.camel.impl.DefaultMessage; */ class ContractVerifierCamelMessageBuilder { - public Message create(T payload, Map headers) { - DefaultMessage message = new DefaultMessage(); + public Message create(CamelContext camelContext, T payload, Map headers) { + DefaultMessage message = new DefaultMessage(camelContext); message.setBody(payload); message.setHeaders(headers); return message; From 1413704cfbb3b6b06ec72e0d087f362e50c7bc12 Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Mon, 15 Oct 2018 16:04:53 +0200 Subject: [PATCH 2/2] Remove duplicated backslashes. Fixes gh-667 --- .../wiremock/BaseWireMockStubStrategy.groovy | 3 +- .../verifier/dsl/WireMockGroovyDslSpec.groovy | 44 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/BaseWireMockStubStrategy.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/BaseWireMockStubStrategy.groovy index d5c681a4e5..d8d676318c 100755 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/BaseWireMockStubStrategy.groovy +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/BaseWireMockStubStrategy.groovy @@ -165,7 +165,8 @@ abstract class BaseWireMockStubStrategy { Map convertedMap = MapConverter.transformValues(value) { it instanceof GString ? it.toString() : it } as Map - return new JSONObject(new JsonBuilder(convertedMap).toString()) + String jsonOutput = new JSONObject(new JsonBuilder(convertedMap).toString()).toString() + return jsonOutput.replaceAll("\\\\\\\\\\\\", "\\\\") } return new JsonBuilder(value).toString() } diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/WireMockGroovyDslSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/WireMockGroovyDslSpec.groovy index 6c9d75c3e9..a3082cc112 100755 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/WireMockGroovyDslSpec.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/WireMockGroovyDslSpec.groovy @@ -2154,6 +2154,50 @@ class WireMockGroovyDslSpec extends Specification implements WireMockStubVerifie } + @Issue('#667') + def "should not double escape backslashes"() { + given: + Contract groovyDsl = org.springframework.cloud.contract.spec.Contract.make { + priority 1 + request { + method 'GET' + urlPath(value(consumer(regex(/\/data\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/)), + producer('/data/444d57b2-e309-4576-83cb-5530ee03106a'))) + } + response { + status 200 + headers { + header("Content-Type", "application/json;charset=UTF-8") + } + body([ + jsonString: '{\\"attribute\\": \\"value\\"}' + ]) + } + } + when: + String wireMockStub = new WireMockStubStrategy("Test", new ContractMetadata(null, false, 0, null, groovyDsl), groovyDsl).toWireMockClientStub() + then: + AssertionUtil.assertThatJsonsAreEqual(''' + { + "request" : { + "urlPathPattern" : "/data/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "method" : "GET" + }, + "response" : { + "status" : 200, + "body" : "{\\"jsonString\\":\\"{\\\\\\"attribute\\\\\\": \\\\\\"value\\\\\\"}\\"}", + "headers" : { + "Content-Type" : "application/json;charset=UTF-8" + }, + "transformers" : [ "response-template", "foo-transformer" ] + }, + "priority" : 1 + } + ''', wireMockStub) + and: + stubMappingIsValidWireMockStub(wireMockStub) + } + WireMockConfiguration config() { return new WireMockConfiguration().extensions(responseTemplateTransformer()) }