diff --git a/accurest-core/src/main/groovy/io/codearte/accurest/builder/JUnitMethodBodyBuilder.groovy b/accurest-core/src/main/groovy/io/codearte/accurest/builder/JUnitMethodBodyBuilder.groovy index 1b4e08b449..1c54d464c9 100644 --- a/accurest-core/src/main/groovy/io/codearte/accurest/builder/JUnitMethodBodyBuilder.groovy +++ b/accurest-core/src/main/groovy/io/codearte/accurest/builder/JUnitMethodBodyBuilder.groovy @@ -62,4 +62,19 @@ abstract class JUnitMethodBodyBuilder extends MethodBodyBuilder { protected String convertUnicodeEscapesIfRequired(String json) { return json // TODO: verify if that's fine or escapeJava required } + + @Override + protected void processBodyElement(BlockBuilder blockBuilder, String property, Map.Entry entry) { + processBodyElement(blockBuilder, property + """.get(\\\"$entry.key\\\")""", entry.value) + } + + @Override + protected String getParsedXmlResponseBodyString(String responseString) { + return "Object responseBody = new XmlSlurper().parseText($responseString);" + } + + @Override + protected String getSimpleResponseBodyString(String responseString) { + return "Object responseBody = ($responseString);" + } } diff --git a/accurest-core/src/main/groovy/io/codearte/accurest/builder/MethodBodyBuilder.groovy b/accurest-core/src/main/groovy/io/codearte/accurest/builder/MethodBodyBuilder.groovy index 443c6cd579..5580687632 100644 --- a/accurest-core/src/main/groovy/io/codearte/accurest/builder/MethodBodyBuilder.groovy +++ b/accurest-core/src/main/groovy/io/codearte/accurest/builder/MethodBodyBuilder.groovy @@ -61,6 +61,10 @@ abstract class MethodBodyBuilder { protected abstract String convertUnicodeEscapesIfRequired(String json) + protected abstract String getParsedXmlResponseBodyString(String responseString) + + protected abstract String getSimpleResponseBodyString(String responseString) + void appendTo(BlockBuilder blockBuilder) { blockBuilder.startBlock() @@ -118,10 +122,10 @@ abstract class MethodBodyBuilder { } processBodyElement(bb, "", responseBody) } else if (contentType == ContentType.XML) { - bb.addLine("def responseBody = new XmlSlurper().parseText($responseAsString)") + bb.addLine(getParsedXmlResponseBodyString(responseAsString)) // TODO xml validation } else { - bb.addLine("def responseBody = ($responseAsString)") + bb.addLine(getSimpleResponseBodyString(responseAsString)) processText(bb, "", responseBody as String) } } diff --git a/accurest-core/src/main/groovy/io/codearte/accurest/builder/SpockMethodBodyBuilder.groovy b/accurest-core/src/main/groovy/io/codearte/accurest/builder/SpockMethodBodyBuilder.groovy index dce3ad6910..3f40878d9a 100644 --- a/accurest-core/src/main/groovy/io/codearte/accurest/builder/SpockMethodBodyBuilder.groovy +++ b/accurest-core/src/main/groovy/io/codearte/accurest/builder/SpockMethodBodyBuilder.groovy @@ -67,7 +67,18 @@ abstract class SpockMethodBodyBuilder extends MethodBodyBuilder { "$property[$listIndex]" ?: '' } + @Override protected String convertUnicodeEscapesIfRequired(String json) { return StringEscapeUtils.unescapeJavaScript(json) } + + @Override + protected String getParsedXmlResponseBodyString(String responseString) { + return "def responseBody = new XmlSlurper().parseText($responseAsString)" + } + + @Override + protected String getSimpleResponseBodyString(String responseString) { + return "def responseBody = ($responseAsString)" + } }