diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/RunMojo.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/RunMojo.java index 44b0accce7..a9365621ad 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/RunMojo.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/RunMojo.java @@ -34,8 +34,7 @@ import org.springframework.cloud.contract.stubrunner.BatchStubRunner; import org.springframework.cloud.contract.stubrunner.StubRunner; import org.springframework.cloud.contract.stubrunner.StubRunnerOptions; import org.springframework.cloud.contract.stubrunner.StubRunnerOptionsBuilder; - -import static wiremock.com.google.common.base.Strings.isNullOrEmpty; +import org.springframework.util.StringUtils; /** * @@ -122,7 +121,7 @@ public class RunMojo extends AbstractMojo { BatchStubRunner batchStubRunner = null; StubRunnerOptionsBuilder optionsBuilder = new StubRunnerOptionsBuilder() .withStubsClassifier(this.stubsClassifier); - if (isNullOrEmpty(this.stubs)) { + if (StringUtils.isEmpty(this.stubs)) { StubRunnerOptions options = optionsBuilder .withMinMaxPort(this.httpPort, this.httpPort) .build(); diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/RequestProcessingMethodBodyBuilder.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/RequestProcessingMethodBodyBuilder.groovy index 02df4c3987..0114f033e2 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/RequestProcessingMethodBodyBuilder.groovy +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/RequestProcessingMethodBodyBuilder.groovy @@ -124,6 +124,9 @@ abstract class RequestProcessingMethodBodyBuilder extends MethodBodyBuilder { if (response.async) { bb.addLine('.when().async()') } + if (response.delay) { + bb.addLine(".timeout(${response.delay.serverValue})") + } } @TypeChecked(TypeCheckingMode.SKIP) diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MethodBodyBuilderSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MethodBodyBuilderSpec.groovy index c7fa43cd6e..b45cc12176 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MethodBodyBuilderSpec.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MethodBodyBuilderSpec.groovy @@ -315,4 +315,34 @@ DocumentContext parsedJson = JsonPath.parse(json); "JaxRsClientJUnitMethodBodyBuilder" | { Contract dsl -> new JaxRsClientJUnitMethodBodyBuilder(dsl, properties) } } + def "should use fixed delay milliseconds in the generated test [#methodBuilderName]"() { + given: + Contract contractDsl = Contract.make { + request { + method GET() + url "test" + } + response { + status 200 + async() + fixedDelayMilliseconds(10000) + body(a: 'foo') + } + } + MethodBodyBuilder builder = methodBuilder(contractDsl) + BlockBuilder blockBuilder = new BlockBuilder(" ") + when: + builder.appendTo(blockBuilder) + then: + blockBuilder.toString().contains(""".timeout(10000)""") + and: + SyntaxChecker.tryToCompile(methodBuilderName, blockBuilder.toString()) + and: + stubMappingIsValidWireMockStub(contractDsl) + where: + methodBuilderName | methodBuilder + "MockMvcSpockMethodBuilder" | { Contract dsl -> new MockMvcSpockMethodRequestProcessingBodyBuilder(dsl, properties) } + "MockMvcJUnitMethodBuilder" | { Contract dsl -> new MockMvcJUnitMethodBodyBuilder(dsl, properties) } + } + }