From dfee248b0f4cdc74ea8e84df71eaae66c5a0452e Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Sun, 22 Feb 2015 13:58:01 +0100 Subject: [PATCH] Fixed nested lists etc. --- .../DslToWiremockClientConverterSpec.groovy | 72 +++++++++++++++++++ .../dsl/WiremockRequestStubStrategy.groovy | 4 ++ 2 files changed, 76 insertions(+) diff --git a/accurest-converters/src/test/groovy/io/codearte/accurest/wiremock/DslToWiremockClientConverterSpec.groovy b/accurest-converters/src/test/groovy/io/codearte/accurest/wiremock/DslToWiremockClientConverterSpec.groovy index c3633db0da..1f1a105142 100644 --- a/accurest-converters/src/test/groovy/io/codearte/accurest/wiremock/DslToWiremockClientConverterSpec.groovy +++ b/accurest-converters/src/test/groovy/io/codearte/accurest/wiremock/DslToWiremockClientConverterSpec.groovy @@ -26,4 +26,76 @@ class DslToWiremockClientConverterSpec extends Specification { new JsonSlurper().parseText(json) == new JsonSlurper().parseText(""" {"request":{"method":"PUT","urlPattern":"/[0-9]{2}"},"response":{"status":200}}""") } + + + def "should convert DSL file with a nested list to Wiremock JSON"() { + given: + def converter = new DslToWiremockClientConverter() + and: + String dslBody = """ + io.coderate.accurest.dsl.GroovyDsl.make { + request { + method 'PUT' + url '/api/12' + headers { + header 'Content-Type': 'application/vnd.com.ofg.twitter-places-analyzer.v1+json' + + } + body ''' + [{ + "created_at": "Sat Jul 26 09:38:57 +0000 2014", + "id": 492967299297845248, + "id_str": "492967299297845248", + "text": "Gonna see you at Warsaw", + "place": + { + "attributes":{}, + "bounding_box": + { + "coordinates": + [[ + [-77.119759,38.791645], + [-76.909393,38.791645], + [-76.909393,38.995548], + [-77.119759,38.995548] + ]], + "type":"Polygon" + }, + "country":"United States", + "country_code":"US", + "full_name":"Washington, DC", + "id":"01fbe706f872cb32", + "name":"Washington", + "place_type":"city", + "url": "http://api.twitter.com/1/geo/id/01fbe706f872cb32.json" + } + }] + ''' + } + response { + status 200 + } + } +""" + when: + String json = converter.convertContent(dslBody) + then: + new JsonSlurper().parseText(json) == new JsonSlurper().parseText("""{ + "request":{ + "method":"PUT", + "url":"/api/12", + "body": { + "equalTo": "[{\\"created_at\\":\\"Sat Jul 26 09:38:57 +0000 2014\\",\\"id\\":492967299297845248,\\"id_str\\":\\"492967299297845248\\",\\"place\\":{\\"attributes\\":{},\\"bounding_box\\":{\\"coordinates\\":[[[-77.119759,38.791645],[-76.909393,38.791645],[-76.909393,38.995548],[-77.119759,38.995548]]],\\"type\\":\\"Polygon\\"},\\"country\\":\\"United States\\",\\"country_code\\":\\"US\\",\\"full_name\\":\\"Washington, DC\\",\\"id\\":\\"01fbe706f872cb32\\",\\"name\\":\\"Washington\\",\\"place_type\\":\\"city\\",\\"url\\":\\"http://api.twitter.com/1/geo/id/01fbe706f872cb32.json\\"},\\"text\\":\\"Gonna see you at Warsaw\\"}]" + }, + "headers": { + "Content-Type": { + "equalTo": "application/vnd.com.ofg.twitter-places-analyzer.v1+json" + } + } + }, + "response":{ + "status":200} + } +""") + } } diff --git a/accurest-core/src/main/groovy/io/coderate/accurest/dsl/WiremockRequestStubStrategy.groovy b/accurest-core/src/main/groovy/io/coderate/accurest/dsl/WiremockRequestStubStrategy.groovy index 65d6dea03a..d32919aa6c 100644 --- a/accurest-core/src/main/groovy/io/coderate/accurest/dsl/WiremockRequestStubStrategy.groovy +++ b/accurest-core/src/main/groovy/io/coderate/accurest/dsl/WiremockRequestStubStrategy.groovy @@ -57,6 +57,10 @@ class WiremockRequestStubStrategy extends BaseWiremockStubStrategy { } } + private String parseBody(List responseBody) { + return JsonOutput.toJson(responseBody) + } + private String parseBody(Map responseBody) { return JsonOutput.toJson(responseBody) }