Allow fields' values to be empty lists during searching for patterns

This commit is contained in:
Adam Wojszczyk
2015-08-17 15:48:06 +02:00
parent bdc9225c46
commit 7d39ef49b4
2 changed files with 36 additions and 1 deletions

View File

@@ -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) {

View File

@@ -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)
}
}