Merge branch '1.1.x'
This commit is contained in:
@@ -115,6 +115,9 @@ class JaxRsClientJUnitMethodBodyBuilder extends JUnitMethodBodyBuilder {
|
||||
|
||||
protected appendHeaders(BlockBuilder bb) {
|
||||
request.headers?.executeForEachHeader { Header header ->
|
||||
if (headerOfAbsentType(header)) {
|
||||
return
|
||||
}
|
||||
if (header.name == 'Content-Type' || header.name == 'Accept') return
|
||||
bb.addLine(".header(\"${header.name}\", \"${header.serverValue}\")")
|
||||
}
|
||||
|
||||
@@ -120,6 +120,9 @@ class JaxRsClientSpockMethodRequestProcessingBodyBuilder extends SpockMethodRequ
|
||||
|
||||
protected appendHeaders(BlockBuilder bb) {
|
||||
request.headers?.executeForEachHeader { Header header ->
|
||||
if (headerOfAbsentType(header)) {
|
||||
return
|
||||
}
|
||||
if (header.name == 'Content-Type' || header.name == 'Accept') return // Particular headers are set via 'request' / 'entity' methods
|
||||
bb.addLine(".header('${header.name}', '${header.serverValue}')")
|
||||
}
|
||||
|
||||
@@ -95,6 +95,9 @@ abstract class RequestProcessingMethodBodyBuilder extends MethodBodyBuilder {
|
||||
@Override
|
||||
protected void processInput(BlockBuilder bb) {
|
||||
request.headers?.executeForEachHeader { Header header ->
|
||||
if (headerOfAbsentType(header)) {
|
||||
return
|
||||
}
|
||||
bb.addLine(getHeaderString(header))
|
||||
}
|
||||
if (request.body) {
|
||||
@@ -107,6 +110,11 @@ abstract class RequestProcessingMethodBodyBuilder extends MethodBodyBuilder {
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean headerOfAbsentType(Header header) {
|
||||
return header.serverValue instanceof MatchingStrategy &&
|
||||
((MatchingStrategy) header.serverValue).type == MatchingStrategy.Type.ABSENT
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void when(BlockBuilder bb) {
|
||||
bb.addLine(getInputString(request))
|
||||
|
||||
@@ -315,6 +315,39 @@ DocumentContext parsedJson = JsonPath.parse(json);
|
||||
"JaxRsClientJUnitMethodBodyBuilder" | { Contract dsl -> new JaxRsClientJUnitMethodBodyBuilder(dsl, properties) }
|
||||
}
|
||||
|
||||
@Issue("#424")
|
||||
def "should not put an absent header to the request [#methodBuilderName]"() {
|
||||
given:
|
||||
Contract contractDsl = Contract.make {
|
||||
request {
|
||||
method 'GET'
|
||||
url '/mytest'
|
||||
headers {
|
||||
header('myheader', absent())
|
||||
}
|
||||
}
|
||||
response {
|
||||
status 200
|
||||
}
|
||||
}
|
||||
MethodBodyBuilder builder = methodBuilder(contractDsl)
|
||||
BlockBuilder blockBuilder = new BlockBuilder(" ")
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
!blockBuilder.toString().contains("myheader")
|
||||
and:
|
||||
SyntaxChecker.tryToCompileWithoutCompileStatic(methodBuilderName, blockBuilder.toString())
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
where:
|
||||
methodBuilderName | methodBuilder
|
||||
"MockMvcSpockMethodBuilder" | { Contract dsl -> new MockMvcSpockMethodRequestProcessingBodyBuilder(dsl, properties) }
|
||||
"MockMvcJUnitMethodBuilder" | { Contract dsl -> new MockMvcJUnitMethodBodyBuilder(dsl, properties) }
|
||||
"JaxRsClientSpockMethodRequestProcessingBodyBuilder" | { Contract dsl -> new JaxRsClientSpockMethodRequestProcessingBodyBuilder(dsl, properties) }
|
||||
"JaxRsClientJUnitMethodBodyBuilder" | { Contract dsl -> new JaxRsClientJUnitMethodBodyBuilder(dsl, properties) }
|
||||
}
|
||||
|
||||
def "should use fixed delay milliseconds in the generated test [#methodBuilderName]"() {
|
||||
given:
|
||||
Contract contractDsl = Contract.make {
|
||||
|
||||
Reference in New Issue
Block a user