From 7d39ef49b46eac2878c14a416d38b10b292905ef Mon Sep 17 00:00:00 2001 From: Adam Wojszczyk Date: Mon, 17 Aug 2015 15:48:06 +0200 Subject: [PATCH] Allow fields' values to be empty lists during searching for patterns --- .../dsl/WireMockRequestStubStrategy.groovy | 2 +- .../accurest/dsl/WireMockGroovyDslSpec.groovy | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/accurest-core/src/main/groovy/io/codearte/accurest/dsl/WireMockRequestStubStrategy.groovy b/accurest-core/src/main/groovy/io/codearte/accurest/dsl/WireMockRequestStubStrategy.groovy index d0bb325bb1..d540069484 100755 --- a/accurest-core/src/main/groovy/io/codearte/accurest/dsl/WireMockRequestStubStrategy.groovy +++ b/accurest-core/src/main/groovy/io/codearte/accurest/dsl/WireMockRequestStubStrategy.groovy @@ -139,7 +139,7 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { } private boolean containsPattern(Collection collection) { - return collection.collect(this.&containsPattern).inject { a, b -> a || b } + return collection.collect(this.&containsPattern).inject('') { a, b -> a || b } } private boolean containsPattern(Object[] objects) { diff --git a/accurest-core/src/test/groovy/io/codearte/accurest/dsl/WireMockGroovyDslSpec.groovy b/accurest-core/src/test/groovy/io/codearte/accurest/dsl/WireMockGroovyDslSpec.groovy index ced69beeb1..23d8f65f35 100755 --- a/accurest-core/src/test/groovy/io/codearte/accurest/dsl/WireMockGroovyDslSpec.groovy +++ b/accurest-core/src/test/groovy/io/codearte/accurest/dsl/WireMockGroovyDslSpec.groovy @@ -1192,4 +1192,39 @@ class WireMockGroovyDslSpec extends WireMockSpec { String toWireMockClientJsonStub(groovyDsl) { new WireMockStubStrategy(groovyDsl).toWireMockClientStub() } + + def 'should generate stub with empty list as a value of a field'() { + given: + GroovyDsl groovyDsl = GroovyDsl.make { + request { + method('POST') + body( + values: [] + ) + } + response { + status 200 + } + } + when: + String wireMockStub = new WireMockStubStrategy(groovyDsl).toWireMockClientStub() + then: + new JsonSlurper().parseText(wireMockStub) == new JsonSlurper().parseText(''' + { + "request": { + "method": "POST", + "bodyPatterns": [ + { + "equalToJson": "{\\"values\\":[]}" + } + ] + }, + "response": { + "status": 200 + } + } + ''') + and: + stubMappingIsValidWireMockStub(wireMockStub) + } }