From e5b9eb9843d7cbb06e18081ba625768040f683f8 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Thu, 2 Feb 2017 13:24:10 +0100 Subject: [PATCH 1/3] Asserting empty array in the response (#211) with this change we're using new JSONAssert that allows to check if an array is empty fixes #203 --- spring-cloud-contract-dependencies/pom.xml | 2 +- ...ngCloudContractVerifierGradlePlugin.groovy | 2 +- .../projects/complex-configuration/pom.xml | 2 +- .../test/projects/plugin-extension/pom.xml | 2 +- .../test/projects/spring-boot-groovy/pom.xml | 2 +- .../test/projects/spring-boot-java/pom.xml | 2 +- .../WireMockRequestStubStrategy.groovy | 9 +++-- .../util/DelegatingJsonVerifiable.java | 12 +++++-- .../util/JsonToJsonPathsConverter.groovy | 22 +++++++++--- .../util/MethodBufferingJsonVerifiable.java | 3 ++ .../MockMvcMethodBodyBuilderSpec.groovy | 35 +++++++++++++++++++ 11 files changed, 76 insertions(+), 17 deletions(-) diff --git a/spring-cloud-contract-dependencies/pom.xml b/spring-cloud-contract-dependencies/pom.xml index 942ee8136c..4b86eb8f2e 100644 --- a/spring-cloud-contract-dependencies/pom.xml +++ b/spring-cloud-contract-dependencies/pom.xml @@ -15,7 +15,7 @@ Spring Cloud Contract Dependencies 2.1.7 - 0.4.7 + 0.4.8 1.0.2.v20150114 diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.groovy index 7cdd4242cf..007d1543ec 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.groovy @@ -91,7 +91,7 @@ class SpringCloudContractVerifierGradlePlugin implements Plugin { //TODO: Deprecate this since starting with 1.1.x private void addProjectDependencies(Project project) { project.dependencies.add("testCompile", "com.github.tomakehurst:wiremock:2.1.7") - project.dependencies.add("testCompile", "com.toomuchcoding.jsonassert:jsonassert:0.4.7") + project.dependencies.add("testCompile", "com.toomuchcoding.jsonassert:jsonassert:0.4.8") project.dependencies.add("testCompile", "org.assertj:assertj-core:2.3.0") } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/complex-configuration/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/complex-configuration/pom.xml index 601db4ead6..2ef9310d56 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/complex-configuration/pom.xml +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/complex-configuration/pom.xml @@ -63,7 +63,7 @@ com.toomuchcoding.jsonassert jsonassert - 0.4.7 + 0.4.8 test diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/plugin-extension/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/plugin-extension/pom.xml index e57964dd63..e03b81bc7a 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/plugin-extension/pom.xml +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/plugin-extension/pom.xml @@ -63,7 +63,7 @@ com.toomuchcoding.jsonassert jsonassert - 0.4.7 + 0.4.8 test diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml index 6d0570cf4b..a0dc42aa9d 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml @@ -64,7 +64,7 @@ com.toomuchcoding.jsonassert jsonassert - 0.4.7 + 0.4.8 test diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java/pom.xml index e57964dd63..e03b81bc7a 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java/pom.xml +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java/pom.xml @@ -63,7 +63,7 @@ com.toomuchcoding.jsonassert jsonassert - 0.4.7 + 0.4.8 test diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockRequestStubStrategy.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockRequestStubStrategy.groovy index fe5be66de4..af206c4b71 100755 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockRequestStubStrategy.groovy +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockRequestStubStrategy.groovy @@ -78,7 +78,7 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { def originalBody = getMatchingStrategyFromBody(request.body)?.clientValue def body = JsonToJsonPathsConverter.removeMatchingJsonPaths(originalBody, request.matchers) JsonPaths values = JsonToJsonPathsConverter.transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck(body) - if (values.empty && !request.matchers?.hasMatchers()) { + if ((values.empty && !request.matchers?.hasMatchers()) || onlySizeAssertionsArePresent(values)) { requestPattern.withRequestBody(WireMock.equalToJson(JsonOutput.toJson(getMatchingStrategy(request.body.clientValue).clientValue), false, false)) } else { values.findAll{ !it.assertsSize() }.each { @@ -100,12 +100,15 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { requestPattern.withRequestBody(convertToValuePattern(getMatchingStrategy(request.body.clientValue))) } } - + + private boolean onlySizeAssertionsArePresent(JsonPaths values) { + return !values.empty && !request.matchers?.hasMatchers() && values.every { it.assertsSize() } + } + private void appendMultipart(RequestPatternBuilder requestPattern) { if (!request.multipart) { return } - if (request.multipart.clientValue instanceof Map) { List multipartPatterns = (request.multipart.clientValue as Map).collect { (it.value instanceof NamedProperty diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/DelegatingJsonVerifiable.java b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/DelegatingJsonVerifiable.java index 0c5114e939..beba817b81 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/DelegatingJsonVerifiable.java +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/DelegatingJsonVerifiable.java @@ -16,13 +16,13 @@ package org.springframework.cloud.contract.verifier.util; -import static org.apache.commons.lang3.StringEscapeUtils.escapeJava; - import java.util.LinkedList; import java.util.regex.Pattern; import com.toomuchcoding.jsonassert.JsonVerifiable; +import static org.apache.commons.lang3.StringEscapeUtils.escapeJava; + /** * Implementation of the {@link MethodBufferingJsonVerifiable} that contains a list * of String method commands that need to be executed to assert JSONs. @@ -187,6 +187,12 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { return readyToCheck; } + @Override public MethodBufferingJsonVerifiable isEmpty() { + DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable(this.delegate.isEmpty(), this.methodsBuffer); + readyToCheck.methodsBuffer.offer(".isEmpty()"); + return readyToCheck; + } + @Override public MethodBufferingJsonVerifiable matches(String value) { DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable(this.delegate.matches(value), this.methodsBuffer); @@ -228,7 +234,7 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { @Override public boolean assertsSize() { for (String s : this.methodsBuffer) { - if (s.contains(".hasSize(")) { + if (s.contains(".hasSize(") || s.contains(".isEmpty()")) { return true; } } diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/JsonToJsonPathsConverter.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/JsonToJsonPathsConverter.groovy index 303f18051e..c60638859e 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/JsonToJsonPathsConverter.groovy +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/JsonToJsonPathsConverter.groovy @@ -180,7 +180,7 @@ class JsonToJsonPathsConverter { traverseRecursively(Object, valueToAsserter(key.arrayField(), ContentUtils.returnParsedObject(it)), ContentUtils.returnParsedObject(it), closure) } - } else if (value instanceof List) { + } else if (value instanceof List && !value.empty) { MethodBufferingJsonVerifiable jsonPathVerifiable = createAsserterFromList(key, value) addSizeVerificationForListWithPrimitives(key, closure, value) value.each { def element -> @@ -188,7 +188,9 @@ class JsonToJsonPathsConverter { ContentUtils.returnParsedObject(element), closure) } return value - } else if (key.isIteratingOverArray()) { + } else if (value instanceof List && value.empty) { + return runClosure(closure, key, value) + } else if (key.isIteratingOverArray()) { traverseRecursively(Object, key.arrayField().contains(ContentUtils.returnParsedObject(value)), ContentUtils.returnParsedObject(value), closure) } @@ -288,6 +290,9 @@ class JsonToJsonPathsConverter { } private boolean listContainsOnlyPrimitives(List list) { + if (list.empty) { + return false + } return list.every { def element -> [String, Number, Boolean].any { it.isAssignableFrom(element.getClass()) @@ -308,15 +313,22 @@ class JsonToJsonPathsConverter { Object entrykey, value -> def convertedValue = ContentUtils.returnParsedObject(value) [entrykey, traverseRecursively(parentType, - convertedValue instanceof List ? listContainsOnlyPrimitives(convertedValue) ? - parentKey.arrayField(entrykey) : - parentKey.array(entrykey) : + convertedValue instanceof List ? list(convertedValue, entrykey, parentKey) : convertedValue instanceof Map ? parentKey.field(new ShouldTraverse(entrykey)) : valueToAsserter(parentKey.field(entrykey), convertedValue) , convertedValue, closureToExecute)] } } + protected MethodBufferingJsonVerifiable list(List convertedValue, Object entrykey, MethodBufferingJsonVerifiable parentKey) { + if (convertedValue.empty) { + return parentKey.array(entrykey).isEmpty() + } + return listContainsOnlyPrimitives(convertedValue) ? + parentKey.arrayField(entrykey) : + parentKey.array(entrykey) + } + private void traverseRecursivelyForKey(def json, MethodBufferingJsonVerifiable rootKey, Closure closure) { traverseRecursively(Map, rootKey, json, closure) } diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/MethodBufferingJsonVerifiable.java b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/MethodBufferingJsonVerifiable.java index 74ff5179b5..49e0c82982 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/MethodBufferingJsonVerifiable.java +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/MethodBufferingJsonVerifiable.java @@ -59,6 +59,9 @@ public interface MethodBufferingJsonVerifiable @Override MethodBufferingJsonVerifiable isNull(); + @Override + MethodBufferingJsonVerifiable isEmpty(); + @Override MethodBufferingJsonVerifiable matches(String value); diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MockMvcMethodBodyBuilderSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MockMvcMethodBodyBuilderSpec.groovy index d2f390092f..74e80123e3 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MockMvcMethodBodyBuilderSpec.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MockMvcMethodBodyBuilderSpec.groovy @@ -2123,4 +2123,39 @@ World.'''""" "JaxRsClientSpockMethodRequestProcessingBodyBuilder" | { Contract dsl -> new JaxRsClientSpockMethodRequestProcessingBodyBuilder(dsl, properties) } | { Throwable t, OutputCapture capture -> t.message.contains("Cannot find matching method Script1#executedMethod") } "JaxRsClientJUnitMethodBodyBuilder" | { Contract dsl -> new JaxRsClientJUnitMethodBodyBuilder(dsl, properties) } | { Throwable t, OutputCapture capture -> t.message.contains("Truncated class file") && capture.toString().contains("path(executedMethod())") } } + + @Issue('#203') + def "should create an assertion for an empty list for [#methodBuilderName]"() { + given: + Contract contractDsl = Contract.make { + request { + method 'GET' + url '/api/v1/xxxx' + } + response { + status 200 + body([ + status: '200', + list: [], + foo: ["bar", "baz"] + ]) + } + } + MethodBodyBuilder builder = methodBuilder(contractDsl) + BlockBuilder blockBuilder = new BlockBuilder(" ") + and: + builder.appendTo(blockBuilder) + String test = blockBuilder.toString() + when: + SyntaxChecker.tryToCompile(methodBuilderName, test) + then: + test.contains('assertThatJson(parsedJson).array("list").isEmpty()') + !test.contains('assertThatJson(parsedJson).array("foo").isEmpty()') + 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) } + } } From 1e9e7a47922ff59c3b077387e0fea2b45c947248 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Thu, 2 Feb 2017 17:00:17 +0100 Subject: [PATCH 2/3] Added foreward compatibility with WireMock stubs fixes #213 --- .../stubrunner/WiremockMappingDescriptor.java | 3 +- .../DslToWireMockClientConverterSpec.groovy | 3 +- .../WireMockToDslConverterSpec.groovy | 6 +-- .../wiremock/WireMock2_1_7_StubMapping.java | 17 +++++++ .../verifier/dsl/WireMockStubVerifier.groovy | 3 +- .../WireMock2_1_7_StubMappingSpec.groovy | 47 +++++++++++++++++++ .../wiremock/WireMock2_1_7_StubMapping.java | 17 +++++++ .../wiremock/WireMockConfiguration.java | 4 +- .../WireMock2_1_7_StubMappingTest.java | 30 ++++++++++++ .../restdocs/WireMockSnippetTests.java | 24 ++++------ 10 files changed, 130 insertions(+), 24 deletions(-) create mode 100644 spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMapping.java create mode 100644 spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMappingSpec.groovy create mode 100644 spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMapping.java create mode 100644 spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMappingTest.java diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/WiremockMappingDescriptor.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/WiremockMappingDescriptor.java index c3c8197756..64b6eee23b 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/WiremockMappingDescriptor.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/WiremockMappingDescriptor.java @@ -21,6 +21,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.nio.charset.Charset; +import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMock2_1_7_StubMapping; import org.springframework.util.StreamUtils; import com.github.tomakehurst.wiremock.stubbing.StubMapping; @@ -39,7 +40,7 @@ class WiremockMappingDescriptor { public StubMapping getMapping() { try { - return StubMapping.buildFrom(StreamUtils.copyToString( + return WireMock2_1_7_StubMapping.buildFrom(StreamUtils.copyToString( new FileInputStream(this.descriptor), Charset.forName("UTF-8"))); } catch (IOException e) { diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverterSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverterSpec.groovy index 7dd352efef..e31a1472fd 100755 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverterSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverterSpec.groovy @@ -21,6 +21,7 @@ import com.github.tomakehurst.wiremock.stubbing.StubMapping import org.junit.Rule import org.junit.rules.TemporaryFolder import org.skyscreamer.jsonassert.JSONAssert +import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMock2_1_7_StubMapping import org.springframework.cloud.contract.verifier.file.ContractMetadata import spock.lang.Issue import spock.lang.Specification @@ -578,7 +579,7 @@ class DslToWireMockClientConverterSpec extends Specification { } void stubMappingIsValidWireMockStub(String mappingDefinition) { - StubMapping stubMapping = StubMapping.buildFrom(mappingDefinition) + StubMapping stubMapping = WireMock2_1_7_StubMapping.buildFrom(mappingDefinition) stubMapping.request.bodyPatterns.findAll { it.isPresent() && it instanceof RegexPattern }.every { Pattern.compile(it.getValue()) } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverterSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverterSpec.groovy index 93c29157c6..1adf79a546 100755 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverterSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverterSpec.groovy @@ -16,9 +16,9 @@ package org.springframework.cloud.contract.verifier.wiremock -import com.github.tomakehurst.wiremock.stubbing.StubMapping -import org.springframework.cloud.contract.verifier.util.ContractVerifierDslConverter import org.springframework.cloud.contract.spec.Contract +import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMock2_1_7_StubMapping +import org.springframework.cloud.contract.verifier.util.ContractVerifierDslConverter import spock.lang.Specification class WireMockToDslConverterSpec extends Specification { @@ -554,6 +554,6 @@ class WireMockToDslConverterSpec extends Specification { } void stubMappingIsValidWireMockStub(String mappingDefinition) { - StubMapping.buildFrom(mappingDefinition) + WireMock2_1_7_StubMapping.buildFrom(mappingDefinition) } } diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMapping.java b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMapping.java new file mode 100644 index 0000000000..1f00d257a8 --- /dev/null +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMapping.java @@ -0,0 +1,17 @@ +package org.springframework.cloud.contract.verifier.dsl.wiremock; + +import com.github.tomakehurst.wiremock.stubbing.StubMapping; +import com.jayway.jsonpath.DocumentContext; +import com.jayway.jsonpath.JsonPath; + +/** + * @author Marcin Grzejszczak + */ +public class WireMock2_1_7_StubMapping { + public static StubMapping buildFrom(String mappingDefinition) { + DocumentContext context = JsonPath.parse(mappingDefinition); + context.delete("$.id"); + context.delete("$.uuid"); + return StubMapping.buildFrom(context.jsonString()); + } +} \ No newline at end of file diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/WireMockStubVerifier.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/WireMockStubVerifier.groovy index b34dd21b30..c5ec9c3a44 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/WireMockStubVerifier.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/WireMockStubVerifier.groovy @@ -18,6 +18,7 @@ package org.springframework.cloud.contract.verifier.dsl import com.github.tomakehurst.wiremock.matching.RegexPattern import com.github.tomakehurst.wiremock.stubbing.StubMapping +import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMock2_1_7_StubMapping import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockStubStrategy import org.springframework.cloud.contract.verifier.file.ContractMetadata @@ -26,7 +27,7 @@ import java.util.regex.Pattern trait WireMockStubVerifier { void stubMappingIsValidWireMockStub(String mappingDefinition) { - StubMapping stubMapping = StubMapping.buildFrom(mappingDefinition) + StubMapping stubMapping = WireMock2_1_7_StubMapping.buildFrom(mappingDefinition) stubMapping.request.bodyPatterns.findAll { it.isPresent() && it instanceof RegexPattern }.every { Pattern.compile(it.getValue()) } diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMappingSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMappingSpec.groovy new file mode 100644 index 0000000000..30552eb690 --- /dev/null +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMappingSpec.groovy @@ -0,0 +1,47 @@ +package org.springframework.cloud.contract.verifier.dsl.wiremock + +import com.github.tomakehurst.wiremock.stubbing.StubMapping +import org.skyscreamer.jsonassert.JSONAssert +import spock.lang.Specification + +/** + * @author Marcin Grzejszczak + */ +class WireMock2_1_7_StubMappingSpec extends Specification { + private static final String stub_2_1_7 = """ +{ + "request" : { + "method" : "GET" + }, + "response" : { + "status" : 200 + } +} +""" + private static final String stub_2_5_1 = """ +{ + "id" : "77514bd4-a102-4478-a3c0-0fda8b905591", + "request" : { + "method" : "GET" + }, + "response" : { + "status" : 200 + }, + "uuid" : "77514bd4-a102-4478-a3c0-0fda8b905591" +} +""" + + def "should successfully parse a WireMock 2.1.7 stub"() { + when: + StubMapping mapping = WireMock2_1_7_StubMapping.buildFrom(stub_2_1_7) + then: + JSONAssert.assertEquals(stub_2_1_7, mapping.toString(), false) + } + + def "should successfully parse a WireMock 2.5.1 stub"() { + when: + StubMapping mapping = WireMock2_1_7_StubMapping.buildFrom(stub_2_5_1) + then: + JSONAssert.assertEquals(stub_2_1_7, mapping.toString(), false) + } +} diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMapping.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMapping.java new file mode 100644 index 0000000000..b54c886061 --- /dev/null +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMapping.java @@ -0,0 +1,17 @@ +package org.springframework.cloud.contract.wiremock; + +import com.github.tomakehurst.wiremock.stubbing.StubMapping; +import com.jayway.jsonpath.DocumentContext; +import com.jayway.jsonpath.JsonPath; + +/** + * @author Marcin Grzejszczak + */ +public class WireMock2_1_7_StubMapping { + public static StubMapping buildFrom(String mappingDefinition) { + DocumentContext context = JsonPath.parse(mappingDefinition); + context.delete("$.id"); + context.delete("$.uuid"); + return StubMapping.buildFrom(context.jsonString()); + } +} \ No newline at end of file diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockConfiguration.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockConfiguration.java index 5370abcead..97adb63c88 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockConfiguration.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockConfiguration.java @@ -20,7 +20,6 @@ import java.io.IOException; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; - import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; @@ -39,7 +38,6 @@ import org.springframework.util.StringUtils; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.client.WireMock; import com.github.tomakehurst.wiremock.core.Options; -import com.github.tomakehurst.wiremock.stubbing.StubMapping; /** * Configuration and lifecycle for a Spring Application context that wants to run a @@ -105,7 +103,7 @@ public class WireMockConfiguration implements SmartLifecycle { pattern = pattern + "**/*.json"; } for (Resource resource : resolver.getResources(pattern)) { - this.server.addStubMapping(StubMapping + this.server.addStubMapping(WireMock2_1_7_StubMapping .buildFrom(StreamUtils.copyToString(resource.getInputStream(), Charset.forName("UTF-8")))); } } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMappingTest.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMappingTest.java new file mode 100644 index 0000000000..f2c5591879 --- /dev/null +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMappingTest.java @@ -0,0 +1,30 @@ +package org.springframework.cloud.contract.wiremock; + +import org.junit.Test; +import org.skyscreamer.jsonassert.JSONAssert; + +import com.github.tomakehurst.wiremock.stubbing.StubMapping; + +/** + * @author Marcin Grzejszczak + */ +public class WireMock2_1_7_StubMappingTest { + private static final String stub_2_1_7 = "{\"request\" : { \"method\" : \"GET\" }, \"response\" : { \"status\" : 200 }}"; + private static final String stub_2_5_1 = "{\"id\" : \"77514bd4-a102-4478-a3c0-0fda8b905591\", \"request\" : { \"method\" : \"GET\" }, \"response\" : { \"status\" : 200 }, \"uuid\" : \"77514bd4-a102-4478-a3c0-0fda8b905591\"}"; + + @Test + public void should_successfully_parse_a_WireMock_2_1_7_stub() { + // when: + StubMapping mapping = WireMock2_1_7_StubMapping.buildFrom(stub_2_1_7); + // then: + JSONAssert.assertEquals(stub_2_1_7, mapping.toString(), false); + } + + @Test + public void should_successfully_parse_a_WireMock_2_5_1_stub() { + // when: + StubMapping mapping = WireMock2_1_7_StubMapping.buildFrom(stub_2_5_1); + // then: + JSONAssert.assertEquals(stub_2_1_7, mapping.toString(), false); + } +} \ No newline at end of file diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockSnippetTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockSnippetTests.java index 2174ead066..9d9d2c5109 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockSnippetTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockSnippetTests.java @@ -15,6 +15,7 @@ import org.junit.runner.RunWith; import org.mockito.Answers; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; +import org.springframework.cloud.contract.wiremock.WireMock2_1_7_StubMapping; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; @@ -48,12 +49,6 @@ public class WireMockSnippetTests { @Before public void setup() throws IOException { this.outputFolder = this.tmp.newFolder(); - } - - @Test - public void should_maintain_the_response_status_when_generating_stub() - throws Exception { - WireMockSnippet snippet = new WireMockSnippet(); RestDocumentationContext context = new RestDocumentationContext(this.getClass(), "method", this.outputFolder); given(this.operation.getName()).willReturn("foo"); @@ -62,12 +57,18 @@ public class WireMockSnippetTests { .get(RestDocumentationContext.class.getName())).willReturn(context); given(this.operation.getRequest()).willReturn(request()); given(this.operation.getResponse()).willReturn(response()); + } + + @Test + public void should_maintain_the_response_status_when_generating_stub() + throws Exception { + WireMockSnippet snippet = new WireMockSnippet(); snippet.document(this.operation); File stub = new File(this.outputFolder, "stubs/foo.json"); assertThat(stub).exists(); - StubMapping stubMapping = StubMapping + StubMapping stubMapping = WireMock2_1_7_StubMapping .buildFrom(new String(Files.readAllBytes(stub.toPath()))); assertThat(stubMapping.getResponse().getStatus()) .isEqualTo(HttpStatus.ACCEPTED.value()); @@ -77,20 +78,13 @@ public class WireMockSnippetTests { public void should_use_equal_to_json_pattern_for_body_when_request_content_type_is_json_when_generating_stub() throws Exception { WireMockSnippet snippet = new WireMockSnippet(); - RestDocumentationContext context = new RestDocumentationContext(this.getClass(), - "method", this.outputFolder); - given(this.operation.getName()).willReturn("foo"); - given(this.operation.getAttributes().get(anyString())).willReturn(null); - given(this.operation.getAttributes() - .get(RestDocumentationContext.class.getName())).willReturn(context); given(this.operation.getRequest()).willReturn(requestPostWithJsonContentType()); - given(this.operation.getResponse()).willReturn(response()); snippet.document(this.operation); File stub = new File(this.outputFolder, "stubs/foo.json"); assertThat(stub).exists(); - StubMapping stubMapping = StubMapping + StubMapping stubMapping = WireMock2_1_7_StubMapping .buildFrom(new String(Files.readAllBytes(stub.toPath()))); assertThat(stubMapping.getRequest().getBodyPatterns().get(0)) .isInstanceOf(EqualToJsonPattern.class); From e135e618ec6011c3057397db88fb26bc9eb892d1 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Thu, 2 Feb 2017 17:16:36 +0100 Subject: [PATCH 3/3] Polish --- .../contract/stubrunner/WiremockMappingDescriptor.java | 4 ++-- .../wiremock/DslToWireMockClientConverterSpec.groovy | 4 ++-- .../verifier/wiremock/WireMockToDslConverterSpec.groovy | 4 ++-- ...eMock2_1_7_StubMapping.java => WireMockStubMapping.java} | 2 +- .../cloud/contract/verifier/dsl/WireMockStubVerifier.groovy | 4 ++-- ...tubMappingSpec.groovy => WireMockStubMappingSpec.groovy} | 6 +++--- .../cloud/contract/wiremock/WireMockConfiguration.java | 2 +- ...eMock2_1_7_StubMapping.java => WireMockStubMapping.java} | 2 +- ..._7_StubMappingTest.java => WireMockStubMappingTest.java} | 6 +++--- .../contract/wiremock/restdocs/WireMockSnippetTests.java | 6 +++--- 10 files changed, 20 insertions(+), 20 deletions(-) rename spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/{WireMock2_1_7_StubMapping.java => WireMockStubMapping.java} (92%) rename spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/{WireMock2_1_7_StubMappingSpec.groovy => WireMockStubMappingSpec.groovy} (81%) rename spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/{WireMock2_1_7_StubMapping.java => WireMockStubMapping.java} (92%) rename spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/{WireMock2_1_7_StubMappingTest.java => WireMockStubMappingTest.java} (82%) diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/WiremockMappingDescriptor.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/WiremockMappingDescriptor.java index 64b6eee23b..5a7a759c96 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/WiremockMappingDescriptor.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/WiremockMappingDescriptor.java @@ -21,7 +21,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.nio.charset.Charset; -import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMock2_1_7_StubMapping; +import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockStubMapping; import org.springframework.util.StreamUtils; import com.github.tomakehurst.wiremock.stubbing.StubMapping; @@ -40,7 +40,7 @@ class WiremockMappingDescriptor { public StubMapping getMapping() { try { - return WireMock2_1_7_StubMapping.buildFrom(StreamUtils.copyToString( + return WireMockStubMapping.buildFrom(StreamUtils.copyToString( new FileInputStream(this.descriptor), Charset.forName("UTF-8"))); } catch (IOException e) { diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverterSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverterSpec.groovy index e31a1472fd..7d38754aa5 100755 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverterSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverterSpec.groovy @@ -21,7 +21,7 @@ import com.github.tomakehurst.wiremock.stubbing.StubMapping import org.junit.Rule import org.junit.rules.TemporaryFolder import org.skyscreamer.jsonassert.JSONAssert -import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMock2_1_7_StubMapping +import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockStubMapping import org.springframework.cloud.contract.verifier.file.ContractMetadata import spock.lang.Issue import spock.lang.Specification @@ -579,7 +579,7 @@ class DslToWireMockClientConverterSpec extends Specification { } void stubMappingIsValidWireMockStub(String mappingDefinition) { - StubMapping stubMapping = WireMock2_1_7_StubMapping.buildFrom(mappingDefinition) + StubMapping stubMapping = WireMockStubMapping.buildFrom(mappingDefinition) stubMapping.request.bodyPatterns.findAll { it.isPresent() && it instanceof RegexPattern }.every { Pattern.compile(it.getValue()) } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverterSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverterSpec.groovy index 1adf79a546..6200e1a072 100755 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverterSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverterSpec.groovy @@ -17,7 +17,7 @@ package org.springframework.cloud.contract.verifier.wiremock import org.springframework.cloud.contract.spec.Contract -import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMock2_1_7_StubMapping +import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockStubMapping import org.springframework.cloud.contract.verifier.util.ContractVerifierDslConverter import spock.lang.Specification @@ -554,6 +554,6 @@ class WireMockToDslConverterSpec extends Specification { } void stubMappingIsValidWireMockStub(String mappingDefinition) { - WireMock2_1_7_StubMapping.buildFrom(mappingDefinition) + WireMockStubMapping.buildFrom(mappingDefinition) } } diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMapping.java b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockStubMapping.java similarity index 92% rename from spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMapping.java rename to spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockStubMapping.java index 1f00d257a8..aa14eed7f4 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMapping.java +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockStubMapping.java @@ -7,7 +7,7 @@ import com.jayway.jsonpath.JsonPath; /** * @author Marcin Grzejszczak */ -public class WireMock2_1_7_StubMapping { +public class WireMockStubMapping { public static StubMapping buildFrom(String mappingDefinition) { DocumentContext context = JsonPath.parse(mappingDefinition); context.delete("$.id"); diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/WireMockStubVerifier.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/WireMockStubVerifier.groovy index c5ec9c3a44..73d03e7048 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/WireMockStubVerifier.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/WireMockStubVerifier.groovy @@ -18,7 +18,7 @@ package org.springframework.cloud.contract.verifier.dsl import com.github.tomakehurst.wiremock.matching.RegexPattern import com.github.tomakehurst.wiremock.stubbing.StubMapping -import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMock2_1_7_StubMapping +import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockStubMapping import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockStubStrategy import org.springframework.cloud.contract.verifier.file.ContractMetadata @@ -27,7 +27,7 @@ import java.util.regex.Pattern trait WireMockStubVerifier { void stubMappingIsValidWireMockStub(String mappingDefinition) { - StubMapping stubMapping = WireMock2_1_7_StubMapping.buildFrom(mappingDefinition) + StubMapping stubMapping = WireMockStubMapping.buildFrom(mappingDefinition) stubMapping.request.bodyPatterns.findAll { it.isPresent() && it instanceof RegexPattern }.every { Pattern.compile(it.getValue()) } diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMappingSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockStubMappingSpec.groovy similarity index 81% rename from spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMappingSpec.groovy rename to spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockStubMappingSpec.groovy index 30552eb690..01c874dad7 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMock2_1_7_StubMappingSpec.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockStubMappingSpec.groovy @@ -7,7 +7,7 @@ import spock.lang.Specification /** * @author Marcin Grzejszczak */ -class WireMock2_1_7_StubMappingSpec extends Specification { +class WireMockStubMappingSpec extends Specification { private static final String stub_2_1_7 = """ { "request" : { @@ -33,14 +33,14 @@ class WireMock2_1_7_StubMappingSpec extends Specification { def "should successfully parse a WireMock 2.1.7 stub"() { when: - StubMapping mapping = WireMock2_1_7_StubMapping.buildFrom(stub_2_1_7) + StubMapping mapping = WireMockStubMapping.buildFrom(stub_2_1_7) then: JSONAssert.assertEquals(stub_2_1_7, mapping.toString(), false) } def "should successfully parse a WireMock 2.5.1 stub"() { when: - StubMapping mapping = WireMock2_1_7_StubMapping.buildFrom(stub_2_5_1) + StubMapping mapping = WireMockStubMapping.buildFrom(stub_2_5_1) then: JSONAssert.assertEquals(stub_2_1_7, mapping.toString(), false) } diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockConfiguration.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockConfiguration.java index 97adb63c88..00619480d5 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockConfiguration.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockConfiguration.java @@ -103,7 +103,7 @@ public class WireMockConfiguration implements SmartLifecycle { pattern = pattern + "**/*.json"; } for (Resource resource : resolver.getResources(pattern)) { - this.server.addStubMapping(WireMock2_1_7_StubMapping + this.server.addStubMapping(WireMockStubMapping .buildFrom(StreamUtils.copyToString(resource.getInputStream(), Charset.forName("UTF-8")))); } } diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMapping.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockStubMapping.java similarity index 92% rename from spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMapping.java rename to spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockStubMapping.java index b54c886061..62ebc4949f 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMapping.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockStubMapping.java @@ -7,7 +7,7 @@ import com.jayway.jsonpath.JsonPath; /** * @author Marcin Grzejszczak */ -public class WireMock2_1_7_StubMapping { +public class WireMockStubMapping { public static StubMapping buildFrom(String mappingDefinition) { DocumentContext context = JsonPath.parse(mappingDefinition); context.delete("$.id"); diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMappingTest.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WireMockStubMappingTest.java similarity index 82% rename from spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMappingTest.java rename to spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WireMockStubMappingTest.java index f2c5591879..9beca80d32 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WireMock2_1_7_StubMappingTest.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WireMockStubMappingTest.java @@ -8,14 +8,14 @@ import com.github.tomakehurst.wiremock.stubbing.StubMapping; /** * @author Marcin Grzejszczak */ -public class WireMock2_1_7_StubMappingTest { +public class WireMockStubMappingTest { private static final String stub_2_1_7 = "{\"request\" : { \"method\" : \"GET\" }, \"response\" : { \"status\" : 200 }}"; private static final String stub_2_5_1 = "{\"id\" : \"77514bd4-a102-4478-a3c0-0fda8b905591\", \"request\" : { \"method\" : \"GET\" }, \"response\" : { \"status\" : 200 }, \"uuid\" : \"77514bd4-a102-4478-a3c0-0fda8b905591\"}"; @Test public void should_successfully_parse_a_WireMock_2_1_7_stub() { // when: - StubMapping mapping = WireMock2_1_7_StubMapping.buildFrom(stub_2_1_7); + StubMapping mapping = WireMockStubMapping.buildFrom(stub_2_1_7); // then: JSONAssert.assertEquals(stub_2_1_7, mapping.toString(), false); } @@ -23,7 +23,7 @@ public class WireMock2_1_7_StubMappingTest { @Test public void should_successfully_parse_a_WireMock_2_5_1_stub() { // when: - StubMapping mapping = WireMock2_1_7_StubMapping.buildFrom(stub_2_5_1); + StubMapping mapping = WireMockStubMapping.buildFrom(stub_2_5_1); // then: JSONAssert.assertEquals(stub_2_1_7, mapping.toString(), false); } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockSnippetTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockSnippetTests.java index 9d9d2c5109..47e1822c0c 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockSnippetTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockSnippetTests.java @@ -15,7 +15,7 @@ import org.junit.runner.RunWith; import org.mockito.Answers; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; -import org.springframework.cloud.contract.wiremock.WireMock2_1_7_StubMapping; +import org.springframework.cloud.contract.wiremock.WireMockStubMapping; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; @@ -68,7 +68,7 @@ public class WireMockSnippetTests { File stub = new File(this.outputFolder, "stubs/foo.json"); assertThat(stub).exists(); - StubMapping stubMapping = WireMock2_1_7_StubMapping + StubMapping stubMapping = WireMockStubMapping .buildFrom(new String(Files.readAllBytes(stub.toPath()))); assertThat(stubMapping.getResponse().getStatus()) .isEqualTo(HttpStatus.ACCEPTED.value()); @@ -84,7 +84,7 @@ public class WireMockSnippetTests { File stub = new File(this.outputFolder, "stubs/foo.json"); assertThat(stub).exists(); - StubMapping stubMapping = WireMock2_1_7_StubMapping + StubMapping stubMapping = WireMockStubMapping .buildFrom(new String(Files.readAllBytes(stub.toPath()))); assertThat(stubMapping.getRequest().getBodyPatterns().get(0)) .isInstanceOf(EqualToJsonPattern.class);