This commit is contained in:
Marcin Grzejszczak
2023-04-27 13:45:19 +02:00
parent 7fce11ba8c
commit bbedfdf9f3

View File

@@ -1699,6 +1699,52 @@ class MethodBodyBuilderSpec extends Specification implements WireMockStubVerifie
}
}
@Issue("#1790")
def "should work with escaped values in headers and body [#methodBuilderName]"() {
given:
Contract contractDsl = Contract.make {
request {
name("test")
method 'GET'
urlPath('/test')
}
response {
status OK()
body( 'test': "\"escaped-body\"")
headers {
contentType('application/json')
header('Escaped-Header', "\"escaped-header\"")
}
}
}
methodBuilder()
when:
String test = singleTestGenerator(contractDsl)
then:
SyntaxChecker.tryToCompileWithoutCompileStatic(methodBuilderName, test)
expectedHeaderAssertion(test)
test.contains("""assertThatJson(parsedJson).field("['test']").isEqualTo("\\\"escaped-body\\\"")""")
and:
stubMappingIsValidWireMockStub(contractDsl)
where:
methodBuilderName | methodBuilder | expectedHeaderAssertion
"spock" | {
properties.testFramework = TestFramework.SPOCK
} | { String testCode -> assert testCode.contains("""response.header("Escaped-Header") == '''\\"escaped-header\\"'''"""); return true }
"mockmvc" | {
properties.testMode = TestMode.MOCKMVC
} | { String testCode -> assert testCode.contains("""assertThat(response.header("Escaped-Header")).isEqualTo("\\\"escaped-header\\\"")"""); return true }
"jaxrs-spock" | {
properties.testFramework = TestFramework.SPOCK; properties.testMode = TestMode.JAXRSCLIENT
} | { String testCode -> assert testCode.contains("""response.header("Escaped-Header") == '''\\"escaped-header\\"'''"""); return true }
"jaxrs" | {
properties.testFramework = TestFramework.JUNIT; properties.testMode = TestMode.JAXRSCLIENT
} | { String testCode -> assert testCode.contains("""assertThat(response.header("Escaped-Header")).isEqualTo("\\\"escaped-header\\\"")"""); return true }
"testNG" | {
properties.testFramework = TestFramework.TESTNG
} | { String testCode -> assert testCode.contains("""assertThat(response.header("Escaped-Header")).isEqualTo("\\\"escaped-header\\\"")"""); return true }
}
@Issue("#1052")
def "should work with large numbers [#methodBuilderName]"() {
given: