diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/JUnitMessagingMethodBodyBuilder.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/JUnitMessagingMethodBodyBuilder.groovy index ef464114dc..3b8ac6143f 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/JUnitMessagingMethodBodyBuilder.groovy +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/JUnitMessagingMethodBodyBuilder.groovy @@ -220,8 +220,7 @@ class JUnitMessagingMethodBodyBuilder extends MessagingMethodBodyBuilder { } protected String createHeaderComparison(Pattern headerValue) { - String escapedHeader = convertUnicodeEscapesIfRequired("$headerValue") - return "matches(\"$escapedHeader\");" + return "matches(\"$headerValue\");" } private String patternText(Pattern value) { diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MessagingMethodBodyBuilderSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MessagingMethodBodyBuilderSpec.groovy index 7bd6ec17ab..a40a7d6a93 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MessagingMethodBodyBuilderSpec.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MessagingMethodBodyBuilderSpec.groovy @@ -27,7 +27,7 @@ import spock.lang.Specification class MessagingMethodBodyBuilderSpec extends Specification { @Shared ContractVerifierConfigProperties properties = new ContractVerifierConfigProperties(assertJsonSize: true) - + def "should work for triggered based messaging with Spock"() { given: // tag::trigger_method_dsl[] @@ -499,6 +499,36 @@ Contract.make { stripped(test) == stripped(expectedMsg) } + @Issue("567") + def "should generate tests with message headers containing regular expression with backslashes for JUnit"() { + given: + def contractDsl = + org.springframework.cloud.contract.spec.Contract.make { + label 'trigger_event' + + input { + triggeredBy('requestIsCalled()') + } + + outputMessage { + sentTo 'topic.rateablequote' + headers { + header('processId', value(producer(regex('\\d+')), consumer('123'))) + } + body([ + eventId: value(producer(regex('\\d+')), consumer('1')) + ]) + } + } + MethodBodyBuilder builder = new JUnitMessagingMethodBodyBuilder(contractDsl, properties) + BlockBuilder blockBuilder = new BlockBuilder(" ") + when: + builder.appendTo(blockBuilder) + def test = blockBuilder.toString() + then: + test.contains('assertThat(response.getHeader("processId").toString()).matches("\\d+");') + } + @Issue("336") def "should generate tests with message headers containing regular expression for Spock"() { given: