From 8f12bc2ec0a95efd373d7f352862e69e32f5cffd Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Mon, 24 Aug 2020 10:53:29 +0200 Subject: [PATCH] Fixed reactor to 2020.0.0-SNAPSHOT --- pom.xml | 8 ++ .../wiremock/WireMockToDslConverter.java | 120 ++++++++++-------- .../cloud/contract/verifier/FileSaver.java | 1 + .../contract/verifier/TestGenerator.java | 6 + .../builder/imports/BaseImportProvider.java | 2 + .../wiremock/DefaultResponseTransformer.java | 7 +- .../messaging/camel/CamelStubMessages.java | 1 - 7 files changed, 85 insertions(+), 60 deletions(-) diff --git a/pom.xml b/pom.xml index 8b6b3e8a53..266efbec9f 100644 --- a/pom.xml +++ b/pom.xml @@ -45,6 +45,7 @@ 5.5.1.201910021850-r 1 3.4.6 + 2020.0.0-SNAPSHOT 1.3.2 5.6.2 @@ -110,6 +111,13 @@ + + io.projectreactor + reactor-bom + ${reactor.version} + pom + import + org.apache.camel.springboot camel-spring-boot-starter diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverter.java b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverter.java index 1bf342ef37..3e7d6be0a5 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverter.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverter.java @@ -49,25 +49,35 @@ public class WireMockToDslConverter { private static final JsonPointer PRIORITY_POINTER = JsonPointer.compile("/priority"); - private static final JsonPointer REQUEST_METHOD_POINTER = JsonPointer.compile("/request/method"); + private static final JsonPointer REQUEST_METHOD_POINTER = JsonPointer + .compile("/request/method"); - private static final JsonPointer REQUEST_URL_POINTER = JsonPointer.compile("/request/url"); + private static final JsonPointer REQUEST_URL_POINTER = JsonPointer + .compile("/request/url"); - private static final JsonPointer REQUEST_URL_PATH_POINTER = JsonPointer.compile("/request/urlPath"); + private static final JsonPointer REQUEST_URL_PATH_POINTER = JsonPointer + .compile("/request/urlPath"); - private static final JsonPointer REQUEST_URL_PATTERN_POINTER = JsonPointer.compile("/request/urlPattern"); + private static final JsonPointer REQUEST_URL_PATTERN_POINTER = JsonPointer + .compile("/request/urlPattern"); - private static final JsonPointer REQUEST_URL_PATH_PATTERN_POINTER = JsonPointer.compile("/request/urlPathPattern"); + private static final JsonPointer REQUEST_URL_PATH_PATTERN_POINTER = JsonPointer + .compile("/request/urlPathPattern"); - private static final JsonPointer REQUEST_HEADERS_POINTER = JsonPointer.compile("/request/headers"); + private static final JsonPointer REQUEST_HEADERS_POINTER = JsonPointer + .compile("/request/headers"); - private static final JsonPointer REQUEST_BODY_POINTER = JsonPointer.compile("/request/bodyPatterns"); + private static final JsonPointer REQUEST_BODY_POINTER = JsonPointer + .compile("/request/bodyPatterns"); - private static final JsonPointer RESPONSE_STATUS_POINTER = JsonPointer.compile("/response/status"); + private static final JsonPointer RESPONSE_STATUS_POINTER = JsonPointer + .compile("/response/status"); - private static final JsonPointer RESPONSE_BODY_POINTER = JsonPointer.compile("/response/body"); + private static final JsonPointer RESPONSE_BODY_POINTER = JsonPointer + .compile("/response/body"); - private static final JsonPointer RESPONSE_HEADERS_POINTER = JsonPointer.compile("/response/headers"); + private static final JsonPointer RESPONSE_HEADERS_POINTER = JsonPointer + .compile("/response/headers"); private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); @@ -80,7 +90,6 @@ public class WireMockToDslConverter { /** * Returns the string content of the contract. - * * @param wireMockStringStub - string content of the WireMock JSON stub */ public static String fromWireMockStub(String wireMockStringStub) { @@ -89,22 +98,14 @@ public class WireMockToDslConverter { private String convertFromWireMockStub(String wireMockStringStub) { JsonNode wireMockStub = parseStubDefinition(wireMockStringStub); - return buildPriority(wireMockStub) - + "request {\n" - + buildRequestMethod(wireMockStub) - + buildRequestUrl(wireMockStub) + return buildPriority(wireMockStub) + "request {\n" + + buildRequestMethod(wireMockStub) + buildRequestUrl(wireMockStub) + buildRequestUrlPattern(wireMockStub) + buildRequestUrlPathPattern(wireMockStub) - + buildRequestUrlPath(wireMockStub) - + buildRequestHeaders(wireMockStub) - + buildRequestBody(wireMockStub) - + "}\n" - + "response {\n" - + buildResponseStatus(wireMockStub) - + buildResponseBody(wireMockStub) - + buildResponseHeaders(wireMockStub) - + "}" - + "\n"; + + buildRequestUrlPath(wireMockStub) + buildRequestHeaders(wireMockStub) + + buildRequestBody(wireMockStub) + "}\n" + "response {\n" + + buildResponseStatus(wireMockStub) + buildResponseBody(wireMockStub) + + buildResponseHeaders(wireMockStub) + "}" + "\n"; } private JsonNode parseStubDefinition(String wireMockStringStub) { @@ -156,7 +157,8 @@ public class WireMockToDslConverter { String requestUrlPattern = ""; JsonNode requestUrlPatternNode = wireMockStub.at(REQUEST_URL_PATTERN_POINTER); if (!requestUrlPatternNode.isMissingNode()) { - String escapedRequestUrlPatternValue = escapeJava(requestUrlPatternNode.asText()); + String escapedRequestUrlPatternValue = escapeJava( + requestUrlPatternNode.asText()); requestUrlPattern = "url $(consumer(regex('" + escapedRequestUrlPatternValue + "')), producer('" + new Xeger(escapedRequestUrlPatternValue).generate() + "'))\n"; @@ -166,9 +168,11 @@ public class WireMockToDslConverter { private String buildRequestUrlPathPattern(JsonNode wireMockStub) { String requestUrlPathPattern = ""; - JsonNode requestUrlPathPatternNode = wireMockStub.at(REQUEST_URL_PATH_PATTERN_POINTER); + JsonNode requestUrlPathPatternNode = wireMockStub + .at(REQUEST_URL_PATH_PATTERN_POINTER); if (!requestUrlPathPatternNode.isMissingNode()) { - String escapedRequestUrlPathPatternValue = escapeJava(requestUrlPathPatternNode.asText()); + String escapedRequestUrlPathPatternValue = escapeJava( + requestUrlPathPatternNode.asText()); requestUrlPathPattern = "urlPath $(consumer(regex('" + escapedRequestUrlPathPatternValue + "')), producer('" + new Xeger(escapedRequestUrlPathPatternValue).generate() + "'))'\n"; @@ -183,11 +187,14 @@ public class WireMockToDslConverter { if (requestHeadersNode.isObject()) { requestHeadersBuilder.append("headers {\n"); ObjectNode requestHeadersObjectNode = requestHeadersNode.deepCopy(); - Iterator> fields = requestHeadersObjectNode.fields(); + Iterator> fields = requestHeadersObjectNode + .fields(); fields.forEachRemaining(c -> { requestHeadersBuilder.append("header('").append(c.getKey()).append("',"); - Map.Entry headerValue = c.getValue().deepCopy().fields().next(); - String header = buildHeader(headerValue.getKey(), headerValue.getValue().asText()); + Map.Entry headerValue = c.getValue().deepCopy().fields() + .next(); + String header = buildHeader(headerValue.getKey(), + headerValue.getValue().asText()); requestHeadersBuilder.append(header).append(")").append("\n"); }); requestHeadersBuilder.append("}"); @@ -216,24 +223,22 @@ public class WireMockToDslConverter { Iterable iterableFields = () -> elements; List> requestBodyObjectNodes = new ArrayList<>(); StreamSupport.stream(iterableFields.spliterator(), false) - .filter(f -> f instanceof ObjectNode) - .map(f -> (ObjectNode) f) + .filter(f -> f instanceof ObjectNode).map(f -> (ObjectNode) f) .map(ObjectNode::fields) .forEachOrdered(i -> i.forEachRemaining(requestBodyObjectNodes::add)); - requestBodyObjectNodes.stream() - .filter(b -> b.getKey().equals("equalTo")) - .findFirst() - .ifPresent(b -> requestBody.append("body ('").append(b.getValue().asText()).append("')")); - requestBodyObjectNodes.stream() - .filter(b -> b.getKey().equals("equalToJson")) - .findFirst() - .ifPresent(b -> requestBody.append("body ('").append(b.getValue().asText()).append("')")); + requestBodyObjectNodes.stream().filter(b -> b.getKey().equals("equalTo")) + .findFirst().ifPresent(b -> requestBody.append("body ('") + .append(b.getValue().asText()).append("')")); + requestBodyObjectNodes.stream().filter(b -> b.getKey().equals("equalToJson")) + .findFirst().ifPresent(b -> requestBody.append("body ('") + .append(b.getValue().asText()).append("')")); requestBodyObjectNodes.stream().filter(b -> b.getKey().equals("matches")) .findFirst() .ifPresent(b -> requestBody.append("body $(consumer(regex('") .append(escapeJava(b.getValue().asText())) .append("')), producer('") - .append(new Xeger(escapeJava(b.getValue().asText())).generate()) + .append(new Xeger(escapeJava(b.getValue().asText())) + .generate()) .append("'))")); } return requestBody.toString(); @@ -253,10 +258,15 @@ public class WireMockToDslConverter { String responseBody = ""; JsonNode responseBodyNode = wireMockStub.at(RESPONSE_BODY_POINTER); if (responseBodyNode.isInt()) { - responseBody += "body( " + escapeJava(buildPrettyPrintResponseBody((IntNode) responseBodyNode)) + ")\n"; + responseBody += "body( " + + escapeJava(buildPrettyPrintResponseBody((IntNode) responseBodyNode)) + + ")\n"; } if (responseBodyNode.isTextual()) { - responseBody += "body( \"" + escapeJava(buildPrettyPrintResponseBody((TextNode) responseBodyNode)) + "\")\n"; + responseBody += "body( \"" + + escapeJava( + buildPrettyPrintResponseBody((TextNode) responseBodyNode)) + + "\")\n"; } return responseBody; } @@ -272,13 +282,13 @@ public class WireMockToDslConverter { .readValue(textNode, Object.class); DefaultIndenter customIndenter = new DefaultIndenter(" ", "\n"); return OBJECT_MAPPER - .writer(new PrivatePrettyPrinter() - .withArrayIndenter(customIndenter) + .writer(new PrivatePrettyPrinter().withArrayIndenter(customIndenter) .withObjectIndenter(customIndenter)) .writeValueAsString(intermediateObjectForPrettyPrinting); } catch (IOException e) { - throw new RuntimeException("WireMock response body could not be pretty printed"); + throw new RuntimeException( + "WireMock response body could not be pretty printed"); } } @@ -289,14 +299,11 @@ public class WireMockToDslConverter { if (requestHeadersNode.isObject()) { responseHeadersBuilder.append("headers {\n"); ObjectNode responseHeadersObjectNode = requestHeadersNode.deepCopy(); - Iterator> fields = responseHeadersObjectNode.fields(); - fields.forEachRemaining(c -> responseHeadersBuilder - .append("header('") - .append(c.getKey()) - .append("',") - .append("'") - .append(c.getValue().asText()) - .append("')\n")); + Iterator> fields = responseHeadersObjectNode + .fields(); + fields.forEachRemaining(c -> responseHeadersBuilder.append("header('") + .append(c.getKey()).append("',").append("'") + .append(c.getValue().asText()).append("')\n")); responseHeadersBuilder.append("}"); } return responseHeadersBuilder.toString(); @@ -312,7 +319,8 @@ public class WireMockToDslConverter { @Override public DefaultPrettyPrinter withSeparators(Separators separators) { _separators = separators; - _objectFieldValueSeparatorWithSpaces = separators.getObjectFieldValueSeparator() + " "; + _objectFieldValueSeparatorWithSpaces = separators + .getObjectFieldValueSeparator() + " "; return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/FileSaver.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/FileSaver.java index d8e63ba866..f449671170 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/FileSaver.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/FileSaver.java @@ -36,6 +36,7 @@ class FileSaver { private static final Logger log = LoggerFactory.getLogger(FileSaver.class); private final File targetDirectory; + private final String fileExtension; FileSaver(File targetDirectory, String fileExtension) { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/TestGenerator.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/TestGenerator.java index f70deed8df..1f9536598b 100755 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/TestGenerator.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/TestGenerator.java @@ -55,13 +55,19 @@ import static org.springframework.cloud.contract.verifier.util.NamesUtil.toLastD public class TestGenerator { private static final Logger log = LoggerFactory.getLogger(TestGenerator.class); + private static final String DEFAULT_CLASS_PREFIX = "ContractVerifier"; + private static final String DEFAULT_TEST_PACKAGE = "org.springframework.cloud.contract.verifier.tests"; private final ContractVerifierConfigProperties configProperties; + private final AtomicInteger counter = new AtomicInteger(); + private final SingleTestGenerator generator; + private final FileSaver saver; + private final ContractFileScanner contractFileScanner; public TestGenerator(ContractVerifierConfigProperties configProperties) { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/imports/BaseImportProvider.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/imports/BaseImportProvider.java index 6b8aa11304..04ead5831d 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/imports/BaseImportProvider.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/imports/BaseImportProvider.java @@ -47,7 +47,9 @@ public class BaseImportProvider { Arrays.asList( "org.springframework.cloud.contract.verifier.assertion.SpringCloudContractAssertions.assertThat", "org.springframework.cloud.contract.verifier.util.ContractVerifierUtil.*")); + private static final Map RULE_IMPORT; + private static final Map TEST_FRAMEWORK_SPECIFIC_IMPORTS; static { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/DefaultResponseTransformer.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/DefaultResponseTransformer.java index fe65db71d5..49fc8369d3 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/DefaultResponseTransformer.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/DefaultResponseTransformer.java @@ -25,14 +25,15 @@ import wiremock.com.github.jknack.handlebars.Helper; import org.springframework.cloud.contract.verifier.builder.handlebars.HandlebarsEscapeHelper; import org.springframework.cloud.contract.verifier.builder.handlebars.HandlebarsJsonPathHelper; -/**. - * Default implementation of {@link ResponseTemplateTransformer} that contains default set - * of handlebars helpers +/** + * . Default implementation of {@link ResponseTemplateTransformer} that contains default + * set of handlebars helpers * * @author Marcin Grzejszczak * @since 1.2.0 */ public class DefaultResponseTransformer extends ResponseTemplateTransformer { + public DefaultResponseTransformer() { super(false, defaultHelpers()); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelStubMessages.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelStubMessages.java index 2dd20ad9a1..0950f99dae 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelStubMessages.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelStubMessages.java @@ -48,7 +48,6 @@ public class CamelStubMessages implements MessageVerifier { private final ContractVerifierCamelMessageBuilder builder; - public CamelStubMessages(CamelContext context, ProducerTemplate producerTemplate, ConsumerTemplate consumerTemplate) { this.context = context;