From 3a8baa2212d810bdecaeccef0c1338169bf6bc09 Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Fri, 31 Jul 2015 13:14:36 +0200 Subject: [PATCH] #106 has changed the logic in test method generation and the fix from #109 will not work anymore. Modified it to make single value validation possible. Added tests. --- .../builder/SpockMethodBodyBuilder.groovy | 3 +++ .../JaxRsClientSpockMethodBuilderSpec.groovy | 22 +++++++++++++++++++ .../MockMvcSpockMethodBuilderSpec.groovy | 22 +++++++++++++++++++ 3 files changed, 47 insertions(+) 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"') + } }