From f0c7d26e8bea4667a49e5bf88b380887b7564302 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 14 Nov 2018 12:01:23 +0100 Subject: [PATCH] Allows generating stubs for body containing boolean; fixes gh-708 --- .../wiremock/BaseWireMockStubStrategy.groovy | 2 +- .../verifier/dsl/WireMockGroovyDslSpec.groovy | 39 +++++++++++++++++++ 2 files changed, 40 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 d8d676318c..d0cd0459e0 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 @@ -88,7 +88,7 @@ abstract class BaseWireMockStubStrategy { /** * For the given {@link ContentType} returns the Boolean version of the body */ - Boolean parseBody(Boolean value, ContentType contentType) { + String parseBody(Boolean value, ContentType contentType) { return value } 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 a3082cc112..a7d94c207c 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 @@ -2198,6 +2198,45 @@ class WireMockGroovyDslSpec extends Specification implements WireMockStubVerifie stubMappingIsValidWireMockStub(wireMockStub) } + @Issue('#708') + def "should work with boolean body"() { + given: + Contract groovyDsl = Contract.make { + request { + method('DELETE') + urlPath("/item/1") + } + response { + status(200) + headers { + contentType(applicationJsonUtf8()) + } + body("true") + } + } + when: + String wireMockStub = new WireMockStubStrategy("Test", new ContractMetadata(null, false, 0, null, groovyDsl), groovyDsl).toWireMockClientStub() + then: + AssertionUtil.assertThatJsonsAreEqual(''' + { + "request" : { + "urlPath" : "/item/1", + "method" : "DELETE" + }, + "response" : { + "status" : 200, + "body" : "true", + "headers" : { + "Content-Type" : "application/json;charset=UTF-8" + }, + "transformers" : [ "response-template", "foo-transformer" ] + } + } + ''', wireMockStub) + and: + stubMappingIsValidWireMockStub(wireMockStub) + } + WireMockConfiguration config() { return new WireMockConfiguration().extensions(responseTemplateTransformer()) }