Merge branch 'master' into 2.0.x

This commit is contained in:
Marcin Grzejszczak
2017-07-31 11:57:57 +02:00
4 changed files with 44 additions and 10 deletions

View File

@@ -126,11 +126,7 @@ abstract class JUnitMethodBodyBuilder extends RequestProcessingMethodBodyBuilder
@Override
protected String getInputString(Request request) {
def inputString = "${returnedResponseType()} response = given().spec(request)"
if (response.async){
inputString = inputString + '.when().async()'
}
return inputString
return "${returnedResponseType()} response = given().spec(request)"
}
protected String returnedResponseType() {

View File

@@ -114,11 +114,18 @@ abstract class RequestProcessingMethodBodyBuilder extends MethodBodyBuilder {
Url url = getUrl(request)
addQueryParameters(url, bb)
addAsyncIfRequired(bb)
addUrl(url, bb)
addColonIfRequired(bb)
bb.unindent()
}
private void addAsyncIfRequired(BlockBuilder bb) {
if (response.async) {
bb.addLine('.when().async()')
}
}
@TypeChecked(TypeCheckingMode.SKIP)
protected addQueryParameters(Url buildUrl, BlockBuilder bb) {
if(hasQueryParams(buildUrl)){

View File

@@ -109,11 +109,7 @@ abstract class SpockMethodRequestProcessingBodyBuilder extends RequestProcessing
@Override
protected String getInputString(Request request) {
def inputString = 'def response = given().spec(request)'
if (response.async){
inputString = inputString + '.when().async()'
}
return inputString
return 'def response = given().spec(request)'
}
@Override

View File

@@ -1531,6 +1531,41 @@ World.'''"""
"MockMvcJUnitMethodBuilder" | { Contract dsl -> new MockMvcJUnitMethodBodyBuilder(dsl, properties) } | '.when().async()'
}
@Issue('372')
def "should generate async body after queryParams when async flag set in response and queryParams set in request"() {
given:
Contract contractDsl = Contract.make {
request {
method 'GET'
url('/test') {
queryParameters {
parameter("param", "value")
}
}
}
response {
status 200
async()
}
}
MethodBodyBuilder builder = methodBuilder(contractDsl)
BlockBuilder blockBuilder = new BlockBuilder(" ")
when:
builder.appendTo(blockBuilder)
def test = blockBuilder.toString()
def strippedTest = test.replace('\n', '').replace(' ', '').stripIndent().stripMargin()
then:
strippedTest.contains('.queryParam("param","value").when().async().get("/test")')
and:
stubMappingIsValidWireMockStub(contractDsl)
and:
SyntaxChecker.tryToCompile(methodBuilderName, blockBuilder.toString())
where:
methodBuilderName | methodBuilder
"MockMvcSpockMethodBuilder" | { Contract dsl -> new MockMvcSpockMethodRequestProcessingBodyBuilder(dsl, properties) }
"MockMvcJUnitMethodBuilder" | { Contract dsl -> new MockMvcJUnitMethodBodyBuilder(dsl, properties) }
}
def "should generate proper test code with array of primitives using #methodBuilderName"() {
given:
Contract contractDsl = Contract.make {