diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/ComparisonBuilder.java b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/ComparisonBuilder.java index 5e4dc89d68..59b44594cb 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/ComparisonBuilder.java +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/ComparisonBuilder.java @@ -74,7 +74,9 @@ interface ComparisonBuilder { } default String isEqualTo(Number number) { - return ".isEqualTo(" + number.toString() + ")"; + String numberString = number instanceof Long ? number.toString() + "L" + : number.toString(); + return ".isEqualTo(" + numberString + ")"; } default String isNotNull() { diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/GroovyComparisonBuilder.java b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/GroovyComparisonBuilder.java index 7e2f63f74e..4b132e6fc4 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/GroovyComparisonBuilder.java +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/GroovyComparisonBuilder.java @@ -40,7 +40,9 @@ interface GroovyComparisonBuilder extends ComparisonBuilder { @Override default String isEqualTo(Number number) { - return " == " + number.toString(); + String numberString = number instanceof Long ? number.toString() + "L" + : number.toString(); + return " == " + numberString; } @Override diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/SpringTestMethodBodyBuildersSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/SpringTestMethodBodyBuildersSpec.groovy index 9373c37594..fc34132784 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/SpringTestMethodBodyBuildersSpec.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/SpringTestMethodBodyBuildersSpec.groovy @@ -3130,4 +3130,35 @@ DocumentContext parsedJson = JsonPath.parse(json); } "webclient" | { properties.testMode = TestMode.WEBTESTCLIENT } } + + @Issue('#1052') + def 'should work with large numbers [#methodBuilderName]'() { + given: + Contract contractDsl = Contract.make { + label 'storage_object_created' + input { + triggeredBy('toString()') + } + + outputMessage { + sentTo('document_uploads') + headers { + header('objectGeneration', 23094823904823) + } + } + } + methodBuilder() + when: + String test = singleTestGenerator(contractDsl) + then: + SyntaxChecker.tryToCompile(methodBuilderName, test) + and: + test.contains('''23094823904823L''') + where: + methodBuilderName | methodBuilder + "spock" | { properties.testFramework = TestFramework.SPOCK } + "testng" | { properties.testFramework = TestFramework.TESTNG } + "junit" | { properties.testFramework = TestFramework.JUNIT } + "junit5" | { properties.testFramework = TestFramework.JUNIT5 } + } }