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 0101a64c9c..f0d29ebefe 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 @@ -98,6 +98,9 @@ abstract class SpockMethodBodyBuilder { } else if (contentType == ContentType.XML) { bb.addLine("def responseBody = new XmlSlurper().parseText($responseAsString)") // TODO xml validation + } else { + bb.addLine("def responseBody = ($responseAsString)") + processBodyElement(bb, "", responseBody) } } diff --git a/accurest-core/src/test/groovy/io/codearte/accurest/builder/JaxRsClientSpockMethodBuilderSpec.groovy b/accurest-core/src/test/groovy/io/codearte/accurest/builder/JaxRsClientSpockMethodBuilderSpec.groovy index 6b39c26e8d..f7e0b7d777 100644 --- a/accurest-core/src/test/groovy/io/codearte/accurest/builder/JaxRsClientSpockMethodBuilderSpec.groovy +++ b/accurest-core/src/test/groovy/io/codearte/accurest/builder/JaxRsClientSpockMethodBuilderSpec.groovy @@ -359,4 +359,26 @@ class JaxRsClientSpockMethodBuilderSpec extends Specification { then: spockTest.contains("entity('', 'application/octet-stream')") } + + def "should generate test for String in response body"() { + given: + GroovyDsl contractDsl = GroovyDsl.make { + request { + method "POST" + url "test" + } + response { + status 200 + body "test" + } + } + MockMvcSpockMethodBodyBuilder builder = new MockMvcSpockMethodBodyBuilder(contractDsl) + BlockBuilder blockBuilder = new BlockBuilder(" ") + when: + builder.appendTo(blockBuilder) + def spockTest = blockBuilder.toString() + then: + spockTest.contains('def responseBody = (response.body.asString())') + spockTest.contains('responseBody == "test"') + } } diff --git a/accurest-core/src/test/groovy/io/codearte/accurest/builder/MockMvcSpockMethodBuilderSpec.groovy b/accurest-core/src/test/groovy/io/codearte/accurest/builder/MockMvcSpockMethodBuilderSpec.groovy index 55a43d2961..57d840710c 100644 --- a/accurest-core/src/test/groovy/io/codearte/accurest/builder/MockMvcSpockMethodBuilderSpec.groovy +++ b/accurest-core/src/test/groovy/io/codearte/accurest/builder/MockMvcSpockMethodBuilderSpec.groovy @@ -306,4 +306,26 @@ class MockMvcSpockMethodBuilderSpec extends Specification { then: spockTest.contains(".body('')") } + + def "should generate test for String in response body"() { + given: + GroovyDsl contractDsl = GroovyDsl.make { + request { + method "POST" + url "test" + } + response { + status 200 + body "test" + } + } + MockMvcSpockMethodBodyBuilder builder = new MockMvcSpockMethodBodyBuilder(contractDsl) + BlockBuilder blockBuilder = new BlockBuilder(" ") + when: + builder.appendTo(blockBuilder) + def spockTest = blockBuilder.toString() + then: + spockTest.contains('def responseBody = (response.body.asString())') + spockTest.contains('responseBody == "test"') + } }