From 82fb1cdac3324633883e0b7118dcf30b0378ee67 Mon Sep 17 00:00:00 2001 From: Axel Hodler Date: Thu, 8 Feb 2018 15:24:19 +0100 Subject: [PATCH 1/2] Avoid quoting of floating point numbers --- .../wiremock/BaseWireMockStubStrategy.groovy | 2 +- .../WireMockResponseStubStrategySpec.groovy | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockResponseStubStrategySpec.groovy 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 c95f1c0d6b..fff0773842 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 @@ -164,7 +164,7 @@ abstract class BaseWireMockStubStrategy { Map convertedMap = MapConverter.transformValues(value) { it instanceof GString ? it.toString() : it } as Map - return new JSONObject(convertedMap).toString() + return new JSONObject(new JsonBuilder(convertedMap).toString()) } return new JsonBuilder(value).toString() } diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockResponseStubStrategySpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockResponseStubStrategySpec.groovy new file mode 100644 index 0000000000..3a047d25c3 --- /dev/null +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockResponseStubStrategySpec.groovy @@ -0,0 +1,26 @@ +package org.springframework.cloud.contract.verifier.dsl.wiremock + +import org.springframework.cloud.contract.spec.Contract +import spock.lang.Specification + +class WireMockResponseStubStrategySpec extends Specification { + def "should not quote floating point numbers"() { + given: + def irrelevantStatus = 200 + def contract = Contract.make { + request { + } + response { + status irrelevantStatus + body([ + value: 1.5 + ]) + } + } + when: + def subject = new WireMockResponseStubStrategy(contract) + def content = subject.buildClientResponseContent() + then: + '{"value":1.5}'.equals(content.body) + } +} From f05aa45704370f9df37228f0f07b011b23c1f676 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Mon, 19 Feb 2018 10:51:22 +0100 Subject: [PATCH 2/2] Fixed a test; fixes gh-542 --- .../cloud/contract/verifier/builder/JsonAssertTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/JsonAssertTests.java b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/JsonAssertTests.java index f025688541..a722919b9e 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/JsonAssertTests.java +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/JsonAssertTests.java @@ -14,6 +14,6 @@ public class JsonAssertTests { @Test public void should_compare_big_decimals() { DocumentContext context = JsonPath.parse("{\"foo\": 55534673.56}"); - assertThatJson(context).field("['foo']").isEqualTo(55534673.57); + assertThatJson(context).field("['foo']").isEqualTo(55534673.56); } }