From 078774c517831bd31ebb9718229acdc138fac8d7 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Sat, 21 Feb 2015 23:47:45 +0100 Subject: [PATCH] Fixed body with equalTo request section --- .../dsl/WiremockRequestStubStrategy.groovy | 31 ++++++++++++++++--- .../accurest/dsl/WiremockGroovyDslSpec.groovy | 4 +-- 2 files changed, 28 insertions(+), 7 deletions(-) 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 4ab842d6cd..95177f16bc 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 @@ -1,13 +1,17 @@ package io.coderate.accurest.dsl - -import groovy.transform.CompileStatic +import groovy.json.JsonOutput +import groovy.json.JsonSlurper import groovy.transform.PackageScope +import groovy.transform.TypeChecked +import groovy.xml.XmlUtil import io.coderate.accurest.dsl.internal.ClientRequest import io.coderate.accurest.dsl.internal.Request import java.util.regex.Pattern -@CompileStatic +import static groovy.json.StringEscapeUtils.escapeJava + +@TypeChecked @PackageScope class WiremockRequestStubStrategy extends BaseWiremockStubStrategy { @@ -35,7 +39,26 @@ class WiremockRequestStubStrategy extends BaseWiremockStubStrategy { private Map appendBody(ClientRequest clientRequest) { Object body = clientRequest?.body?.clientValue - return body != null ? [body: [equalTo: body]] : [:] + return body != null ? [body: [equalTo: parseBody(body)]] : [:] + } + + private String parseBody(Object responseBodyObject) { + String responseBody = responseBodyObject as String + try { + def json = new JsonSlurper().parseText(responseBody) + return escapeJava(JsonOutput.toJson(responseBody)) + } catch (Exception jsonException) { + try { + def xml = new XmlSlurper().parseText(responseBody) + return escapeJava(XmlUtil.serialize(responseBody)) + } catch (Exception xmlException) { + return escapeJava(responseBody) + } + } + } + + private String parseBody(Map responseBody) { + return JsonOutput.toJson(responseBody) } } 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 14b6cd5952..af5431b36a 100644 --- a/accurest-core/src/test/groovy/io/codearte/accurest/dsl/WiremockGroovyDslSpec.groovy +++ b/accurest-core/src/test/groovy/io/codearte/accurest/dsl/WiremockGroovyDslSpec.groovy @@ -141,9 +141,7 @@ class WiremockGroovyDslSpec extends Specification { "method": "GET", "urlPattern": "/[0-9]{2}", "body": { - "equalTo": { - "name": "Jan" - } + "equalTo":"{\\"name\\":\\"Jan\\"}" } }, "response": {