diff --git a/docs/src/main/java/org/springframework/cloud/contract/docs/Main.java b/docs/src/main/java/org/springframework/cloud/contract/docs/Main.java index da692a8ad7..7318d8cbee 100644 --- a/docs/src/main/java/org/springframework/cloud/contract/docs/Main.java +++ b/docs/src/main/java/org/springframework/cloud/contract/docs/Main.java @@ -70,8 +70,7 @@ public class Main { log.info("Generated schema!"); } - private String generateJsonSchemaForClass(Class clazz) - throws JsonProcessingException { + private String generateJsonSchemaForClass(Class clazz) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); mapper.enable(SerializationFeature.INDENT_OUTPUT); JsonSchemaGenerator schemaGen = new JsonSchemaGenerator(mapper); @@ -94,8 +93,7 @@ public class Main { mapper.disable(YAMLGenerator.Feature.WRITE_DOC_START_MARKER); StringBuilder sb = new StringBuilder(); for (Class metadatum : metadata) { - SpringCloudContractMetadata newInstance = (SpringCloudContractMetadata) metadatum - .newInstance(); + SpringCloudContractMetadata newInstance = (SpringCloudContractMetadata) metadatum.newInstance(); String description = newInstance.description(); String key = newInstance.key(); List additionalClasses = classesToLookAt(metadatum, newInstance); @@ -119,8 +117,7 @@ public class Main { return sb; } - private List classesToLookAt(Class metadatum, - SpringCloudContractMetadata newInstance) { + private List classesToLookAt(Class metadatum, SpringCloudContractMetadata newInstance) { List additionalClasses = new ArrayList<>(); additionalClasses.add(metadatum); additionalClasses.addAll(newInstance.additionalClassesToLookAt()); diff --git a/specs/spring-cloud-contract-spec-groovy/src/main/groovy/org/springframework/cloud/contract/spec/internal/GroovyDslPropertyConverter.java b/specs/spring-cloud-contract-spec-groovy/src/main/groovy/org/springframework/cloud/contract/spec/internal/GroovyDslPropertyConverter.java index bfdbbbadc7..bbaad88b86 100644 --- a/specs/spring-cloud-contract-spec-groovy/src/main/groovy/org/springframework/cloud/contract/spec/internal/GroovyDslPropertyConverter.java +++ b/specs/spring-cloud-contract-spec-groovy/src/main/groovy/org/springframework/cloud/contract/spec/internal/GroovyDslPropertyConverter.java @@ -40,12 +40,11 @@ public class GroovyDslPropertyConverter implements DslPropertyConverter { return object; } List generatedValues = Arrays.stream(((GString) object).getValues()) - .map(it -> it instanceof RegexProperty - ? ((RegexProperty) it).generate() : it) + .map(it -> it instanceof RegexProperty ? ((RegexProperty) it).generate() : it) .collect(Collectors.toList()); Object[] arrayOfObjects = generatedValues.toArray(); - String[] strings = Arrays.copyOf(((GString) object).getStrings(), - ((GString) object).getStrings().length, String[].class); + String[] strings = Arrays.copyOf(((GString) object).getStrings(), ((GString) object).getStrings().length, + String[].class); String newUrl = new GStringImpl(arrayOfObjects, strings).toString(); return new Url(newUrl); } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/Contract.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/Contract.java index 2d59f51de8..692fc887e8 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/Contract.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/Contract.java @@ -393,29 +393,24 @@ public class Contract { } Contract contract = (Contract) o; return ignored == contract.ignored && Objects.equals(priority, contract.priority) - && Objects.equals(request, contract.request) - && Objects.equals(response, contract.response) - && Objects.equals(label, contract.label) - && Objects.equals(description, contract.description) - && Objects.equals(name, contract.name) - && Objects.equals(input, contract.input) - && Objects.equals(metadata, contract.metadata) - && Objects.equals(outputMessage, contract.outputMessage); + && Objects.equals(request, contract.request) && Objects.equals(response, contract.response) + && Objects.equals(label, contract.label) && Objects.equals(description, contract.description) + && Objects.equals(name, contract.name) && Objects.equals(input, contract.input) + && Objects.equals(metadata, contract.metadata) && Objects.equals(outputMessage, contract.outputMessage); } @Override public int hashCode() { - return Objects.hash(priority, request, response, label, description, name, input, - outputMessage, metadata, ignored); + return Objects.hash(priority, request, response, label, description, name, input, outputMessage, metadata, + ignored); } @Override public String toString() { - return "Contract{" + "\npriority=" + priority + ", \n\trequest=" + request - + ", \n\tresponse=" + response + ", \n\tlabel='" + label + '\'' - + ", \n\tdescription='" + description + '\'' + ", \n\tname='" + name - + '\'' + ", \n\tinput=" + input + ", \n\toutputMessage=" + outputMessage - + ", \n\tignored=" + ignored + '}'; + return "Contract{" + "\npriority=" + priority + ", \n\trequest=" + request + ", \n\tresponse=" + response + + ", \n\tlabel='" + label + '\'' + ", \n\tdescription='" + description + '\'' + ", \n\tname='" + name + + '\'' + ", \n\tinput=" + input + ", \n\toutputMessage=" + outputMessage + ", \n\tignored=" + ignored + + '}'; } } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Body.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Body.java index 9d20789196..5f81f86143 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Body.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Body.java @@ -31,20 +31,16 @@ import java.util.stream.Collectors; public class Body extends DslProperty { public Body(Map body) { - super(extractValue(body, ContractUtils.CLIENT_VALUE), - extractValue(body, ContractUtils.SERVER_VALUE)); + super(extractValue(body, ContractUtils.CLIENT_VALUE), extractValue(body, ContractUtils.SERVER_VALUE)); } public Body(List bodyAsList) { - super(bodyAsList.stream().map(DslProperty::getClientValue) - .collect(Collectors.toList()), - bodyAsList.stream().map(DslProperty::getServerValue) - .collect(Collectors.toList())); + super(bodyAsList.stream().map(DslProperty::getClientValue).collect(Collectors.toList()), + bodyAsList.stream().map(DslProperty::getServerValue).collect(Collectors.toList())); } public Body(Object value) { - super(ContractUtils.CLIENT_VALUE.apply(value), - ContractUtils.SERVER_VALUE.apply(value)); + super(ContractUtils.CLIENT_VALUE.apply(value), ContractUtils.SERVER_VALUE.apply(value)); } public Body(Byte[] bodyAsValue) { @@ -71,8 +67,7 @@ public class Body extends DslProperty { super(matchingStrategy, matchingStrategy); } - private static Map extractValue(Map body, - final Function valueProvider) { + private static Map extractValue(Map body, final Function valueProvider) { final Map map = new LinkedHashMap(); body.forEach((key, value) -> map.put(key, valueProvider.apply(value))); return map; diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/BodyMatchers.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/BodyMatchers.java index a4e0258af0..544c3fe142 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/BodyMatchers.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/BodyMatchers.java @@ -143,8 +143,7 @@ public class BodyMatchers { * @param consumer function to manipulate the output message * @return matching type */ - public MatchingTypeValue byType( - @DelegatesTo(MatchingTypeValueHolder.class) Closure consumer) { + public MatchingTypeValue byType(@DelegatesTo(MatchingTypeValueHolder.class) Closure consumer) { MatchingTypeValueHolder matchingTypeValue = new MatchingTypeValueHolder(); consumer.setDelegate(matchingTypeValue); consumer.call(); diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Common.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Common.java index 86074cb094..4103f3d6d8 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Common.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Common.java @@ -39,12 +39,11 @@ import java.util.stream.Collectors; */ public class Common { - public Map convertObjectsToDslProperties( - Map body) { - return body.entrySet().stream().collect(Collectors.toMap( - (Function) t -> t.getKey().toString(), - (Function) t -> toDslProperty(t.getValue()), - throwingMerger(), LinkedHashMap::new)); + public Map convertObjectsToDslProperties(Map body) { + return body.entrySet().stream() + .collect(Collectors.toMap((Function) t -> t.getKey().toString(), + (Function) t -> toDslProperty(t.getValue()), throwingMerger(), + LinkedHashMap::new)); } private static BinaryOperator throwingMerger() { @@ -77,8 +76,7 @@ public class Common { return new NamedProperty(name, value); } - public NamedProperty named(DslProperty name, DslProperty value, - DslProperty contentType) { + public NamedProperty named(DslProperty name, DslProperty value, DslProperty contentType) { return new NamedProperty(name, value, contentType); } @@ -241,8 +239,7 @@ public class Common { * @return file contents as an array of bytes */ private File fileLocation(String relativePath) { - URL resource = Thread.currentThread().getContextClassLoader() - .getResource(relativePath); + URL resource = Thread.currentThread().getContextClassLoader().getResource(relativePath); if (resource == null) { throw new IllegalStateException("File [" + relativePath + "] is not present"); } @@ -278,48 +275,38 @@ public class Common { if (secondSide == null) { return; } - assertThat( - secondSide.toString() - .matches(((OptionalProperty) firstSide).optionalPattern()), - "Pattern [" + ((OptionalProperty) firstSide).optionalPattern() - + "] is not matched by [" + secondSide.toString() + "]"); + assertThat(secondSide.toString().matches(((OptionalProperty) firstSide).optionalPattern()), + "Pattern [" + ((OptionalProperty) firstSide).optionalPattern() + "] is not matched by [" + + secondSide.toString() + "]"); } - else if ((firstSide instanceof Pattern || firstSide instanceof RegexProperty) - && secondSide instanceof String) { + else if ((firstSide instanceof Pattern || firstSide instanceof RegexProperty) && secondSide instanceof String) { Pattern pattern = firstSide instanceof Pattern ? (Pattern) firstSide : ((RegexProperty) firstSide).getPattern(); assertThat(((String) secondSide).toString().matches(pattern.pattern()), - "Pattern [" + pattern.pattern() + "] is not matched by [" - + secondSide.toString() + "]"); + "Pattern [" + pattern.pattern() + "] is not matched by [" + secondSide.toString() + "]"); } else if ((secondSide instanceof Pattern || secondSide instanceof RegexProperty) && firstSide instanceof String) { Pattern pattern = secondSide instanceof Pattern ? (Pattern) secondSide : ((RegexProperty) secondSide).getPattern(); assertThat(((String) firstSide).matches(pattern.pattern()), - "Pattern [" + pattern.pattern() + "] is not matched by [" - + firstSide.toString() + "]"); + "Pattern [" + pattern.pattern() + "] is not matched by [" + firstSide.toString() + "]"); } - else if (firstSide instanceof MatchingStrategy - && secondSide instanceof MatchingStrategy) { - if (((MatchingStrategy) firstSide).getType() - .equals(MatchingStrategy.Type.ABSENT) - && !((MatchingStrategy) secondSide).getType() - .equals(MatchingStrategy.Type.ABSENT)) { + else if (firstSide instanceof MatchingStrategy && secondSide instanceof MatchingStrategy) { + if (((MatchingStrategy) firstSide).getType().equals(MatchingStrategy.Type.ABSENT) + && !((MatchingStrategy) secondSide).getType().equals(MatchingStrategy.Type.ABSENT)) { throwAbsentError(); } } else if (firstSide instanceof MatchingStrategy) { - if (((MatchingStrategy) firstSide).getType() - .equals(MatchingStrategy.Type.ABSENT)) { + if (((MatchingStrategy) firstSide).getType().equals(MatchingStrategy.Type.ABSENT)) { throwAbsentError(); } } else if (secondSide instanceof MatchingStrategy) { - if (((MatchingStrategy) secondSide).getType() - .equals(MatchingStrategy.Type.ABSENT)) { + if (((MatchingStrategy) secondSide).getType().equals(MatchingStrategy.Type.ABSENT)) { throwAbsentError(); } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/ContractUtils.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/ContractUtils.java index ef094e3f9c..bf038b2f6e 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/ContractUtils.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/ContractUtils.java @@ -20,10 +20,8 @@ import java.util.function.Function; final class ContractUtils { - static final Function CLIENT_VALUE = o -> o instanceof DslProperty - ? ((DslProperty) o).getClientValue() : o; - static final Function SERVER_VALUE = o -> o instanceof DslProperty - ? ((DslProperty) o).getServerValue() : o; + static final Function CLIENT_VALUE = o -> o instanceof DslProperty ? ((DslProperty) o).getClientValue() : o; + static final Function SERVER_VALUE = o -> o instanceof DslProperty ? ((DslProperty) o).getServerValue() : o; private ContractUtils() { throw new IllegalStateException("Can't instantiate an utility class"); diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Cookie.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Cookie.java index ae20bb3ad3..1a73edf9cb 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Cookie.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Cookie.java @@ -39,8 +39,7 @@ public class Cookie extends DslProperty { } public Cookie(String key, Object value) { - super(ContractUtils.CLIENT_VALUE.apply(value), - ContractUtils.SERVER_VALUE.apply(value)); + super(ContractUtils.CLIENT_VALUE.apply(value), ContractUtils.SERVER_VALUE.apply(value)); this.key = key; } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Cookies.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Cookies.java index c30273d9fb..287c120e59 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Cookies.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Cookies.java @@ -86,8 +86,7 @@ public class Cookies { */ public Map asStubSideMap() { final Map map = new LinkedHashMap<>(); - entries.forEach(cookie -> map.put(cookie.getKey(), - ContractUtils.convertStubSideRecursively(cookie))); + entries.forEach(cookie -> map.put(cookie.getKey(), ContractUtils.convertStubSideRecursively(cookie))); return map; } @@ -98,8 +97,7 @@ public class Cookies { */ public Map asTestSideMap() { final Map map = new HashMap(); - entries.forEach(cookie -> map.put(cookie.getKey(), - ContractUtils.convertTestSideRecursively(cookie))); + entries.forEach(cookie -> map.put(cookie.getKey(), ContractUtils.convertTestSideRecursively(cookie))); return map; } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/DslProperty.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/DslProperty.java index 23f743b148..7b8be7a539 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/DslProperty.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/DslProperty.java @@ -42,8 +42,7 @@ public class DslProperty implements Serializable { } public boolean isSingleValue() { - return this.clientValue.equals(this.serverValue) - || (this.clientValue != null && this.serverValue == null) + return this.clientValue.equals(this.serverValue) || (this.clientValue != null && this.serverValue == null) || (this.serverValue != null && this.clientValue == null); } @@ -60,8 +59,7 @@ public class DslProperty implements Serializable { Object thatClientValue = stringPatternIfPattern(that.clientValue); Object thisServerValue = stringPatternIfPattern(serverValue); Object thatServerValue = stringPatternIfPattern(that.serverValue); - return Objects.equals(thisClientValue, thatClientValue) - && Objects.equals(thisServerValue, thatServerValue); + return Objects.equals(thisClientValue, thatClientValue) && Objects.equals(thisServerValue, thatServerValue); } private Object stringPatternIfPattern(Object value) { @@ -70,14 +68,13 @@ public class DslProperty implements Serializable { @Override public int hashCode() { - return Objects.hash(stringPatternIfPattern(clientValue), - stringPatternIfPattern(serverValue)); + return Objects.hash(stringPatternIfPattern(clientValue), stringPatternIfPattern(serverValue)); } @Override public String toString() { - return getClass().getSimpleName() + "{" + "\nclientValue=" + clientValue - + ", \n\tserverValue=" + serverValue + '}'; + return getClass().getSimpleName() + "{" + "\nclientValue=" + clientValue + ", \n\tserverValue=" + serverValue + + '}'; } public final T getClientValue() { diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/DslPropertyConverter.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/DslPropertyConverter.java index 02f157ee44..8d585ec91f 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/DslPropertyConverter.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/DslPropertyConverter.java @@ -48,8 +48,7 @@ public interface DslPropertyConverter { if (INSTANCE != null) { return INSTANCE; } - List converters = SpringFactoriesLoader - .loadFactories(DslPropertyConverter.class, null); + List converters = SpringFactoriesLoader.loadFactories(DslPropertyConverter.class, null); if (converters.isEmpty()) { return DEFAULT; } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HandlebarsContractTemplate.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HandlebarsContractTemplate.java index 8668d25efe..c156db1fc6 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HandlebarsContractTemplate.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HandlebarsContractTemplate.java @@ -119,8 +119,7 @@ public class HandlebarsContractTemplate implements ContractTemplate { @Override public String escapedQuery(String key, int index) { - return escapedWrapped( - "request.query." + key + ".[" + String.valueOf(index) + "]"); + return escapedWrapped("request.query." + key + ".[" + String.valueOf(index) + "]"); } @Override @@ -140,8 +139,7 @@ public class HandlebarsContractTemplate implements ContractTemplate { @Override public String escapedHeader(String key, int index) { - return escapedWrapped( - "request.headers." + key + ".[" + String.valueOf(index) + "]"); + return escapedWrapped("request.headers." + key + ".[" + String.valueOf(index) + "]"); } @Override diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Header.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Header.java index 296d617a03..39d38501f7 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Header.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Header.java @@ -38,8 +38,7 @@ public class Header extends DslProperty { } public Header(String name, Object value) { - super(ContractUtils.CLIENT_VALUE.apply(value), - ContractUtils.SERVER_VALUE.apply(value)); + super(ContractUtils.CLIENT_VALUE.apply(value), ContractUtils.SERVER_VALUE.apply(value)); this.name = name; } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Headers.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Headers.java index e6dcf02749..a188e355a7 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Headers.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Headers.java @@ -36,11 +36,11 @@ import java.util.regex.Pattern; */ public class Headers { - private static final BiFunction CLIENT_SIDE = (s, - header) -> ContractUtils.convertStubSideRecursively(header); + private static final BiFunction CLIENT_SIDE = (s, header) -> ContractUtils + .convertStubSideRecursively(header); - private static final BiFunction SERVER_SIDE = (s, - header) -> ContractUtils.convertTestSideRecursively(header); + private static final BiFunction SERVER_SIDE = (s, header) -> ContractUtils + .convertTestSideRecursively(header); private Set
entries = new LinkedHashSet<>(); @@ -95,8 +95,7 @@ public class Headers { public Map asMap(final BiFunction consumer) { final Map map = new LinkedHashMap<>(); - entries.forEach(header -> map.put(header.getName(), - consumer.apply(header.getName(), header))); + entries.forEach(header -> map.put(header.getName(), consumer.apply(header.getName(), header))); return map; } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HttpMethods.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HttpMethods.java index 15226f997b..d6a78504ff 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HttpMethods.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HttpMethods.java @@ -31,8 +31,7 @@ public final class HttpMethods { private static final Log log = LogFactory.getLog(HttpMethods.class); public HttpMethods() { - log.warn( - "WARNING: HttpMethods shouldn't be instantiated. Use its static methods instead."); + log.warn("WARNING: HttpMethods shouldn't be instantiated. Use its static methods instead."); } /** @@ -149,10 +148,8 @@ public final class HttpMethods { public enum HttpMethod { - GET(HttpMethods.GET), HEAD(HttpMethods.HEAD), POST(HttpMethods.POST), PUT( - HttpMethods.PUT), PATCH(HttpMethods.PATCH), DELETE( - HttpMethods.DELETE), OPTIONS( - HttpMethods.OPTIONS), TRACE(HttpMethods.TRACE),; + GET(HttpMethods.GET), HEAD(HttpMethods.HEAD), POST(HttpMethods.POST), PUT(HttpMethods.PUT), PATCH( + HttpMethods.PATCH), DELETE(HttpMethods.DELETE), OPTIONS(HttpMethods.OPTIONS), TRACE(HttpMethods.TRACE),; private final String methodName; diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HttpStatus.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HttpStatus.java index 8c8d21214c..ca2133664b 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HttpStatus.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HttpStatus.java @@ -31,8 +31,7 @@ public final class HttpStatus { private static final Log log = LogFactory.getLog(HttpStatus.class); public HttpStatus() { - log.warn( - "WARNING: HttpStatus shouldn't be instantiated. Use its static methods instead."); + log.warn("WARNING: HttpStatus shouldn't be instantiated. Use its static methods instead."); } /** diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Input.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Input.java index 34309b76c5..2bc3be92e1 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Input.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Input.java @@ -357,26 +357,22 @@ public class Input extends Common implements RegexCreatingProperty { + private class ClientPatternValueDslProperty extends PatternValueDslProperty { @Override - protected ClientDslProperty createProperty(Pattern pattern, - Object generatedValue) { + protected ClientDslProperty createProperty(Pattern pattern, Object generatedValue) { return new ClientDslProperty(pattern, generatedValue); } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MatchingStrategy.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MatchingStrategy.java index e60488bdfe..5e7464b444 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MatchingStrategy.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MatchingStrategy.java @@ -43,8 +43,7 @@ public class MatchingStrategy extends DslProperty { this(value, type, null); } - public MatchingStrategy(DslProperty value, Type type, - JSONCompareMode jsonCompareMode) { + public MatchingStrategy(DslProperty value, Type type, JSONCompareMode jsonCompareMode) { super(value.getClientValue(), value.getServerValue()); this.type = type; this.jsonCompareMode = jsonCompareMode; @@ -68,8 +67,7 @@ public class MatchingStrategy extends DslProperty { @Override public String toString() { - return "MatchingStrategy{" + "type=" + type + ", jsonCompareMode=" - + jsonCompareMode + '}'; + return "MatchingStrategy{" + "type=" + type + ", jsonCompareMode=" + jsonCompareMode + '}'; } @Override diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MatchingType.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MatchingType.java index f23616e995..c35577059b 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MatchingType.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MatchingType.java @@ -62,8 +62,7 @@ public enum MatchingType { NULL; public static boolean regexRelated(MatchingType type) { - return !type.equals(EQUALITY) && !type.equals(TYPE) && !type.equals(COMMAND) - && !type.equals(NULL); + return !type.equals(EQUALITY) && !type.equals(TYPE) && !type.equals(COMMAND) && !type.equals(NULL); } } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MatchingTypeValue.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MatchingTypeValue.java index 7e4f40bd2d..6cc246e95f 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MatchingTypeValue.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MatchingTypeValue.java @@ -58,8 +58,7 @@ public class MatchingTypeValue { this.minTypeOccurrence = minTypeOccurrence; } - MatchingTypeValue(MatchingType type, Object value, Integer minTypeOccurrence, - Integer maxTypeOccurrence) { + MatchingTypeValue(MatchingType type, Object value, Integer minTypeOccurrence, Integer maxTypeOccurrence) { this.type = type; this.value = value; this.minTypeOccurrence = minTypeOccurrence; @@ -119,9 +118,8 @@ public class MatchingTypeValue { @Override public String toString() { - return "MatchingTypeValue{" + "type=" + type + ", value=" + value - + ", minTypeOccurrence=" + minTypeOccurrence + ", maxTypeOccurrence=" - + maxTypeOccurrence + '}'; + return "MatchingTypeValue{" + "type=" + type + ", value=" + value + ", minTypeOccurrence=" + minTypeOccurrence + + ", maxTypeOccurrence=" + maxTypeOccurrence + '}'; } } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MediaTypes.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MediaTypes.java index 6c12399f19..6146270b7c 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MediaTypes.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MediaTypes.java @@ -31,8 +31,7 @@ public class MediaTypes { private static final Log log = LogFactory.getLog(MediaTypes.class); public MediaTypes() { - log.warn( - "WARNING: MediaTypes shouldn't be instantiated. Use its static methods instead."); + log.warn("WARNING: MediaTypes shouldn't be instantiated. Use its static methods instead."); } /** @@ -58,8 +57,7 @@ public class MediaTypes { /** * Public constant for {@code application/json;charset=UTF-8}. */ - public static final String APPLICATION_JSON_UTF8 = APPLICATION_JSON - + ";charset=UTF-8"; + public static final String APPLICATION_JSON_UTF8 = APPLICATION_JSON + ";charset=UTF-8"; /** * Public constant for {@code application/octet-stream}. diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MessagingHeaders.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MessagingHeaders.java index d50495b35a..a7485aedee 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MessagingHeaders.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/MessagingHeaders.java @@ -31,8 +31,7 @@ public class MessagingHeaders { private static final Log log = LogFactory.getLog(MessagingHeaders.class); public MessagingHeaders() { - log.warn( - "WARNING: MessagingHeaders shouldn't be instantiated. Use its static methods instead."); + log.warn("WARNING: MessagingHeaders shouldn't be instantiated. Use its static methods instead."); } /** diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Multipart.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Multipart.java index aefb04e29a..0c5cd67bdd 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Multipart.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Multipart.java @@ -25,20 +25,16 @@ import java.util.stream.Collectors; public class Multipart extends DslProperty { public Multipart(Map multipart) { - super(extractValue(multipart, ContractUtils.CLIENT_VALUE), - extractValue(multipart, ContractUtils.SERVER_VALUE)); + super(extractValue(multipart, ContractUtils.CLIENT_VALUE), extractValue(multipart, ContractUtils.SERVER_VALUE)); } public Multipart(List multipartAsList) { - super(multipartAsList.stream().map(DslProperty::getClientValue) - .collect(Collectors.toList()), - multipartAsList.stream().map(DslProperty::getServerValue) - .collect(Collectors.toList())); + super(multipartAsList.stream().map(DslProperty::getClientValue).collect(Collectors.toList()), + multipartAsList.stream().map(DslProperty::getServerValue).collect(Collectors.toList())); } public Multipart(Object value) { - super(ContractUtils.CLIENT_VALUE.apply(value), - ContractUtils.SERVER_VALUE.apply(value)); + super(ContractUtils.CLIENT_VALUE.apply(value), ContractUtils.SERVER_VALUE.apply(value)); } public Multipart(DslProperty multipartAsValue) { @@ -56,11 +52,9 @@ public class Multipart extends DslProperty { return new Multipart(value); } - private static Map extractValue(Map multipart, - final Function valueProvider) { + private static Map extractValue(Map multipart, final Function valueProvider) { final Map map = new LinkedHashMap(); - multipart.forEach( - (s, dslProperty) -> map.put(s, valueProvider.apply(dslProperty))); + multipart.forEach((s, dslProperty) -> map.put(s, valueProvider.apply(dslProperty))); return map; } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/NamedProperty.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/NamedProperty.java index 3dd93f7eac..b509003153 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/NamedProperty.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/NamedProperty.java @@ -51,8 +51,7 @@ public class NamedProperty { } public NamedProperty(Map namedMap) { - this(asDslProperty(value(namedMap, NAME)), - asDslProperty(value(namedMap, CONTENT)), + this(asDslProperty(value(namedMap, NAME)), asDslProperty(value(namedMap, CONTENT)), asDslProperty(value(namedMap, CONTENT_TYPE))); } @@ -120,8 +119,7 @@ public class NamedProperty { @Override public String toString() { - return "NamedProperty{" + "name=" + name + ", value=" + value + ", contentType=" - + contentType + '}'; + return "NamedProperty{" + "name=" + name + ", value=" + value + ", contentType=" + contentType + '}'; } } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/OutputMessage.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/OutputMessage.java index f0c7b0948d..0921dd023c 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/OutputMessage.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/OutputMessage.java @@ -33,8 +33,7 @@ import org.apache.commons.logging.LogFactory; * @author Tim Ysewyn * @since 1.0.0 */ -public class OutputMessage extends Common - implements RegexCreatingProperty { +public class OutputMessage extends Common implements RegexCreatingProperty { private static final Log log = LogFactory.getLog(OutputMessage.class); @@ -86,8 +85,7 @@ public class OutputMessage extends Common */ @Deprecated public DslProperty value(ClientDslProperty clientDslProperty) { - return value(new ServerDslProperty(clientDslProperty.getServerValue(), - clientDslProperty.getClientValue())); + return value(new ServerDslProperty(clientDslProperty.getServerValue(), clientDslProperty.getClientValue())); } public DslProperty value(ServerDslProperty serverDslProperty) { @@ -361,10 +359,8 @@ public class OutputMessage extends Common return false; } OutputMessage that = (OutputMessage) o; - return Objects.equals(sentTo, that.sentTo) - && Objects.equals(headers, that.headers) - && Objects.equals(body, that.body) - && Objects.equals(assertThat, that.assertThat) + return Objects.equals(sentTo, that.sentTo) && Objects.equals(headers, that.headers) + && Objects.equals(body, that.body) && Objects.equals(assertThat, that.assertThat) && Objects.equals(bodyMatchers, that.bodyMatchers); } @@ -375,17 +371,14 @@ public class OutputMessage extends Common @Override public String toString() { - return "OutputMessage{" + "\n\tsentTo=" + sentTo + ", \n\theaders=" + headers - + ", \n\tbody=" + body + ", \n\tassertThat=" + assertThat - + ", \n\tbodyMatchers=" + bodyMatchers + "} \n\t" + super.toString(); + return "OutputMessage{" + "\n\tsentTo=" + sentTo + ", \n\theaders=" + headers + ", \n\tbody=" + body + + ", \n\tassertThat=" + assertThat + ", \n\tbodyMatchers=" + bodyMatchers + "} \n\t" + super.toString(); } - private class ServerPatternValueDslProperty - extends PatternValueDslProperty { + private class ServerPatternValueDslProperty extends PatternValueDslProperty { @Override - protected ServerDslProperty createProperty(Pattern pattern, - Object generatedValue) { + protected ServerDslProperty createProperty(Pattern pattern, Object generatedValue) { return new ServerDslProperty(pattern, generatedValue); } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/PathBodyMatcher.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/PathBodyMatcher.java index 82a7032c6e..2e02b13c14 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/PathBodyMatcher.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/PathBodyMatcher.java @@ -66,8 +66,7 @@ public class PathBodyMatcher implements BodyMatcher { return false; } PathBodyMatcher that = (PathBodyMatcher) o; - return Objects.equals(path, that.path) - && Objects.equals(matchingTypeValue, that.matchingTypeValue); + return Objects.equals(path, that.path) && Objects.equals(matchingTypeValue, that.matchingTypeValue); } @Override @@ -77,8 +76,7 @@ public class PathBodyMatcher implements BodyMatcher { @Override public String toString() { - return "PathBodyMatcher{" + "path='" + path + '\'' + ", matchingTypeValue=" - + matchingTypeValue + '}'; + return "PathBodyMatcher{" + "path='" + path + '\'' + ", matchingTypeValue=" + matchingTypeValue + '}'; } } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/PatternValueDslProperty.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/PatternValueDslProperty.java index d787d2876c..2563c7906c 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/PatternValueDslProperty.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/PatternValueDslProperty.java @@ -26,8 +26,7 @@ import org.apache.commons.lang3.RandomStringUtils; * @author Marcin Grzejszczak * @author Tim Ysewyn */ -abstract class PatternValueDslProperty - implements RegexCreatingProperty { +abstract class PatternValueDslProperty implements RegexCreatingProperty { private final Random random = new Random(); @@ -61,14 +60,12 @@ abstract class PatternValueDslProperty @Override public T anyAlphaUnicode() { - return createAndValidateProperty(RegexPatterns.ONLY_ALPHA_UNICODE, - RandomStringGenerator.randomString(20)); + return createAndValidateProperty(RegexPatterns.ONLY_ALPHA_UNICODE, RandomStringGenerator.randomString(20)); } @Override public T anyAlphaNumeric() { - return createAndValidateProperty(RegexPatterns.ALPHA_NUMERIC, - RandomStringUtils.randomAlphanumeric(20)); + return createAndValidateProperty(RegexPatterns.ALPHA_NUMERIC, RandomStringUtils.randomAlphanumeric(20)); } @Override @@ -83,20 +80,17 @@ abstract class PatternValueDslProperty @Override public T anyPositiveInt() { - return createAndValidateProperty(RegexPatterns.POSITIVE_INT, - Math.abs(this.random.nextInt() + 1)); + return createAndValidateProperty(RegexPatterns.POSITIVE_INT, Math.abs(this.random.nextInt() + 1)); } @Override public T anyDouble() { - return createAndValidateProperty(RegexPatterns.DOUBLE, - this.random.nextInt(100) + this.random.nextDouble()); + return createAndValidateProperty(RegexPatterns.DOUBLE, this.random.nextInt(100) + this.random.nextDouble()); } @Override public T anyHex() { - return createAndValidateProperty(RegexPatterns.HEX, - RandomStringUtils.random(10, "0123456789abcdef")); + return createAndValidateProperty(RegexPatterns.HEX, RandomStringUtils.random(10, "0123456789abcdef")); } @Override @@ -106,8 +100,7 @@ abstract class PatternValueDslProperty @Override public T anyIpAddress() { - return createAndValidateProperty(RegexPatterns.IP_ADDRESS, - "192.168.0." + this.random.nextInt(10)); + return createAndValidateProperty(RegexPatterns.IP_ADDRESS, "192.168.0." + this.random.nextInt(10)); } @Override @@ -118,68 +111,59 @@ abstract class PatternValueDslProperty @Override public T anyEmail() { - return createAndValidateProperty(RegexPatterns.EMAIL, - "foo@bar" + this.random.nextInt() + ".com"); + return createAndValidateProperty(RegexPatterns.EMAIL, "foo@bar" + this.random.nextInt() + ".com"); } @Override public T anyUrl() { - return createAndValidateProperty(RegexPatterns.URL, - "https://foo" + this.random.nextInt() + ".com"); + return createAndValidateProperty(RegexPatterns.URL, "https://foo" + this.random.nextInt() + ".com"); } @Override public T anyHttpsUrl() { - return createAndValidateProperty(RegexPatterns.HTTPS_URL, - "https://baz" + this.random.nextInt() + ".com"); + return createAndValidateProperty(RegexPatterns.HTTPS_URL, "https://baz" + this.random.nextInt() + ".com"); } @Override public T anyUuid() { - return createAndValidateProperty(RegexPatterns.UUID, - UUID.randomUUID().toString()); + return createAndValidateProperty(RegexPatterns.UUID, UUID.randomUUID().toString()); } @Override public T anyDate() { int d = this.random.nextInt(8) + 1; - return createAndValidateProperty(RegexPatterns.ANY_DATE, "201" + String.valueOf(d) - + "-0" + String.valueOf(d) + "-1" + String.valueOf(d)); + return createAndValidateProperty(RegexPatterns.ANY_DATE, + "201" + String.valueOf(d) + "-0" + String.valueOf(d) + "-1" + String.valueOf(d)); } @Override public T anyDateTime() { final int d = this.random.nextInt(8) + 1; return createAndValidateProperty(RegexPatterns.ANY_DATE_TIME, - "201" + String.valueOf(d) + "-0" + String.valueOf(d) + "-1" - + String.valueOf(d) + "T12:23:34"); + "201" + String.valueOf(d) + "-0" + String.valueOf(d) + "-1" + String.valueOf(d) + "T12:23:34"); } @Override public T anyTime() { int d = this.random.nextInt(9); - return createAndValidateProperty(RegexPatterns.ANY_TIME, - "12:2" + String.valueOf(d) + ":3" + String.valueOf(d)); + return createAndValidateProperty(RegexPatterns.ANY_TIME, "12:2" + String.valueOf(d) + ":3" + String.valueOf(d)); } @Override public T anyIso8601WithOffset() { final int d = this.random.nextInt(8) + 1; return createAndValidateProperty(RegexPatterns.ISO8601_WITH_OFFSET, - "201" + String.valueOf(d) + "-0" + String.valueOf(d) + "-1" - + String.valueOf(d) + "T12:23:34.123Z"); + "201" + String.valueOf(d) + "-0" + String.valueOf(d) + "-1" + String.valueOf(d) + "T12:23:34.123Z"); } @Override public T anyNonBlankString() { - return createAndValidateProperty(RegexPatterns.NON_BLANK, - RandomStringGenerator.randomString(20)); + return createAndValidateProperty(RegexPatterns.NON_BLANK, RandomStringGenerator.randomString(20)); } @Override public T anyNonEmptyString() { - return createAndValidateProperty(RegexPatterns.NON_EMPTY, - RandomStringGenerator.randomString(20)); + return createAndValidateProperty(RegexPatterns.NON_EMPTY, RandomStringGenerator.randomString(20)); } @Override diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/QueryParameter.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/QueryParameter.java index f23e13dbae..12d99b2555 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/QueryParameter.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/QueryParameter.java @@ -31,23 +31,19 @@ public class QueryParameter extends DslProperty { public QueryParameter(String name, DslProperty dslProperty) { super(dslProperty.getClientValue(), dslProperty.getServerValue()); - ValidateUtils.validateServerValueIsAvailable(dslProperty.getServerValue(), - "Query parameter \'" + name + "\'"); + ValidateUtils.validateServerValueIsAvailable(dslProperty.getServerValue(), "Query parameter \'" + name + "\'"); this.name = name; } public QueryParameter(String name, MatchingStrategy matchingStrategy) { super(matchingStrategy); - ValidateUtils.validateServerValueIsAvailable(matchingStrategy, - "Query parameter \'" + name + "\'"); + ValidateUtils.validateServerValueIsAvailable(matchingStrategy, "Query parameter \'" + name + "\'"); this.name = name; } public QueryParameter(String name, Object value) { - super(ContractUtils.CLIENT_VALUE.apply(value), - ContractUtils.SERVER_VALUE.apply(value)); - ValidateUtils.validateServerValueIsAvailable(value, - "Query parameter \'" + name + "\'"); + super(ContractUtils.CLIENT_VALUE.apply(value), ContractUtils.SERVER_VALUE.apply(value)); + ValidateUtils.validateServerValueIsAvailable(value, "Query parameter \'" + name + "\'"); this.name = name; } @@ -56,8 +52,7 @@ public class QueryParameter extends DslProperty { return new QueryParameter(key, (MatchingStrategy) value); } else if (value instanceof RegexProperty) { - return new QueryParameter(key, - ((RegexProperty) value).dynamicClientEscapedConcreteProducer()); + return new QueryParameter(key, ((RegexProperty) value).dynamicClientEscapedConcreteProducer()); } return new QueryParameter(key, value); } @@ -92,8 +87,7 @@ public class QueryParameter extends DslProperty { @Override public String toString() { - return "QueryParameter{" + "name='" + name + '\'' + ", value=" + super.toString() - + '}'; + return "QueryParameter{" + "name='" + name + '\'' + ", value=" + super.toString() + '}'; } } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/QueryParameters.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/QueryParameters.java index 5a64528b8b..9d26aa466a 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/QueryParameters.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/QueryParameters.java @@ -27,8 +27,7 @@ public class QueryParameters { private List parameters = new LinkedList(); public void parameter(Map singleParameter) { - Iterator> iterator = singleParameter.entrySet() - .iterator(); + Iterator> iterator = singleParameter.entrySet().iterator(); if (iterator.hasNext()) { Map.Entry first = iterator.next(); if (first != null) { diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/RegexMatchingTypeValue.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/RegexMatchingTypeValue.java index 269e637752..6d96441369 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/RegexMatchingTypeValue.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/RegexMatchingTypeValue.java @@ -21,8 +21,7 @@ package org.springframework.cloud.contract.spec.internal; */ public class RegexMatchingTypeValue extends MatchingTypeValue { - RegexMatchingTypeValue(MatchingType type, Object value, Integer minTypeOccurrence, - Integer maxTypeOccurrence) { + RegexMatchingTypeValue(MatchingType type, Object value, Integer minTypeOccurrence, Integer maxTypeOccurrence) { super(type, value, minTypeOccurrence, maxTypeOccurrence); } @@ -40,8 +39,7 @@ public class RegexMatchingTypeValue extends MatchingTypeValue { } RegexProperty regexProperty = (RegexProperty) this.getValue(); return new RegexMatchingTypeValue(this.getType(), - new RegexProperty(regexProperty.getClientValue(), - regexProperty.getServerValue(), clazz), + new RegexProperty(regexProperty.getClientValue(), regexProperty.getServerValue(), clazz), this.getMinTypeOccurrence(), this.getMaxTypeOccurrence()); } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/RegexPatterns.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/RegexPatterns.java index ebd6472d60..8fc014e95d 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/RegexPatterns.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/RegexPatterns.java @@ -35,8 +35,7 @@ public final class RegexPatterns { private static final Log log = LogFactory.getLog(RegexPatterns.class); public RegexPatterns() { - log.warn( - "WARNING: RegexPatterns shouldn't be instantiated. Use its static methods instead."); + log.warn("WARNING: RegexPatterns shouldn't be instantiated. Use its static methods instead."); } protected static final Pattern TRUE_OR_FALSE = Pattern.compile("(true|false)"); @@ -58,11 +57,9 @@ public final class RegexPatterns { protected static final Pattern IP_ADDRESS = Pattern.compile( "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])"); - protected static final Pattern HOSTNAME_PATTERN = Pattern - .compile("((http[s]?|ftp):/)/?([^:/\\s]+)(:[0-9]{1,5})?"); + protected static final Pattern HOSTNAME_PATTERN = Pattern.compile("((http[s]?|ftp):/)/?([^:/\\s]+)(:[0-9]{1,5})?"); - protected static final Pattern EMAIL = Pattern - .compile("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}"); + protected static final Pattern EMAIL = Pattern.compile("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}"); protected static final Pattern URL = UrlHelper.URL; @@ -77,8 +74,7 @@ public final class RegexPatterns { protected static final Pattern ANY_DATE_TIME = Pattern.compile( "([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])"); - protected static final Pattern ANY_TIME = Pattern - .compile("(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])"); + protected static final Pattern ANY_TIME = Pattern.compile("(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])"); protected static final Pattern NON_EMPTY = Pattern.compile("[\\S\\s]+"); @@ -88,8 +84,7 @@ public final class RegexPatterns { "([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.\\d+)?(Z|[+-][01]\\d:[0-5]\\d)"); protected static Pattern anyOf(String... values) { - return Pattern.compile(Arrays.stream(values).map(it -> '^' + it + '$') - .collect(Collectors.joining("|"))); + return Pattern.compile(Arrays.stream(values).map(it -> '^' + it + '$').collect(Collectors.joining("|"))); } public static String multipartParam(Object name, Object value) { @@ -98,13 +93,10 @@ public final class RegexPatterns { + value + "\r\n--\\1.*"; } - public static String multipartFile(Object name, Object filename, Object content, - Object contentType) { - return ".*--(.*)\r\nContent-Disposition: form-data; name=\"" + name - + "\"; filename=\"" + filename + "\"\r\n(Content-Type: " - + toContentType(contentType) - + "\r\n)?(Content-Transfer-Encoding: .*\r\n)?(Content-Length: \\d+\r\n)?\r\n" - + content + "\r\n--\\1.*"; + public static String multipartFile(Object name, Object filename, Object content, Object contentType) { + return ".*--(.*)\r\nContent-Disposition: form-data; name=\"" + name + "\"; filename=\"" + filename + + "\"\r\n(Content-Type: " + toContentType(contentType) + + "\r\n)?(Content-Transfer-Encoding: .*\r\n)?(Content-Length: \\d+\r\n)?\r\n" + content + "\r\n--\\1.*"; } private static String toContentType(Object contentType) { diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/RegexProperty.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/RegexProperty.java index 80be800827..385d33e37f 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/RegexProperty.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/RegexProperty.java @@ -44,10 +44,8 @@ public class RegexProperty extends DslProperty implements CanBeDynamic { public RegexProperty(Object client, Object server, Class clazz) { super(client, server); - boolean clientDynamic = client instanceof Pattern - || client instanceof RegexProperty; - boolean serverDynamic = server instanceof Pattern - || server instanceof RegexProperty; + boolean clientDynamic = client instanceof Pattern || client instanceof RegexProperty; + boolean serverDynamic = server instanceof Pattern || server instanceof RegexProperty; if (!clientDynamic && !serverDynamic) { throw new IllegalStateException("Neither client not server side is dynamic"); } @@ -80,38 +78,31 @@ public class RegexProperty extends DslProperty implements CanBeDynamic { } public RegexProperty asInteger() { - return new RegexProperty(this.getClientValue(), this.getServerValue(), - Integer.class); + return new RegexProperty(this.getClientValue(), this.getServerValue(), Integer.class); } public RegexProperty asDouble() { - return new RegexProperty(this.getClientValue(), this.getServerValue(), - Double.class); + return new RegexProperty(this.getClientValue(), this.getServerValue(), Double.class); } public RegexProperty asFloat() { - return new RegexProperty(this.getClientValue(), this.getServerValue(), - Float.class); + return new RegexProperty(this.getClientValue(), this.getServerValue(), Float.class); } public RegexProperty asLong() { - return new RegexProperty(this.getClientValue(), this.getServerValue(), - Long.class); + return new RegexProperty(this.getClientValue(), this.getServerValue(), Long.class); } public RegexProperty asShort() { - return new RegexProperty(this.getClientValue(), this.getServerValue(), - Short.class); + return new RegexProperty(this.getClientValue(), this.getServerValue(), Short.class); } public RegexProperty asString() { - return new RegexProperty(this.getClientValue(), this.getServerValue(), - String.class); + return new RegexProperty(this.getClientValue(), this.getServerValue(), String.class); } public RegexProperty asBooleanType() { - return new RegexProperty(this.getClientValue(), this.getServerValue(), - Boolean.class); + return new RegexProperty(this.getClientValue(), this.getServerValue(), Boolean.class); } public Object generate() { @@ -171,13 +162,11 @@ public class RegexProperty extends DslProperty implements CanBeDynamic { } public RegexProperty concreteClientEscapedDynamicProducer() { - return new RegexProperty(generateAndEscapeJavaStringIfNeeded(), this.pattern, - this.clazz); + return new RegexProperty(generateAndEscapeJavaStringIfNeeded(), this.pattern, this.clazz); } public RegexProperty dynamicClientEscapedConcreteProducer() { - return new RegexProperty(this.pattern, generateAndEscapeJavaStringIfNeeded(), - this.clazz); + return new RegexProperty(this.pattern, generateAndEscapeJavaStringIfNeeded(), this.clazz); } @Override @@ -189,8 +178,7 @@ public class RegexProperty extends DslProperty implements CanBeDynamic { return false; } RegexProperty that = (RegexProperty) o; - return Objects.equals(stringPatternIfPresent(pattern), - stringPatternIfPresent(that.pattern)) + return Objects.equals(stringPatternIfPresent(pattern), stringPatternIfPresent(that.pattern)) && Objects.equals(clazz, that.clazz); } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Request.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Request.java index 0ceeec097d..136908cbdf 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Request.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Request.java @@ -277,8 +277,7 @@ public class Request extends Common implements RegexCreatingProperty { + private class ClientPatternValueDslProperty extends PatternValueDslProperty { @Override - protected ClientDslProperty createProperty(Pattern pattern, - Object generatedValue) { + protected ClientDslProperty createProperty(Pattern pattern, Object generatedValue) { return new ClientDslProperty(pattern, generatedValue); } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Response.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Response.java index c1995d9dad..2f76e0c2ba 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Response.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Response.java @@ -131,8 +131,7 @@ public class Response extends Common implements RegexCreatingProperty { + private class ServerPatternValueDslProperty extends PatternValueDslProperty { @Override - protected ServerDslProperty createProperty(Pattern pattern, - Object generatedValue) { + protected ServerDslProperty createProperty(Pattern pattern, Object generatedValue) { return new ServerDslProperty(pattern, generatedValue); } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Url.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Url.java index 99b1363eda..02ac52eed1 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Url.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/Url.java @@ -78,8 +78,7 @@ public class Url extends DslProperty { @Override public String toString() { - return "Url{" + "\nqueryParameters=" + queryParameters + "} \n" - + super.toString(); + return "Url{" + "\nqueryParameters=" + queryParameters + "} \n" + super.toString(); } /** diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/UrlHelper.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/UrlHelper.java index 072b8e2192..5031775249 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/UrlHelper.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/UrlHelper.java @@ -39,8 +39,8 @@ final class UrlHelper { private static final String REGEX_USERINFO = "(?:\\S+(?::\\S*)?@)?"; private static final String REGEX_HOST = "(?:" - + "(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" - + "|" + "(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)" + + "(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" + "|" + + "(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)" + "(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*" + "(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))|(?:localhost))"; @@ -48,13 +48,11 @@ final class UrlHelper { private static final String REGEX_RESOURCE_PATH = "(?:/\\S*)?"; - protected static final Pattern HTTPS_URL = Pattern.compile( - "^(?:" + HTTPS_REGEX_SCHEME + REGEX_AUTHORATIVE_DECLARATION + REGEX_USERINFO - + REGEX_HOST + REGEX_PORT + REGEX_RESOURCE_PATH + ")$"); + protected static final Pattern HTTPS_URL = Pattern.compile("^(?:" + HTTPS_REGEX_SCHEME + + REGEX_AUTHORATIVE_DECLARATION + REGEX_USERINFO + REGEX_HOST + REGEX_PORT + REGEX_RESOURCE_PATH + ")$"); - protected static final Pattern URL = Pattern.compile("^(?:(?:" + REGEX_SCHEME - + REGEX_AUTHORATIVE_DECLARATION + ")?" + REGEX_USERINFO + REGEX_HOST - + REGEX_PORT + REGEX_RESOURCE_PATH + ")$"); + protected static final Pattern URL = Pattern.compile("^(?:(?:" + REGEX_SCHEME + REGEX_AUTHORATIVE_DECLARATION + ")?" + + REGEX_USERINFO + REGEX_HOST + REGEX_PORT + REGEX_RESOURCE_PATH + ")$"); private UrlHelper() { throw new IllegalStateException("Can't instantiate an utility class"); diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/util/RegexpUtils.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/util/RegexpUtils.java index b2cd49596f..73438339b7 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/util/RegexpUtils.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/util/RegexpUtils.java @@ -37,7 +37,6 @@ public final class RegexpUtils { return SPECIAL_REGEX_CHARS.matcher(str).replaceAll("\\\\$0"); } - private static final Pattern SPECIAL_REGEX_CHARS = Pattern - .compile("[{}()\\[\\].+*?^$\\\\|]"); + private static final Pattern SPECIAL_REGEX_CHARS = Pattern.compile("[{}()\\[\\].+*?^$\\\\|]"); } diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/util/ValidateUtils.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/util/ValidateUtils.java index f243acda4f..f4525ef541 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/util/ValidateUtils.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/util/ValidateUtils.java @@ -73,12 +73,10 @@ public final class ValidateUtils { throw new IllegalStateException(msg + " can\'t be a pattern for the server side"); } - public static void validateServerValue(MatchingStrategy matchingStrategy, - String msg) { + public static void validateServerValue(MatchingStrategy matchingStrategy, String msg) { if (!ALLOWED_MATCHING_TYPES_ON_SERVER_SIDE.contains(matchingStrategy.getType())) { throw new IllegalStateException(msg + " can\'t be of a matching type: " - + String.valueOf(matchingStrategy.getType()) - + " for the server side"); + + String.valueOf(matchingStrategy.getType()) + " for the server side"); } validateServerValue(matchingStrategy.getServerValue(), msg); diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/repackaged/nl/flotsam/xeger/Xeger.java b/specs/spring-cloud-contract-spec-java/src/main/java/repackaged/nl/flotsam/xeger/Xeger.java index 9192c40dce..dbcc72c55a 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/repackaged/nl/flotsam/xeger/Xeger.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/repackaged/nl/flotsam/xeger/Xeger.java @@ -63,10 +63,8 @@ public class Xeger { .replace("\\s", "[ \t\r\n]"); // Used s="White"Space this.automaton = new RegExp(pattern).toAutomaton(); this.random = random; - String generatedCharsSysProp = System - .getProperty("springCloudContractGeneratedCharsFromRegex"); - String generatedCharsEnvVar = System - .getenv("SPRING_CLOUD_CONTRACT_GENERATED_CHARS_FROM_REGEX"); + String generatedCharsSysProp = System.getProperty("springCloudContractGeneratedCharsFromRegex"); + String generatedCharsEnvVar = System.getenv("SPRING_CLOUD_CONTRACT_GENERATED_CHARS_FROM_REGEX"); if (StringUtils.isNotEmpty(generatedCharsSysProp)) { ITERATION_LIMIT = Integer.parseInt(generatedCharsSysProp); } @@ -130,8 +128,7 @@ public class Xeger { } private void appendChoice(StringBuilder builder, Transition transition) { - char c = (char) Xeger.getRandomInt(transition.getMin(), transition.getMax(), - this.random); + char c = (char) Xeger.getRandomInt(transition.getMin(), transition.getMax(), this.random); builder.append(c); } diff --git a/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/HttpHeadersTests.java b/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/HttpHeadersTests.java index d1eed15f28..05bfdb120f 100644 --- a/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/HttpHeadersTests.java +++ b/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/HttpHeadersTests.java @@ -33,91 +33,78 @@ class HttpHeadersTests { @Test public void ACCEPT_CHARSET() { BDDAssertions.then(HttpHeaders.ACCEPT_CHARSET).isEqualTo("Accept-Charset"); - BDDAssertions.then(new HttpHeaders().acceptCharset()) - .isEqualTo(HttpHeaders.ACCEPT_CHARSET); + BDDAssertions.then(new HttpHeaders().acceptCharset()).isEqualTo(HttpHeaders.ACCEPT_CHARSET); } @Test public void ACCEPT_ENCODING() { BDDAssertions.then(HttpHeaders.ACCEPT_ENCODING).isEqualTo("Accept-Encoding"); - BDDAssertions.then(new HttpHeaders().acceptEncoding()) - .isEqualTo(HttpHeaders.ACCEPT_ENCODING); + BDDAssertions.then(new HttpHeaders().acceptEncoding()).isEqualTo(HttpHeaders.ACCEPT_ENCODING); } @Test public void ACCEPT_LANGUAGE() { BDDAssertions.then(HttpHeaders.ACCEPT_LANGUAGE).isEqualTo("Accept-Language"); - BDDAssertions.then(new HttpHeaders().acceptLanguage()) - .isEqualTo(HttpHeaders.ACCEPT_LANGUAGE); + BDDAssertions.then(new HttpHeaders().acceptLanguage()).isEqualTo(HttpHeaders.ACCEPT_LANGUAGE); } @Test public void ACCEPT_RANGES() { BDDAssertions.then(HttpHeaders.ACCEPT_RANGES).isEqualTo("Accept-Ranges"); - BDDAssertions.then(new HttpHeaders().acceptRanges()) - .isEqualTo(HttpHeaders.ACCEPT_RANGES); + BDDAssertions.then(new HttpHeaders().acceptRanges()).isEqualTo(HttpHeaders.ACCEPT_RANGES); } @Test public void ACCESS_CONTROL_ALLOW_CREDENTIALS() { - BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS) - .isEqualTo("Access-Control-Allow-Credentials"); + BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS).isEqualTo("Access-Control-Allow-Credentials"); BDDAssertions.then(new HttpHeaders().accessControlAllowCredentials()) .isEqualTo(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS); } @Test public void ACCESS_CONTROL_ALLOW_HEADERS() { - BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS) - .isEqualTo("Access-Control-Allow-Headers"); + BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS).isEqualTo("Access-Control-Allow-Headers"); BDDAssertions.then(new HttpHeaders().accessControlAllowHeaders()) .isEqualTo(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS); } @Test public void ACCESS_CONTROL_ALLOW_METHODS() { - BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS) - .isEqualTo("Access-Control-Allow-Methods"); + BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS).isEqualTo("Access-Control-Allow-Methods"); BDDAssertions.then(new HttpHeaders().accessControlAllowMethods()) .isEqualTo(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS); } @Test public void ACCESS_CONTROL_ALLOW_ORIGIN() { - BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN) - .isEqualTo("Access-Control-Allow-Origin"); + BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN).isEqualTo("Access-Control-Allow-Origin"); BDDAssertions.then(new HttpHeaders().accessControlAllowOrigin()) .isEqualTo(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN); } @Test public void ACCESS_CONTROL_EXPOSE_HEADERS() { - BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS) - .isEqualTo("Access-Control-Expose-Headers"); + BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS).isEqualTo("Access-Control-Expose-Headers"); BDDAssertions.then(new HttpHeaders().accessControlExposeHeaders()) .isEqualTo(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS); } @Test public void ACCESS_CONTROL_MAX_AGE() { - BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_MAX_AGE) - .isEqualTo("Access-Control-Max-Age"); - BDDAssertions.then(new HttpHeaders().accessControlMaxAge()) - .isEqualTo(HttpHeaders.ACCESS_CONTROL_MAX_AGE); + BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_MAX_AGE).isEqualTo("Access-Control-Max-Age"); + BDDAssertions.then(new HttpHeaders().accessControlMaxAge()).isEqualTo(HttpHeaders.ACCESS_CONTROL_MAX_AGE); } @Test public void ACCESS_CONTROL_REQUEST_HEADERS() { - BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS) - .isEqualTo("Access-Control-Request-Headers"); + BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS).isEqualTo("Access-Control-Request-Headers"); BDDAssertions.then(new HttpHeaders().accessControlRequestHeaders()) .isEqualTo(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS); } @Test public void ACCESS_CONTROL_REQUEST_METHOD() { - BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD) - .isEqualTo("Access-Control-Request-Method"); + BDDAssertions.then(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD).isEqualTo("Access-Control-Request-Method"); BDDAssertions.then(new HttpHeaders().accessControlRequestMethod()) .isEqualTo(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD); } @@ -137,72 +124,61 @@ class HttpHeadersTests { @Test public void AUTHORIZATION() { BDDAssertions.then(HttpHeaders.AUTHORIZATION).isEqualTo("Authorization"); - BDDAssertions.then(new HttpHeaders().authorization()) - .isEqualTo(HttpHeaders.AUTHORIZATION); + BDDAssertions.then(new HttpHeaders().authorization()).isEqualTo(HttpHeaders.AUTHORIZATION); } @Test public void CACHE_CONTROL() { BDDAssertions.then(HttpHeaders.CACHE_CONTROL).isEqualTo("Cache-Control"); - BDDAssertions.then(new HttpHeaders().cacheControl()) - .isEqualTo(HttpHeaders.CACHE_CONTROL); + BDDAssertions.then(new HttpHeaders().cacheControl()).isEqualTo(HttpHeaders.CACHE_CONTROL); } @Test public void CONNECTION() { BDDAssertions.then(HttpHeaders.CONNECTION).isEqualTo("Connection"); - BDDAssertions.then(new HttpHeaders().connection()) - .isEqualTo(HttpHeaders.CONNECTION); + BDDAssertions.then(new HttpHeaders().connection()).isEqualTo(HttpHeaders.CONNECTION); } @Test public void CONTENT_ENCODING() { BDDAssertions.then(HttpHeaders.CONTENT_ENCODING).isEqualTo("Content-Encoding"); - BDDAssertions.then(new HttpHeaders().contentEncoding()) - .isEqualTo(HttpHeaders.CONTENT_ENCODING); + BDDAssertions.then(new HttpHeaders().contentEncoding()).isEqualTo(HttpHeaders.CONTENT_ENCODING); } @Test public void CONTENT_DISPOSITION() { - BDDAssertions.then(HttpHeaders.CONTENT_DISPOSITION) - .isEqualTo("Content-Disposition"); - BDDAssertions.then(new HttpHeaders().contentDisposition()) - .isEqualTo(HttpHeaders.CONTENT_DISPOSITION); + BDDAssertions.then(HttpHeaders.CONTENT_DISPOSITION).isEqualTo("Content-Disposition"); + BDDAssertions.then(new HttpHeaders().contentDisposition()).isEqualTo(HttpHeaders.CONTENT_DISPOSITION); } @Test public void CONTENT_LANGUAGE() { BDDAssertions.then(HttpHeaders.CONTENT_LANGUAGE).isEqualTo("Content-Language"); - BDDAssertions.then(new HttpHeaders().contentLanguage()) - .isEqualTo(HttpHeaders.CONTENT_LANGUAGE); + BDDAssertions.then(new HttpHeaders().contentLanguage()).isEqualTo(HttpHeaders.CONTENT_LANGUAGE); } @Test public void CONTENT_LENGTH() { BDDAssertions.then(HttpHeaders.CONTENT_LENGTH).isEqualTo("Content-Length"); - BDDAssertions.then(new HttpHeaders().contentLength()) - .isEqualTo(HttpHeaders.CONTENT_LENGTH); + BDDAssertions.then(new HttpHeaders().contentLength()).isEqualTo(HttpHeaders.CONTENT_LENGTH); } @Test public void CONTENT_LOCATION() { BDDAssertions.then(HttpHeaders.CONTENT_LOCATION).isEqualTo("Content-Location"); - BDDAssertions.then(new HttpHeaders().contentLocation()) - .isEqualTo(HttpHeaders.CONTENT_LOCATION); + BDDAssertions.then(new HttpHeaders().contentLocation()).isEqualTo(HttpHeaders.CONTENT_LOCATION); } @Test public void CONTENT_RANGE() { BDDAssertions.then(HttpHeaders.CONTENT_RANGE).isEqualTo("Content-Range"); - BDDAssertions.then(new HttpHeaders().contentRange()) - .isEqualTo(HttpHeaders.CONTENT_RANGE); + BDDAssertions.then(new HttpHeaders().contentRange()).isEqualTo(HttpHeaders.CONTENT_RANGE); } @Test public void CONTENT_TYPE() { BDDAssertions.then(HttpHeaders.CONTENT_TYPE).isEqualTo("Content-Type"); - BDDAssertions.then(new HttpHeaders().contentType()) - .isEqualTo(HttpHeaders.CONTENT_TYPE); + BDDAssertions.then(new HttpHeaders().contentType()).isEqualTo(HttpHeaders.CONTENT_TYPE); } @Test @@ -256,15 +232,13 @@ class HttpHeadersTests { @Test public void IF_MODIFIED_SINCE() { BDDAssertions.then(HttpHeaders.IF_MODIFIED_SINCE).isEqualTo("If-Modified-Since"); - BDDAssertions.then(new HttpHeaders().ifModifiedSince()) - .isEqualTo(HttpHeaders.IF_MODIFIED_SINCE); + BDDAssertions.then(new HttpHeaders().ifModifiedSince()).isEqualTo(HttpHeaders.IF_MODIFIED_SINCE); } @Test public void IF_NONE_MATCH() { BDDAssertions.then(HttpHeaders.IF_NONE_MATCH).isEqualTo("If-None-Match"); - BDDAssertions.then(new HttpHeaders().ifNoneMatch()) - .isEqualTo(HttpHeaders.IF_NONE_MATCH); + BDDAssertions.then(new HttpHeaders().ifNoneMatch()).isEqualTo(HttpHeaders.IF_NONE_MATCH); } @Test @@ -275,17 +249,14 @@ class HttpHeadersTests { @Test public void IF_UNMODIFIED_SINCE() { - BDDAssertions.then(HttpHeaders.IF_UNMODIFIED_SINCE) - .isEqualTo("If-Unmodified-Since"); - BDDAssertions.then(new HttpHeaders().ifUnmodifiedSince()) - .isEqualTo(HttpHeaders.IF_UNMODIFIED_SINCE); + BDDAssertions.then(HttpHeaders.IF_UNMODIFIED_SINCE).isEqualTo("If-Unmodified-Since"); + BDDAssertions.then(new HttpHeaders().ifUnmodifiedSince()).isEqualTo(HttpHeaders.IF_UNMODIFIED_SINCE); } @Test public void LAST_MODIFIED() { BDDAssertions.then(HttpHeaders.LAST_MODIFIED).isEqualTo("Last-Modified"); - BDDAssertions.then(new HttpHeaders().lastModified()) - .isEqualTo(HttpHeaders.LAST_MODIFIED); + BDDAssertions.then(new HttpHeaders().lastModified()).isEqualTo(HttpHeaders.LAST_MODIFIED); } @Test @@ -303,8 +274,7 @@ class HttpHeadersTests { @Test public void MAX_FORWARDS() { BDDAssertions.then(HttpHeaders.MAX_FORWARDS).isEqualTo("Max-Forwards"); - BDDAssertions.then(new HttpHeaders().max_forwards()) - .isEqualTo(HttpHeaders.MAX_FORWARDS); + BDDAssertions.then(new HttpHeaders().max_forwards()).isEqualTo(HttpHeaders.MAX_FORWARDS); } @Test @@ -321,18 +291,14 @@ class HttpHeadersTests { @Test public void PROXY_AUTHENTICATE() { - BDDAssertions.then(HttpHeaders.PROXY_AUTHENTICATE) - .isEqualTo("Proxy-Authenticate"); - BDDAssertions.then(new HttpHeaders().proxyAuthenticate()) - .isEqualTo(HttpHeaders.PROXY_AUTHENTICATE); + BDDAssertions.then(HttpHeaders.PROXY_AUTHENTICATE).isEqualTo("Proxy-Authenticate"); + BDDAssertions.then(new HttpHeaders().proxyAuthenticate()).isEqualTo(HttpHeaders.PROXY_AUTHENTICATE); } @Test public void PROXY_AUTHORIZATION() { - BDDAssertions.then(HttpHeaders.PROXY_AUTHORIZATION) - .isEqualTo("Proxy-Authorization"); - BDDAssertions.then(new HttpHeaders().proxyAuthorization()) - .isEqualTo(HttpHeaders.PROXY_AUTHORIZATION); + BDDAssertions.then(HttpHeaders.PROXY_AUTHORIZATION).isEqualTo("Proxy-Authorization"); + BDDAssertions.then(new HttpHeaders().proxyAuthorization()).isEqualTo(HttpHeaders.PROXY_AUTHORIZATION); } @Test @@ -350,8 +316,7 @@ class HttpHeadersTests { @Test public void RETRY_AFTER() { BDDAssertions.then(HttpHeaders.RETRY_AFTER).isEqualTo("Retry-After"); - BDDAssertions.then(new HttpHeaders().retryAfter()) - .isEqualTo(HttpHeaders.RETRY_AFTER); + BDDAssertions.then(new HttpHeaders().retryAfter()).isEqualTo(HttpHeaders.RETRY_AFTER); } @Test @@ -363,15 +328,13 @@ class HttpHeadersTests { @Test public void SET_COOKIE() { BDDAssertions.then(HttpHeaders.SET_COOKIE).isEqualTo("Set-Cookie"); - BDDAssertions.then(new HttpHeaders().setCookie()) - .isEqualTo(HttpHeaders.SET_COOKIE); + BDDAssertions.then(new HttpHeaders().setCookie()).isEqualTo(HttpHeaders.SET_COOKIE); } @Test public void SET_COOKIE_2() { BDDAssertions.then(HttpHeaders.SET_COOKIE_2).isEqualTo("Set-Cookie2"); - BDDAssertions.then(new HttpHeaders().setCookie2()) - .isEqualTo(HttpHeaders.SET_COOKIE_2); + BDDAssertions.then(new HttpHeaders().setCookie2()).isEqualTo(HttpHeaders.SET_COOKIE_2); } @Test @@ -389,8 +352,7 @@ class HttpHeadersTests { @Test public void TRANSFER_ENCODING() { BDDAssertions.then(HttpHeaders.TRANSFER_ENCODING).isEqualTo("Transfer-Encoding"); - BDDAssertions.then(new HttpHeaders().transferEncoding()) - .isEqualTo(HttpHeaders.TRANSFER_ENCODING); + BDDAssertions.then(new HttpHeaders().transferEncoding()).isEqualTo(HttpHeaders.TRANSFER_ENCODING); } @Test @@ -402,8 +364,7 @@ class HttpHeadersTests { @Test public void USER_AGENT() { BDDAssertions.then(HttpHeaders.USER_AGENT).isEqualTo("User-Agent"); - BDDAssertions.then(new HttpHeaders().user_agent()) - .isEqualTo(HttpHeaders.USER_AGENT); + BDDAssertions.then(new HttpHeaders().user_agent()).isEqualTo(HttpHeaders.USER_AGENT); } @Test @@ -427,8 +388,7 @@ class HttpHeadersTests { @Test public void WWW_AUTHENTICATE() { BDDAssertions.then(HttpHeaders.WWW_AUTHENTICATE).isEqualTo("WWW-Authenticate"); - BDDAssertions.then(new HttpHeaders().wwwAuthenticate()) - .isEqualTo(HttpHeaders.WWW_AUTHENTICATE); + BDDAssertions.then(new HttpHeaders().wwwAuthenticate()).isEqualTo(HttpHeaders.WWW_AUTHENTICATE); } } diff --git a/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/HttpMethodsTests.java b/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/HttpMethodsTests.java index ab2af20dce..b4a8f65b06 100644 --- a/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/HttpMethodsTests.java +++ b/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/HttpMethodsTests.java @@ -27,57 +27,49 @@ class HttpMethodsTests { @Test public void GET() { BDDAssertions.then(HttpMethods.GET).isEqualTo("GET"); - BDDAssertions.then(new HttpMethods().GET().getMethodName()) - .isEqualTo(HttpMethods.GET); + BDDAssertions.then(new HttpMethods().GET().getMethodName()).isEqualTo(HttpMethods.GET); } @Test public void HEAD() { BDDAssertions.then(HttpMethods.HEAD).isEqualTo("HEAD"); - BDDAssertions.then(new HttpMethods().HEAD().getMethodName()) - .isEqualTo(HttpMethods.HEAD); + BDDAssertions.then(new HttpMethods().HEAD().getMethodName()).isEqualTo(HttpMethods.HEAD); } @Test public void POST() { BDDAssertions.then(HttpMethods.POST).isEqualTo("POST"); - BDDAssertions.then(new HttpMethods().POST().getMethodName()) - .isEqualTo(HttpMethods.POST); + BDDAssertions.then(new HttpMethods().POST().getMethodName()).isEqualTo(HttpMethods.POST); } @Test public void PUT() { BDDAssertions.then(HttpMethods.PUT).isEqualTo("PUT"); - BDDAssertions.then(new HttpMethods().PUT().getMethodName()) - .isEqualTo(HttpMethods.PUT); + BDDAssertions.then(new HttpMethods().PUT().getMethodName()).isEqualTo(HttpMethods.PUT); } @Test public void PATCH() { BDDAssertions.then(HttpMethods.PATCH).isEqualTo("PATCH"); - BDDAssertions.then(new HttpMethods().PATCH().getMethodName()) - .isEqualTo(HttpMethods.PATCH); + BDDAssertions.then(new HttpMethods().PATCH().getMethodName()).isEqualTo(HttpMethods.PATCH); } @Test public void DELETE() { BDDAssertions.then(HttpMethods.DELETE).isEqualTo("DELETE"); - BDDAssertions.then(new HttpMethods().DELETE().getMethodName()) - .isEqualTo(HttpMethods.DELETE); + BDDAssertions.then(new HttpMethods().DELETE().getMethodName()).isEqualTo(HttpMethods.DELETE); } @Test public void OPTIONS() { BDDAssertions.then(HttpMethods.OPTIONS).isEqualTo("OPTIONS"); - BDDAssertions.then(new HttpMethods().OPTIONS().getMethodName()) - .isEqualTo(HttpMethods.OPTIONS); + BDDAssertions.then(new HttpMethods().OPTIONS().getMethodName()).isEqualTo(HttpMethods.OPTIONS); } @Test public void TRACE() { BDDAssertions.then(HttpMethods.TRACE).isEqualTo("TRACE"); - BDDAssertions.then(new HttpMethods().TRACE().getMethodName()) - .isEqualTo(HttpMethods.TRACE); + BDDAssertions.then(new HttpMethods().TRACE().getMethodName()).isEqualTo(HttpMethods.TRACE); } } diff --git a/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/MediaTypesTests.java b/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/MediaTypesTests.java index 2ab32c15b3..de3921f0dd 100644 --- a/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/MediaTypesTests.java +++ b/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/MediaTypesTests.java @@ -32,16 +32,13 @@ class MediaTypesTests { @Test public void APPLICATION_ATOM_XML() { - BDDAssertions.then(MediaTypes.APPLICATION_ATOM_XML) - .isEqualTo("application/atom+xml"); - BDDAssertions.then(new MediaTypes().applicationAtomXml()) - .isEqualTo(MediaTypes.APPLICATION_ATOM_XML); + BDDAssertions.then(MediaTypes.APPLICATION_ATOM_XML).isEqualTo("application/atom+xml"); + BDDAssertions.then(new MediaTypes().applicationAtomXml()).isEqualTo(MediaTypes.APPLICATION_ATOM_XML); } @Test public void APPLICATION_FORM_URLENCODED() { - BDDAssertions.then(MediaTypes.APPLICATION_FORM_URLENCODED) - .isEqualTo("application/x-www-form-urlencoded"); + BDDAssertions.then(MediaTypes.APPLICATION_FORM_URLENCODED).isEqualTo("application/x-www-form-urlencoded"); BDDAssertions.then(new MediaTypes().applicationFormUrlencoded()) .isEqualTo(MediaTypes.APPLICATION_FORM_URLENCODED); } @@ -49,46 +46,37 @@ class MediaTypesTests { @Test public void APPLICATION_JSON() { BDDAssertions.then(MediaTypes.APPLICATION_JSON).isEqualTo("application/json"); - BDDAssertions.then(new MediaTypes().applicationJson()) - .isEqualTo(MediaTypes.APPLICATION_JSON); + BDDAssertions.then(new MediaTypes().applicationJson()).isEqualTo(MediaTypes.APPLICATION_JSON); } @Test public void APPLICATION_JSON_UTF8() { - BDDAssertions.then(MediaTypes.APPLICATION_JSON_UTF8) - .isEqualTo("application/json;charset=UTF-8"); - BDDAssertions.then(new MediaTypes().applicationJsonUtf8()) - .isEqualTo(MediaTypes.APPLICATION_JSON_UTF8); + BDDAssertions.then(MediaTypes.APPLICATION_JSON_UTF8).isEqualTo("application/json;charset=UTF-8"); + BDDAssertions.then(new MediaTypes().applicationJsonUtf8()).isEqualTo(MediaTypes.APPLICATION_JSON_UTF8); } @Test public void APPLICATION_OCTET_STREAM() { - BDDAssertions.then(MediaTypes.APPLICATION_OCTET_STREAM) - .isEqualTo("application/octet-stream"); - BDDAssertions.then(new MediaTypes().applicationOctetStream()) - .isEqualTo(MediaTypes.APPLICATION_OCTET_STREAM); + BDDAssertions.then(MediaTypes.APPLICATION_OCTET_STREAM).isEqualTo("application/octet-stream"); + BDDAssertions.then(new MediaTypes().applicationOctetStream()).isEqualTo(MediaTypes.APPLICATION_OCTET_STREAM); } @Test public void APPLICATION_PDF() { BDDAssertions.then(MediaTypes.APPLICATION_PDF).isEqualTo("application/pdf"); - BDDAssertions.then(new MediaTypes().applicationPdf()) - .isEqualTo(MediaTypes.APPLICATION_PDF); + BDDAssertions.then(new MediaTypes().applicationPdf()).isEqualTo(MediaTypes.APPLICATION_PDF); } @Test public void APPLICATION_XHTML_XML() { - BDDAssertions.then(MediaTypes.APPLICATION_XHTML_XML) - .isEqualTo("application/xhtml+xml"); - BDDAssertions.then(new MediaTypes().applicationXhtmlXml()) - .isEqualTo(MediaTypes.APPLICATION_XHTML_XML); + BDDAssertions.then(MediaTypes.APPLICATION_XHTML_XML).isEqualTo("application/xhtml+xml"); + BDDAssertions.then(new MediaTypes().applicationXhtmlXml()).isEqualTo(MediaTypes.APPLICATION_XHTML_XML); } @Test public void APPLICATION_XML() { BDDAssertions.then(MediaTypes.APPLICATION_XML).isEqualTo("application/xml"); - BDDAssertions.then(new MediaTypes().applicationXml()) - .isEqualTo(MediaTypes.APPLICATION_XML); + BDDAssertions.then(new MediaTypes().applicationXml()).isEqualTo(MediaTypes.APPLICATION_XML); } @Test @@ -111,10 +99,8 @@ class MediaTypesTests { @Test public void MULTIPART_FORM_DATA() { - BDDAssertions.then(MediaTypes.MULTIPART_FORM_DATA) - .isEqualTo("multipart/form-data"); - BDDAssertions.then(new MediaTypes().multipartFormData()) - .isEqualTo(MediaTypes.MULTIPART_FORM_DATA); + BDDAssertions.then(MediaTypes.MULTIPART_FORM_DATA).isEqualTo("multipart/form-data"); + BDDAssertions.then(new MediaTypes().multipartFormData()).isEqualTo(MediaTypes.MULTIPART_FORM_DATA); } @Test @@ -126,8 +112,7 @@ class MediaTypesTests { @Test public void TEXT_MARKDOWN() { BDDAssertions.then(MediaTypes.TEXT_MARKDOWN).isEqualTo("text/markdown"); - BDDAssertions.then(new MediaTypes().textMarkdown()) - .isEqualTo(MediaTypes.TEXT_MARKDOWN); + BDDAssertions.then(new MediaTypes().textMarkdown()).isEqualTo(MediaTypes.TEXT_MARKDOWN); } @Test diff --git a/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/MessagingHeadersTests.java b/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/MessagingHeadersTests.java index 61da90f3b7..b2aedfb2ad 100644 --- a/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/MessagingHeadersTests.java +++ b/specs/spring-cloud-contract-spec-java/src/test/groovy/org/springframework/cloud/contract/spec/internal/MessagingHeadersTests.java @@ -26,8 +26,7 @@ class MessagingHeadersTests { @Test public void MESSAGING_CONTENT_TYPE() { - BDDAssertions.then(MessagingHeaders.MESSAGING_CONTENT_TYPE) - .isEqualTo("contentType"); + BDDAssertions.then(MessagingHeaders.MESSAGING_CONTENT_TYPE).isEqualTo("contentType"); BDDAssertions.then(new MessagingHeaders().messagingContentType()) .isEqualTo(MessagingHeaders.MESSAGING_CONTENT_TYPE); } diff --git a/specs/spring-cloud-contract-spec-java/src/test/groovy/repackaged/nl/flotsam/xeger/XegerTest.java b/specs/spring-cloud-contract-spec-java/src/test/groovy/repackaged/nl/flotsam/xeger/XegerTest.java index 835da1874a..0ba4582534 100644 --- a/specs/spring-cloud-contract-spec-java/src/test/groovy/repackaged/nl/flotsam/xeger/XegerTest.java +++ b/specs/spring-cloud-contract-spec-java/src/test/groovy/repackaged/nl/flotsam/xeger/XegerTest.java @@ -90,8 +90,7 @@ public class XegerTest { List secondRegexList = generateRegex(generator2, 100); for (int i = 0; i < firstRegexList.size(); i++) { - assertEquals("Index mismatch: " + i, firstRegexList.get(i), - secondRegexList.get(i)); + assertEquals("Index mismatch: " + i, firstRegexList.get(i), secondRegexList.get(i)); } } } diff --git a/specs/spring-cloud-contract-spec/src/test/groovy/org/springframework/cloud/contract/spec/internal/HttpStatusTests.java b/specs/spring-cloud-contract-spec/src/test/groovy/org/springframework/cloud/contract/spec/internal/HttpStatusTests.java index d41e29ff18..96379c8cd2 100644 --- a/specs/spring-cloud-contract-spec/src/test/groovy/org/springframework/cloud/contract/spec/internal/HttpStatusTests.java +++ b/specs/spring-cloud-contract-spec/src/test/groovy/org/springframework/cloud/contract/spec/internal/HttpStatusTests.java @@ -34,22 +34,19 @@ public class HttpStatusTests { @Test public void SWITCHING_PROTOCOLS() { BDDAssertions.then(HttpStatus.SWITCHING_PROTOCOLS).isEqualTo(101); - BDDAssertions.then(new HttpStatus().SWITCHING_PROTOCOLS()) - .isEqualTo(HttpStatus.SWITCHING_PROTOCOLS); + BDDAssertions.then(new HttpStatus().SWITCHING_PROTOCOLS()).isEqualTo(HttpStatus.SWITCHING_PROTOCOLS); } @Test public void PROCESSING() { BDDAssertions.then(HttpStatus.PROCESSING).isEqualTo(102); - BDDAssertions.then(new HttpStatus().PROCESSING()) - .isEqualTo(HttpStatus.PROCESSING); + BDDAssertions.then(new HttpStatus().PROCESSING()).isEqualTo(HttpStatus.PROCESSING); } @Test public void CHECKPOINT() { BDDAssertions.then(HttpStatus.CHECKPOINT).isEqualTo(103); - BDDAssertions.then(new HttpStatus().CHECKPOINT()) - .isEqualTo(HttpStatus.CHECKPOINT); + BDDAssertions.then(new HttpStatus().CHECKPOINT()).isEqualTo(HttpStatus.CHECKPOINT); } @Test @@ -80,36 +77,31 @@ public class HttpStatusTests { @Test public void NO_CONTENT() { BDDAssertions.then(HttpStatus.NO_CONTENT).isEqualTo(204); - BDDAssertions.then(new HttpStatus().NO_CONTENT()) - .isEqualTo(HttpStatus.NO_CONTENT); + BDDAssertions.then(new HttpStatus().NO_CONTENT()).isEqualTo(HttpStatus.NO_CONTENT); } @Test public void RESET_CONTENT() { BDDAssertions.then(HttpStatus.RESET_CONTENT).isEqualTo(205); - BDDAssertions.then(new HttpStatus().RESET_CONTENT()) - .isEqualTo(HttpStatus.RESET_CONTENT); + BDDAssertions.then(new HttpStatus().RESET_CONTENT()).isEqualTo(HttpStatus.RESET_CONTENT); } @Test public void PARTIAL_CONTENT() { BDDAssertions.then(HttpStatus.PARTIAL_CONTENT).isEqualTo(206); - BDDAssertions.then(new HttpStatus().PARTIAL_CONTENT()) - .isEqualTo(HttpStatus.PARTIAL_CONTENT); + BDDAssertions.then(new HttpStatus().PARTIAL_CONTENT()).isEqualTo(HttpStatus.PARTIAL_CONTENT); } @Test public void MULTI_STATUS() { BDDAssertions.then(HttpStatus.MULTI_STATUS).isEqualTo(207); - BDDAssertions.then(new HttpStatus().MULTI_STATUS()) - .isEqualTo(HttpStatus.MULTI_STATUS); + BDDAssertions.then(new HttpStatus().MULTI_STATUS()).isEqualTo(HttpStatus.MULTI_STATUS); } @Test public void ALREADY_REPORTED() { BDDAssertions.then(HttpStatus.ALREADY_REPORTED).isEqualTo(208); - BDDAssertions.then(new HttpStatus().ALREADY_REPORTED()) - .isEqualTo(HttpStatus.ALREADY_REPORTED); + BDDAssertions.then(new HttpStatus().ALREADY_REPORTED()).isEqualTo(HttpStatus.ALREADY_REPORTED); } @Test @@ -121,15 +113,13 @@ public class HttpStatusTests { @Test public void MULTIPLE_CHOICES() { BDDAssertions.then(HttpStatus.MULTIPLE_CHOICES).isEqualTo(300); - BDDAssertions.then(new HttpStatus().MULTIPLE_CHOICES()) - .isEqualTo(HttpStatus.MULTIPLE_CHOICES); + BDDAssertions.then(new HttpStatus().MULTIPLE_CHOICES()).isEqualTo(HttpStatus.MULTIPLE_CHOICES); } @Test public void MOVED_PERMANENTLY() { BDDAssertions.then(HttpStatus.MOVED_PERMANENTLY).isEqualTo(301); - BDDAssertions.then(new HttpStatus().MOVED_PERMANENTLY()) - .isEqualTo(HttpStatus.MOVED_PERMANENTLY); + BDDAssertions.then(new HttpStatus().MOVED_PERMANENTLY()).isEqualTo(HttpStatus.MOVED_PERMANENTLY); } @Test @@ -141,8 +131,7 @@ public class HttpStatusTests { @Test public void MOVED_TEMPORARILY() { BDDAssertions.then(HttpStatus.MOVED_TEMPORARILY).isEqualTo(302); - BDDAssertions.then(new HttpStatus().MOVED_TEMPORARILY()) - .isEqualTo(HttpStatus.MOVED_TEMPORARILY); + BDDAssertions.then(new HttpStatus().MOVED_TEMPORARILY()).isEqualTo(HttpStatus.MOVED_TEMPORARILY); } @Test @@ -154,8 +143,7 @@ public class HttpStatusTests { @Test public void NOT_MODIFIED() { BDDAssertions.then(HttpStatus.NOT_MODIFIED).isEqualTo(304); - BDDAssertions.then(new HttpStatus().NOT_MODIFIED()) - .isEqualTo(HttpStatus.NOT_MODIFIED); + BDDAssertions.then(new HttpStatus().NOT_MODIFIED()).isEqualTo(HttpStatus.NOT_MODIFIED); } @Test @@ -167,36 +155,31 @@ public class HttpStatusTests { @Test public void TEMPORARY_REDIRECT() { BDDAssertions.then(HttpStatus.TEMPORARY_REDIRECT).isEqualTo(307); - BDDAssertions.then(new HttpStatus().TEMPORARY_REDIRECT()) - .isEqualTo(HttpStatus.TEMPORARY_REDIRECT); + BDDAssertions.then(new HttpStatus().TEMPORARY_REDIRECT()).isEqualTo(HttpStatus.TEMPORARY_REDIRECT); } @Test public void PERMANENT_REDIRECT() { BDDAssertions.then(HttpStatus.PERMANENT_REDIRECT).isEqualTo(308); - BDDAssertions.then(new HttpStatus().PERMANENT_REDIRECT()) - .isEqualTo(HttpStatus.PERMANENT_REDIRECT); + BDDAssertions.then(new HttpStatus().PERMANENT_REDIRECT()).isEqualTo(HttpStatus.PERMANENT_REDIRECT); } @Test public void BAD_REQUEST() { BDDAssertions.then(HttpStatus.BAD_REQUEST).isEqualTo(400); - BDDAssertions.then(new HttpStatus().BAD_REQUEST()) - .isEqualTo(HttpStatus.BAD_REQUEST); + BDDAssertions.then(new HttpStatus().BAD_REQUEST()).isEqualTo(HttpStatus.BAD_REQUEST); } @Test public void UNAUTHORIZED() { BDDAssertions.then(HttpStatus.UNAUTHORIZED).isEqualTo(401); - BDDAssertions.then(new HttpStatus().UNAUTHORIZED()) - .isEqualTo(HttpStatus.UNAUTHORIZED); + BDDAssertions.then(new HttpStatus().UNAUTHORIZED()).isEqualTo(HttpStatus.UNAUTHORIZED); } @Test public void PAYMENT_REQUIRED() { BDDAssertions.then(HttpStatus.PAYMENT_REQUIRED).isEqualTo(402); - BDDAssertions.then(new HttpStatus().PAYMENT_REQUIRED()) - .isEqualTo(HttpStatus.PAYMENT_REQUIRED); + BDDAssertions.then(new HttpStatus().PAYMENT_REQUIRED()).isEqualTo(HttpStatus.PAYMENT_REQUIRED); } @Test @@ -214,15 +197,13 @@ public class HttpStatusTests { @Test public void METHOD_NOT_ALLOWED() { BDDAssertions.then(HttpStatus.METHOD_NOT_ALLOWED).isEqualTo(405); - BDDAssertions.then(new HttpStatus().METHOD_NOT_ALLOWED()) - .isEqualTo(HttpStatus.METHOD_NOT_ALLOWED); + BDDAssertions.then(new HttpStatus().METHOD_NOT_ALLOWED()).isEqualTo(HttpStatus.METHOD_NOT_ALLOWED); } @Test public void NOT_ACCEPTABLE() { BDDAssertions.then(HttpStatus.NOT_ACCEPTABLE).isEqualTo(406); - BDDAssertions.then(new HttpStatus().NOT_ACCEPTABLE()) - .isEqualTo(HttpStatus.NOT_ACCEPTABLE); + BDDAssertions.then(new HttpStatus().NOT_ACCEPTABLE()).isEqualTo(HttpStatus.NOT_ACCEPTABLE); } @Test @@ -235,8 +216,7 @@ public class HttpStatusTests { @Test public void REQUEST_TIMEOUT() { BDDAssertions.then(HttpStatus.REQUEST_TIMEOUT).isEqualTo(408); - BDDAssertions.then(new HttpStatus().REQUEST_TIMEOUT()) - .isEqualTo(HttpStatus.REQUEST_TIMEOUT); + BDDAssertions.then(new HttpStatus().REQUEST_TIMEOUT()).isEqualTo(HttpStatus.REQUEST_TIMEOUT); } @Test @@ -254,50 +234,43 @@ public class HttpStatusTests { @Test public void LENGTH_REQUIRED() { BDDAssertions.then(HttpStatus.LENGTH_REQUIRED).isEqualTo(411); - BDDAssertions.then(new HttpStatus().LENGTH_REQUIRED()) - .isEqualTo(HttpStatus.LENGTH_REQUIRED); + BDDAssertions.then(new HttpStatus().LENGTH_REQUIRED()).isEqualTo(HttpStatus.LENGTH_REQUIRED); } @Test public void PRECONDITION_FAILED() { BDDAssertions.then(HttpStatus.PRECONDITION_FAILED).isEqualTo(412); - BDDAssertions.then(new HttpStatus().PRECONDITION_FAILED()) - .isEqualTo(HttpStatus.PRECONDITION_FAILED); + BDDAssertions.then(new HttpStatus().PRECONDITION_FAILED()).isEqualTo(HttpStatus.PRECONDITION_FAILED); } @Test public void PAYLOAD_TOO_LARGE() { BDDAssertions.then(HttpStatus.PAYLOAD_TOO_LARGE).isEqualTo(413); - BDDAssertions.then(new HttpStatus().PAYLOAD_TOO_LARGE()) - .isEqualTo(HttpStatus.PAYLOAD_TOO_LARGE); + BDDAssertions.then(new HttpStatus().PAYLOAD_TOO_LARGE()).isEqualTo(HttpStatus.PAYLOAD_TOO_LARGE); } @Test public void REQUEST_ENTITY_TOO_LARGE() { BDDAssertions.then(HttpStatus.REQUEST_ENTITY_TOO_LARGE).isEqualTo(413); - BDDAssertions.then(new HttpStatus().REQUEST_ENTITY_TOO_LARGE()) - .isEqualTo(HttpStatus.REQUEST_ENTITY_TOO_LARGE); + BDDAssertions.then(new HttpStatus().REQUEST_ENTITY_TOO_LARGE()).isEqualTo(HttpStatus.REQUEST_ENTITY_TOO_LARGE); } @Test public void URI_TOO_LONG() { BDDAssertions.then(HttpStatus.URI_TOO_LONG).isEqualTo(414); - BDDAssertions.then(new HttpStatus().URI_TOO_LONG()) - .isEqualTo(HttpStatus.URI_TOO_LONG); + BDDAssertions.then(new HttpStatus().URI_TOO_LONG()).isEqualTo(HttpStatus.URI_TOO_LONG); } @Test public void REQUEST_URI_TOO_LONG() { BDDAssertions.then(HttpStatus.REQUEST_URI_TOO_LONG).isEqualTo(414); - BDDAssertions.then(new HttpStatus().REQUEST_URI_TOO_LONG()) - .isEqualTo(HttpStatus.REQUEST_URI_TOO_LONG); + BDDAssertions.then(new HttpStatus().REQUEST_URI_TOO_LONG()).isEqualTo(HttpStatus.REQUEST_URI_TOO_LONG); } @Test public void UNSUPPORTED_MEDIA_TYPE() { BDDAssertions.then(HttpStatus.UNSUPPORTED_MEDIA_TYPE).isEqualTo(415); - BDDAssertions.then(new HttpStatus().UNSUPPORTED_MEDIA_TYPE()) - .isEqualTo(HttpStatus.UNSUPPORTED_MEDIA_TYPE); + BDDAssertions.then(new HttpStatus().UNSUPPORTED_MEDIA_TYPE()).isEqualTo(HttpStatus.UNSUPPORTED_MEDIA_TYPE); } @Test @@ -310,15 +283,13 @@ public class HttpStatusTests { @Test public void EXPECTATION_FAILED() { BDDAssertions.then(HttpStatus.EXPECTATION_FAILED).isEqualTo(417); - BDDAssertions.then(new HttpStatus().EXPECTATION_FAILED()) - .isEqualTo(HttpStatus.EXPECTATION_FAILED); + BDDAssertions.then(new HttpStatus().EXPECTATION_FAILED()).isEqualTo(HttpStatus.EXPECTATION_FAILED); } @Test public void I_AM_A_TEAPOT() { BDDAssertions.then(HttpStatus.I_AM_A_TEAPOT).isEqualTo(418); - BDDAssertions.then(new HttpStatus().I_AM_A_TEAPOT()) - .isEqualTo(HttpStatus.I_AM_A_TEAPOT); + BDDAssertions.then(new HttpStatus().I_AM_A_TEAPOT()).isEqualTo(HttpStatus.I_AM_A_TEAPOT); } @Test @@ -331,22 +302,19 @@ public class HttpStatusTests { @Test public void METHOD_FAILURE() { BDDAssertions.then(HttpStatus.METHOD_FAILURE).isEqualTo(420); - BDDAssertions.then(new HttpStatus().METHOD_FAILURE()) - .isEqualTo(HttpStatus.METHOD_FAILURE); + BDDAssertions.then(new HttpStatus().METHOD_FAILURE()).isEqualTo(HttpStatus.METHOD_FAILURE); } @Test public void DESTINATION_LOCKED() { BDDAssertions.then(HttpStatus.DESTINATION_LOCKED).isEqualTo(421); - BDDAssertions.then(new HttpStatus().DESTINATION_LOCKED()) - .isEqualTo(HttpStatus.DESTINATION_LOCKED); + BDDAssertions.then(new HttpStatus().DESTINATION_LOCKED()).isEqualTo(HttpStatus.DESTINATION_LOCKED); } @Test public void UNPROCESSABLE_ENTITY() { BDDAssertions.then(HttpStatus.UNPROCESSABLE_ENTITY).isEqualTo(422); - BDDAssertions.then(new HttpStatus().UNPROCESSABLE_ENTITY()) - .isEqualTo(HttpStatus.UNPROCESSABLE_ENTITY); + BDDAssertions.then(new HttpStatus().UNPROCESSABLE_ENTITY()).isEqualTo(HttpStatus.UNPROCESSABLE_ENTITY); } @Test @@ -358,29 +326,25 @@ public class HttpStatusTests { @Test public void FAILED_DEPENDENCY() { BDDAssertions.then(HttpStatus.FAILED_DEPENDENCY).isEqualTo(424); - BDDAssertions.then(new HttpStatus().FAILED_DEPENDENCY()) - .isEqualTo(HttpStatus.FAILED_DEPENDENCY); + BDDAssertions.then(new HttpStatus().FAILED_DEPENDENCY()).isEqualTo(HttpStatus.FAILED_DEPENDENCY); } @Test public void UPGRADE_REQUIRED() { BDDAssertions.then(HttpStatus.UPGRADE_REQUIRED).isEqualTo(426); - BDDAssertions.then(new HttpStatus().UPGRADE_REQUIRED()) - .isEqualTo(HttpStatus.UPGRADE_REQUIRED); + BDDAssertions.then(new HttpStatus().UPGRADE_REQUIRED()).isEqualTo(HttpStatus.UPGRADE_REQUIRED); } @Test public void PRECONDITION_REQUIRED() { BDDAssertions.then(HttpStatus.PRECONDITION_REQUIRED).isEqualTo(428); - BDDAssertions.then(new HttpStatus().PRECONDITION_REQUIRED()) - .isEqualTo(HttpStatus.PRECONDITION_REQUIRED); + BDDAssertions.then(new HttpStatus().PRECONDITION_REQUIRED()).isEqualTo(HttpStatus.PRECONDITION_REQUIRED); } @Test public void TOO_MANY_REQUESTS() { BDDAssertions.then(HttpStatus.TOO_MANY_REQUESTS).isEqualTo(429); - BDDAssertions.then(new HttpStatus().TOO_MANY_REQUESTS()) - .isEqualTo(HttpStatus.TOO_MANY_REQUESTS); + BDDAssertions.then(new HttpStatus().TOO_MANY_REQUESTS()).isEqualTo(HttpStatus.TOO_MANY_REQUESTS); } @Test @@ -400,36 +364,31 @@ public class HttpStatusTests { @Test public void INTERNAL_SERVER_ERROR() { BDDAssertions.then(HttpStatus.INTERNAL_SERVER_ERROR).isEqualTo(500); - BDDAssertions.then(new HttpStatus().INTERNAL_SERVER_ERROR()) - .isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR); + BDDAssertions.then(new HttpStatus().INTERNAL_SERVER_ERROR()).isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR); } @Test public void NOT_IMPLEMENTED() { BDDAssertions.then(HttpStatus.NOT_IMPLEMENTED).isEqualTo(501); - BDDAssertions.then(new HttpStatus().NOT_IMPLEMENTED()) - .isEqualTo(HttpStatus.NOT_IMPLEMENTED); + BDDAssertions.then(new HttpStatus().NOT_IMPLEMENTED()).isEqualTo(HttpStatus.NOT_IMPLEMENTED); } @Test public void BAD_GATEWAY() { BDDAssertions.then(HttpStatus.BAD_GATEWAY).isEqualTo(502); - BDDAssertions.then(new HttpStatus().BAD_GATEWAY()) - .isEqualTo(HttpStatus.BAD_GATEWAY); + BDDAssertions.then(new HttpStatus().BAD_GATEWAY()).isEqualTo(HttpStatus.BAD_GATEWAY); } @Test public void SERVICE_UNAVAILABLE() { BDDAssertions.then(HttpStatus.SERVICE_UNAVAILABLE).isEqualTo(503); - BDDAssertions.then(new HttpStatus().SERVICE_UNAVAILABLE()) - .isEqualTo(HttpStatus.SERVICE_UNAVAILABLE); + BDDAssertions.then(new HttpStatus().SERVICE_UNAVAILABLE()).isEqualTo(HttpStatus.SERVICE_UNAVAILABLE); } @Test public void GATEWAY_TIMEOUT() { BDDAssertions.then(HttpStatus.GATEWAY_TIMEOUT).isEqualTo(504); - BDDAssertions.then(new HttpStatus().GATEWAY_TIMEOUT()) - .isEqualTo(HttpStatus.GATEWAY_TIMEOUT); + BDDAssertions.then(new HttpStatus().GATEWAY_TIMEOUT()).isEqualTo(HttpStatus.GATEWAY_TIMEOUT); } @Test @@ -442,36 +401,31 @@ public class HttpStatusTests { @Test public void VARIANT_ALSO_NEGOTIATES() { BDDAssertions.then(HttpStatus.VARIANT_ALSO_NEGOTIATES).isEqualTo(506); - BDDAssertions.then(new HttpStatus().VARIANT_ALSO_NEGOTIATES()) - .isEqualTo(HttpStatus.VARIANT_ALSO_NEGOTIATES); + BDDAssertions.then(new HttpStatus().VARIANT_ALSO_NEGOTIATES()).isEqualTo(HttpStatus.VARIANT_ALSO_NEGOTIATES); } @Test public void INSUFFICIENT_STORAGE() { BDDAssertions.then(HttpStatus.INSUFFICIENT_STORAGE).isEqualTo(507); - BDDAssertions.then(new HttpStatus().INSUFFICIENT_STORAGE()) - .isEqualTo(HttpStatus.INSUFFICIENT_STORAGE); + BDDAssertions.then(new HttpStatus().INSUFFICIENT_STORAGE()).isEqualTo(HttpStatus.INSUFFICIENT_STORAGE); } @Test public void LOOP_DETECTED() { BDDAssertions.then(HttpStatus.LOOP_DETECTED).isEqualTo(508); - BDDAssertions.then(new HttpStatus().LOOP_DETECTED()) - .isEqualTo(HttpStatus.LOOP_DETECTED); + BDDAssertions.then(new HttpStatus().LOOP_DETECTED()).isEqualTo(HttpStatus.LOOP_DETECTED); } @Test public void BANDWIDTH_LIMIT_EXCEEDED() { BDDAssertions.then(HttpStatus.BANDWIDTH_LIMIT_EXCEEDED).isEqualTo(509); - BDDAssertions.then(new HttpStatus().BANDWIDTH_LIMIT_EXCEEDED()) - .isEqualTo(HttpStatus.BANDWIDTH_LIMIT_EXCEEDED); + BDDAssertions.then(new HttpStatus().BANDWIDTH_LIMIT_EXCEEDED()).isEqualTo(HttpStatus.BANDWIDTH_LIMIT_EXCEEDED); } @Test public void NOT_EXTENDED() { BDDAssertions.then(HttpStatus.NOT_EXTENDED).isEqualTo(510); - BDDAssertions.then(new HttpStatus().NOT_EXTENDED()) - .isEqualTo(HttpStatus.NOT_EXTENDED); + BDDAssertions.then(new HttpStatus().NOT_EXTENDED()).isEqualTo(HttpStatus.NOT_EXTENDED); } @Test diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/AetherFactories.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/AetherFactories.java index 97403c0b4d..6f89bd1358 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/AetherFactories.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/AetherFactories.java @@ -63,15 +63,13 @@ final class AetherFactories { public static RepositorySystem newRepositorySystem() { DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator(); - locator.addService(RepositoryConnectorFactory.class, - BasicRepositoryConnectorFactory.class); + locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class); locator.addService(TransporterFactory.class, FileTransporterFactory.class); locator.addService(TransporterFactory.class, HttpTransporterFactory.class); return locator.getService(RepositorySystem.class); } - public static RepositorySystemSession newSession(RepositorySystem system, - boolean workOffline) { + public static RepositorySystemSession newSession(RepositorySystem system, boolean workOffline) { DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession(); session.setOffline(workOffline); if (!workOffline) { @@ -80,19 +78,17 @@ final class AetherFactories { session.setChecksumPolicy(RepositoryPolicy.CHECKSUM_POLICY_WARN); String localRepositoryDirectory = localRepositoryDirectory(workOffline); if (log.isDebugEnabled()) { - log.debug("Local Repository Directory set to [" + localRepositoryDirectory - + "]. Work offline: [" + workOffline + "]"); + log.debug("Local Repository Directory set to [" + localRepositoryDirectory + "]. Work offline: [" + + workOffline + "]"); } LocalRepository localRepo = new LocalRepository(localRepositoryDirectory); - session.setLocalRepositoryManager( - system.newLocalRepositoryManager(session, localRepo)); + session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo)); return session; } protected static String localRepositoryDirectory(boolean workOffline) { String localRepoLocationFromSettings = settings().getLocalRepository(); - String currentLocalRepo = readPropertyFromSystemProps( - localRepoLocationFromSettings); + String currentLocalRepo = readPropertyFromSystemProps(localRepoLocationFromSettings); if (workOffline) { return currentLocalRepo; } @@ -105,21 +101,17 @@ final class AetherFactories { } catch (IOException e) { if (log.isDebugEnabled()) { - log.debug( - "Failed to create a new temporary directory, will generate a new one under temp dir"); + log.debug("Failed to create a new temporary directory, will generate a new one under temp dir"); } - return System.getProperty("java.io.tmpdir") + File.separator - + RANDOM.nextInt(); + return System.getProperty("java.io.tmpdir") + File.separator + RANDOM.nextInt(); } } - private static String readPropertyFromSystemProps( - String localRepoLocationFromSettings) { + private static String readPropertyFromSystemProps(String localRepoLocationFromSettings) { String mavenLocalRepo = fromSystemPropOrEnv(MAVEN_LOCAL_REPOSITORY_LOCATION); return StringUtils.hasText(mavenLocalRepo) ? mavenLocalRepo : localRepoLocationFromSettings != null ? localRepoLocationFromSettings - : System.getProperty("user.home") + File.separator + ".m2" - + File.separator + "repository"; + : System.getProperty("user.home") + File.separator + ".m2" + File.separator + "repository"; } // system prop takes precedence over env var @@ -134,12 +126,10 @@ final class AetherFactories { private static File userSettings() { String user = fromSystemPropOrEnv(MAVEN_USER_SETTINGS_LOCATION); if (user == null) { - File file = new File( - new File(System.getProperty("user.home")).getAbsoluteFile(), + File file = new File(new File(System.getProperty("user.home")).getAbsoluteFile(), File.separator + ".m2" + File.separator + "settings.xml"); if (log.isDebugEnabled()) { - log.debug("No custom maven user settings provided, will use [" + file - + "]"); + log.debug("No custom maven user settings provided, will use [" + file + "]"); } return file; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/AetherStubDownloader.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/AetherStubDownloader.java index 2da40db6de..f4733fab58 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/AetherStubDownloader.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/AetherStubDownloader.java @@ -86,8 +86,7 @@ public class AetherStubDownloader implements StubDownloader { public AetherStubDownloader(StubRunnerOptions stubRunnerOptions) { this.deleteStubsAfterTest = stubRunnerOptions.isDeleteStubsAfterTest(); if (log.isDebugEnabled()) { - log.debug("Will be resolving versions for the following options: [" - + stubRunnerOptions + "]"); + log.debug("Will be resolving versions for the following options: [" + stubRunnerOptions + "]"); } this.settings = settings(); this.remoteRepos = remoteRepositories(stubRunnerOptions); @@ -119,25 +118,22 @@ public class AetherStubDownloader implements StubDownloader { * @param remoteRepositories remote artifact repositories * @param session repository system session */ - public AetherStubDownloader(RepositorySystem repositorySystem, - List remoteRepositories, RepositorySystemSession session, - Settings settings) { + public AetherStubDownloader(RepositorySystem repositorySystem, List remoteRepositories, + RepositorySystemSession session, Settings settings) { this.deleteStubsAfterTest = true; this.remoteRepos = remoteRepositories; this.settings = settings; this.repositorySystem = repositorySystem; this.session = session; if (remoteReposMissing()) { - log.error( - "Remote repositories for stubs are not specified and work offline flag wasn't passed"); + log.error("Remote repositories for stubs are not specified and work offline flag wasn't passed"); } this.workOffline = false; registerShutdownHook(); } private static File unpackStubJarToATemporaryFolder(URI stubJarUri) { - File tmpDirWhereStubsWillBeUnzipped = TemporaryFileStorage - .createTempDir(TEMP_DIR_PREFIX); + File tmpDirWhereStubsWillBeUnzipped = TemporaryFileStorage.createTempDir(TEMP_DIR_PREFIX); log.info("Unpacking stub from JAR [URI: " + stubJarUri + "]"); unzipTo(new File(stubJarUri), tmpDirWhereStubsWillBeUnzipped); TemporaryFileStorage.add(tmpDirWhereStubsWillBeUnzipped); @@ -148,19 +144,16 @@ public class AetherStubDownloader implements StubDownloader { return this.remoteRepos == null || this.remoteRepos.isEmpty(); } - private List remoteRepositories( - StubRunnerOptions stubRunnerOptions) { + private List remoteRepositories(StubRunnerOptions stubRunnerOptions) { if (stubRunnerOptions.stubRepositoryRoot == null) { return new ArrayList<>(); } - final String[] repos = stubRunnerOptions.getStubRepositoryRootAsString() - .split(","); + final String[] repos = stubRunnerOptions.getStubRepositoryRootAsString().split(","); final List remoteRepos = new ArrayList<>(); for (int i = 0; i < repos.length; i++) { if (StringUtils.hasText(repos[i])) { - final RemoteRepository.Builder builder = new RemoteRepository.Builder( - "remote" + i, "default", repos[i]).setAuthentication( - resolveAuthentication(stubRunnerOptions)); + final RemoteRepository.Builder builder = new RemoteRepository.Builder("remote" + i, "default", repos[i]) + .setAuthentication(resolveAuthentication(stubRunnerOptions)); if (stubRunnerOptions.getProxyOptions() != null) { final StubRunnerProxyOptions p = stubRunnerOptions.getProxyOptions(); builder.setProxy(new Proxy(null, p.getProxyHost(), p.getProxyPort())); @@ -179,49 +172,38 @@ public class AetherStubDownloader implements StubDownloader { Server stubServer = this.settings.getServer(stubRunnerOptions.serverId); if (stubServer != null) { if (log.isDebugEnabled()) { - log.debug("Custom server id [" + stubServer.getId() - + "] passed will resolve credentials"); + log.debug("Custom server id [" + stubServer.getId() + "] passed will resolve credentials"); } - SettingsDecryptionRequest settingsDecryptionRequest = new DefaultSettingsDecryptionRequest( - stubServer); + SettingsDecryptionRequest settingsDecryptionRequest = new DefaultSettingsDecryptionRequest(stubServer); String stubServerPassword = new MavenSettings().createSettingsDecrypter() .decrypt(settingsDecryptionRequest).getServer().getPassword(); return buildAuthentication(stubServerPassword, stubServer.getUsername()); } } - return buildAuthentication(stubRunnerOptions.password, - stubRunnerOptions.username); + return buildAuthentication(stubRunnerOptions.password, stubRunnerOptions.username); } Authentication buildAuthentication(String stubServerPassword, String username) { - return new AuthenticationBuilder().addUsername(username) - .addPassword(stubServerPassword).build(); + return new AuthenticationBuilder().addUsername(username).addPassword(stubServerPassword).build(); } - private File unpackedJar(String resolvedVersion, String stubsGroup, - String stubsModule, String classifier) { + private File unpackedJar(String resolvedVersion, String stubsGroup, String stubsModule, String classifier) { try { log.info("Resolved version is [" + resolvedVersion + "]"); if (StringUtils.isEmpty(resolvedVersion)) { - log.warn("Stub for group [" + stubsGroup + "] module [" + stubsModule - + "] and classifier [" + classifier + "] not found in " - + this.remoteRepos); + log.warn("Stub for group [" + stubsGroup + "] module [" + stubsModule + "] and classifier [" + + classifier + "] not found in " + this.remoteRepos); return null; } - Artifact artifact = new DefaultArtifact(stubsGroup, stubsModule, classifier, - ARTIFACT_EXTENSION, resolvedVersion); - ArtifactRequest request = new ArtifactRequest(artifact, this.remoteRepos, - null); + Artifact artifact = new DefaultArtifact(stubsGroup, stubsModule, classifier, ARTIFACT_EXTENSION, + resolvedVersion); + ArtifactRequest request = new ArtifactRequest(artifact, this.remoteRepos, null); if (log.isDebugEnabled()) { - log.debug("Resolving artifact [" + artifact - + "] using remote repositories " + this.remoteRepos); + log.debug("Resolving artifact [" + artifact + "] using remote repositories " + this.remoteRepos); } - ArtifactResult result = this.repositorySystem.resolveArtifact(this.session, - request); - log.info("Resolved artifact [" + artifact + "] to " - + result.getArtifact().getFile()); - File temporaryFile = unpackStubJarToATemporaryFolder( - result.getArtifact().getFile().toURI()); + ArtifactResult result = this.repositorySystem.resolveArtifact(this.session, request); + log.info("Resolved artifact [" + artifact + "] to " + result.getArtifact().getFile()); + File temporaryFile = unpackStubJarToATemporaryFolder(result.getArtifact().getFile().toURI()); log.info("Unpacked file to [" + temporaryFile + "]"); return temporaryFile; } @@ -230,44 +212,35 @@ public class AetherStubDownloader implements StubDownloader { } catch (Exception e) { throw new IllegalStateException( - "Exception occurred while trying to download a stub for group [" - + stubsGroup + "] module [" + stubsModule - + "] and classifier [" + classifier + "] in " - + this.remoteRepos, + "Exception occurred while trying to download a stub for group [" + stubsGroup + "] module [" + + stubsModule + "] and classifier [" + classifier + "] in " + this.remoteRepos, e); } } - private String getVersion(String stubsGroup, String stubsModule, String version, - String classifier) { + private String getVersion(String stubsGroup, String stubsModule, String version, String classifier) { if (StringUtils.isEmpty(version) || LATEST_VERSION_IN_IVY.equals(version)) { - log.info("Desired version is [" + version - + "] - will try to resolve the latest version"); - return resolveHighestArtifactVersion(stubsGroup, stubsModule, classifier, - LATEST_ARTIFACT_VERSION); + log.info("Desired version is [" + version + "] - will try to resolve the latest version"); + return resolveHighestArtifactVersion(stubsGroup, stubsModule, classifier, LATEST_ARTIFACT_VERSION); } - return resolveHighestArtifactVersion(stubsGroup, stubsModule, classifier, - version); + return resolveHighestArtifactVersion(stubsGroup, stubsModule, classifier, version); } @Override - public Map.Entry downloadAndUnpackStubJar( - StubConfiguration stubConfiguration) { + public Map.Entry downloadAndUnpackStubJar(StubConfiguration stubConfiguration) { try { - String version = getVersion(stubConfiguration.groupId, - stubConfiguration.artifactId, stubConfiguration.version, - stubConfiguration.classifier); + String version = getVersion(stubConfiguration.groupId, stubConfiguration.artifactId, + stubConfiguration.version, stubConfiguration.classifier); if (log.isDebugEnabled()) { log.debug("Will download the stub for version [" + version + "]"); } - File unpackedJar = unpackedJar(version, stubConfiguration.groupId, - stubConfiguration.artifactId, stubConfiguration.classifier); + File unpackedJar = unpackedJar(version, stubConfiguration.groupId, stubConfiguration.artifactId, + stubConfiguration.classifier); if (unpackedJar == null) { return null; } - return new AbstractMap.SimpleEntry<>(new StubConfiguration( - stubConfiguration.groupId, stubConfiguration.artifactId, version, - stubConfiguration.classifier), unpackedJar); + return new AbstractMap.SimpleEntry<>(new StubConfiguration(stubConfiguration.groupId, + stubConfiguration.artifactId, version, stubConfiguration.classifier), unpackedJar); } catch (Exception ex) { log.warn("Exception occurred while trying to fetch the stubs", ex); @@ -275,16 +248,13 @@ public class AetherStubDownloader implements StubDownloader { } } - private String resolveHighestArtifactVersion(String stubsGroup, String stubsModule, - String classifier, String version) { - Artifact artifact = new DefaultArtifact(stubsGroup, stubsModule, classifier, - ARTIFACT_EXTENSION, version); - VersionRangeRequest versionRangeRequest = new VersionRangeRequest(artifact, - this.remoteRepos, null); + private String resolveHighestArtifactVersion(String stubsGroup, String stubsModule, String classifier, + String version) { + Artifact artifact = new DefaultArtifact(stubsGroup, stubsModule, classifier, ARTIFACT_EXTENSION, version); + VersionRangeRequest versionRangeRequest = new VersionRangeRequest(artifact, this.remoteRepos, null); VersionRangeResult rangeResult; try { - rangeResult = this.repositorySystem.resolveVersionRange(this.session, - versionRangeRequest); + rangeResult = this.repositorySystem.resolveVersionRange(this.session, versionRangeRequest); if (log.isDebugEnabled()) { log.debug("Resolved version range is [" + rangeResult + "]"); } @@ -293,19 +263,17 @@ public class AetherStubDownloader implements StubDownloader { throw new IllegalStateException("Cannot resolve version range", e); } if (rangeResult.getHighestVersion() == null) { - throw new IllegalArgumentException("For groupId [" + stubsGroup - + "] artifactId [" + stubsModule + "] " + "and classifier [" - + classifier - + "] the version was not resolved! The following exceptions took place " - + rangeResult.getExceptions()); + throw new IllegalArgumentException( + "For groupId [" + stubsGroup + "] artifactId [" + stubsModule + "] " + "and classifier [" + + classifier + "] the version was not resolved! The following exceptions took place " + + rangeResult.getExceptions()); } - return rangeResult.getHighestVersion() == null ? null - : rangeResult.getHighestVersion().toString(); + return rangeResult.getHighestVersion() == null ? null : rangeResult.getHighestVersion().toString(); } private void registerShutdownHook() { - Runtime.getRuntime().addShutdownHook(new Thread(() -> TemporaryFileStorage - .cleanup(AetherStubDownloader.this.deleteStubsAfterTest))); + Runtime.getRuntime().addShutdownHook( + new Thread(() -> TemporaryFileStorage.cleanup(AetherStubDownloader.this.deleteStubsAfterTest))); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/Arguments.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/Arguments.java index 710203882f..5aee204d00 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/Arguments.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/Arguments.java @@ -33,8 +33,7 @@ class Arguments { this(stubRunnerOptions, "", null); } - Arguments(StubRunnerOptions stubRunnerOptions, String repositoryPath, - StubConfiguration stub) { + Arguments(StubRunnerOptions stubRunnerOptions, String repositoryPath, StubConfiguration stub) { this.stubRunnerOptions = stubRunnerOptions; this.repositoryPath = repositoryPath == null ? "" : repositoryPath; this.stub = stub; @@ -54,9 +53,8 @@ class Arguments { @Override public String toString() { - return "Arguments{" + "stubRunnerOptions=" + this.stubRunnerOptions - + ", repositoryPath='" + this.repositoryPath + '\'' + ", stub=" - + this.stub + '}'; + return "Arguments{" + "stubRunnerOptions=" + this.stubRunnerOptions + ", repositoryPath='" + this.repositoryPath + + '\'' + ", stub=" + this.stub + '}'; } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/AvailablePortScanner.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/AvailablePortScanner.java index beebd1c3c7..b27dbaf244 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/AvailablePortScanner.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/AvailablePortScanner.java @@ -59,23 +59,20 @@ class AvailablePortScanner { for (int i = 0; i < this.maxRetryCount; i++) { try { int numberOfPortsToBind = this.maxPortNumber - this.minPortNumber + 1; - int portToScan = new Random().nextInt(numberOfPortsToBind) - + this.minPortNumber; + int portToScan = new Random().nextInt(numberOfPortsToBind) + this.minPortNumber; checkIfPortIsAvailable(portToScan); return executeLogicForAvailablePort(portToScan, closure); } catch (IOException exception) { if (log.isDebugEnabled()) { - log.debug("Failed to execute callback (try: " + i + "/" - + this.maxRetryCount + ")", exception); + log.debug("Failed to execute callback (try: " + i + "/" + this.maxRetryCount + ")", exception); } } } throw new NoPortAvailableException(this.minPortNumber, this.maxPortNumber); } - private T executeLogicForAvailablePort(int portToScan, PortCallback closure) - throws IOException { + private T executeLogicForAvailablePort(int portToScan, PortCallback closure) throws IOException { if (log.isDebugEnabled()) { log.debug("Trying to execute closure with port [" + portToScan + "]"); } @@ -104,8 +101,7 @@ class AvailablePortScanner { static class NoPortAvailableException extends RuntimeException { NoPortAvailableException(int lowerBound, int upperBound) { - super("Could not find available port in range " + lowerBound + ":" - + upperBound); + super("Could not find available port in range " + lowerBound + ":" + upperBound); } } @@ -114,8 +110,8 @@ class AvailablePortScanner { static class InvalidPortRange extends RuntimeException { InvalidPortRange(int lowerBound, int upperBound) { - super("Invalid bounds exceptions, min port [" + lowerBound - + "] is greater to max port [" + upperBound + "]"); + super("Invalid bounds exceptions, min port [" + lowerBound + "] is greater to max port [" + upperBound + + "]"); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/BatchStubRunner.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/BatchStubRunner.java index 767894ad5f..261940b4d4 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/BatchStubRunner.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/BatchStubRunner.java @@ -87,8 +87,7 @@ public class BatchStubRunner implements StubRunning { public Map> getContracts() { Map> map = new LinkedHashMap<>(); for (StubRunner stubRunner : this.stubRunners) { - for (Entry> entry : stubRunner - .getContracts().entrySet()) { + for (Entry> entry : stubRunner.getContracts().entrySet()) { if (map.containsKey(entry.getKey())) { map.get(entry.getKey()).addAll(entry.getValue()); } @@ -109,10 +108,9 @@ public class BatchStubRunner implements StubRunning { } } if (!success) { - throw new IllegalArgumentException("No label with name [" + labelName - + "] for " + "dependency [" + ivyNotation - + "] was found. Here you have the list of dependencies " - + "and their labels [" + ivyToLabels() + "]"); + throw new IllegalArgumentException("No label with name [" + labelName + "] for " + "dependency [" + + ivyNotation + "] was found. Here you have the list of dependencies " + "and their labels [" + + ivyToLabels() + "]"); } return success; } @@ -123,8 +121,7 @@ public class BatchStubRunner implements StubRunning { if (builder.length() > 0) { builder.append("\n"); } - builder.append("Dependency [").append(entry.getKey()).append("] has labels ") - .append(entry.getValue()); + builder.append("Dependency [").append(entry.getKey()).append("] has labels ").append(entry.getValue()); } return builder.toString(); } @@ -138,10 +135,8 @@ public class BatchStubRunner implements StubRunning { } } if (!success) { - throw new IllegalArgumentException( - "No label with name [" + labelName + "] was found. " - + "Here you have the list of dependencies and their labels [" - + ivyToLabels() + "]"); + throw new IllegalArgumentException("No label with name [" + labelName + "] was found. " + + "Here you have the list of dependencies and their labels [" + ivyToLabels() + "]"); } return success; } @@ -161,8 +156,7 @@ public class BatchStubRunner implements StubRunning { public Map> labels() { Map> map = new LinkedHashMap<>(); for (StubRunner stubRunner : this.stubRunners) { - for (Entry> entry : stubRunner.labels() - .entrySet()) { + for (Entry> entry : stubRunner.labels().entrySet()) { if (map.containsKey(entry.getKey())) { map.get(entry.getKey()).addAll(entry.getValue()); } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/BatchStubRunnerFactory.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/BatchStubRunnerFactory.java index ff212a5986..45e0b5bd7f 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/BatchStubRunnerFactory.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/BatchStubRunnerFactory.java @@ -38,35 +38,30 @@ public class BatchStubRunnerFactory { this(stubRunnerOptions, new NoOpStubMessages()); } - public BatchStubRunnerFactory(StubRunnerOptions stubRunnerOptions, - MessageVerifier verifier) { + public BatchStubRunnerFactory(StubRunnerOptions stubRunnerOptions, MessageVerifier verifier) { this(stubRunnerOptions, aetherStubDownloader(stubRunnerOptions), verifier); } - public BatchStubRunnerFactory(StubRunnerOptions stubRunnerOptions, - StubDownloader stubDownloader) { + public BatchStubRunnerFactory(StubRunnerOptions stubRunnerOptions, StubDownloader stubDownloader) { this(stubRunnerOptions, stubDownloader, new NoOpStubMessages()); } - public BatchStubRunnerFactory(StubRunnerOptions stubRunnerOptions, - StubDownloader stubDownloader, MessageVerifier contractVerifierMessaging) { + public BatchStubRunnerFactory(StubRunnerOptions stubRunnerOptions, StubDownloader stubDownloader, + MessageVerifier contractVerifierMessaging) { this.stubRunnerOptions = stubRunnerOptions; this.stubDownloader = stubDownloader; this.contractVerifierMessaging = contractVerifierMessaging; } - private static StubDownloader aetherStubDownloader( - StubRunnerOptions stubRunnerOptions) { + private static StubDownloader aetherStubDownloader(StubRunnerOptions stubRunnerOptions) { StubDownloaderBuilderProvider provider = new StubDownloaderBuilderProvider(); return provider.get(stubRunnerOptions); } public BatchStubRunner buildBatchStubRunner() { - StubRunnerFactory stubRunnerFactory = new StubRunnerFactory( - this.stubRunnerOptions, this.stubDownloader, + StubRunnerFactory stubRunnerFactory = new StubRunnerFactory(this.stubRunnerOptions, this.stubDownloader, this.contractVerifierMessaging); - return new BatchStubRunner( - stubRunnerFactory.createStubsFromServiceConfiguration()); + return new BatchStubRunner(stubRunnerFactory.createStubsFromServiceConfiguration()); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ClasspathStubProvider.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ClasspathStubProvider.java index 10ca7efa6b..7ea5911348 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ClasspathStubProvider.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ClasspathStubProvider.java @@ -62,23 +62,19 @@ public class ClasspathStubProvider implements StubDownloaderBuilder { return null; } log.info("Will download stubs from classpath"); - return new ResourceResolvingStubDownloader(stubRunnerOptions, this::repoRoot, - this::gavPattern); + return new ResourceResolvingStubDownloader(stubRunnerOptions, this::repoRoot, this::gavPattern); } - private RepoRoots repoRoot(StubRunnerOptions stubRunnerOptions, - StubConfiguration configuration) { + private RepoRoots repoRoot(StubRunnerOptions stubRunnerOptions, StubConfiguration configuration) { Resource repositoryRoot = stubRunnerOptions.getStubRepositoryRoot(); if (repositoryRoot instanceof ClassPathResource) { ClassPathResource classPathResource = (ClassPathResource) repositoryRoot; String path = classPathResource.getPath(); if (StringUtils.hasText(path)) { - return RepoRoots.asList( - new RepoRoot(stubRunnerOptions.getStubRepositoryRootAsString())); + return RepoRoots.asList(new RepoRoot(stubRunnerOptions.getStubRepositoryRootAsString())); } } - String path = "/**/" + configuration.getGroupId() + "/" - + configuration.getArtifactId(); + String path = "/**/" + configuration.getGroupId() + "/" + configuration.getArtifactId(); return RepoRoots.asList(new RepoRoot("classpath*:/META-INF" + path, "/**/*.*"), new RepoRoot("classpath*:/contracts" + path, "/**/*.*"), new RepoRoot("classpath*:/mappings" + path, "/**/*.*")); diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/CompositeStubDownloaderBuilder.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/CompositeStubDownloaderBuilder.java index 58a46b13e8..08e955f1b8 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/CompositeStubDownloaderBuilder.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/CompositeStubDownloaderBuilder.java @@ -54,56 +54,49 @@ class CompositeStubDownloader implements StubDownloader { private final StubRunnerOptions stubRunnerOptions; - CompositeStubDownloader(List builders, - StubRunnerOptions stubRunnerOptions) { + CompositeStubDownloader(List builders, StubRunnerOptions stubRunnerOptions) { this.builders = builders; this.stubRunnerOptions = stubRunnerOptions; if (log.isDebugEnabled()) { - log.debug("Registered following stub downloaders " + this.builders.stream() - .map(b -> b.getClass().getName()).collect(Collectors.toList())); + log.debug("Registered following stub downloaders " + + this.builders.stream().map(b -> b.getClass().getName()).collect(Collectors.toList())); } } @Override - public Map.Entry downloadAndUnpackStubJar( - StubConfiguration stubConfiguration) { + public Map.Entry downloadAndUnpackStubJar(StubConfiguration stubConfiguration) { Map.Entry entry = entry(stubConfiguration); if (entry != null) { return entry; } log.warn("No matching stubs or contracts were found"); if (this.stubRunnerOptions.isFailOnNoStubs()) { - throw new IllegalArgumentException("No stubs or contracts were found for [" - + stubConfiguration.toColonSeparatedDependencyNotation() - + "] and the switch to fail on no stubs was set."); + throw new IllegalArgumentException( + "No stubs or contracts were found for [" + stubConfiguration.toColonSeparatedDependencyNotation() + + "] and the switch to fail on no stubs was set."); } return null; } - private Map.Entry entry( - StubConfiguration stubConfiguration) { + private Map.Entry entry(StubConfiguration stubConfiguration) { for (StubDownloaderBuilder builder : this.builders) { StubDownloader downloader = builder.build(this.stubRunnerOptions); if (downloader == null) { continue; } if (log.isDebugEnabled()) { - log.debug("Found a matching stub downloader [" - + downloader.getClass().getName() + "]"); + log.debug("Found a matching stub downloader [" + downloader.getClass().getName() + "]"); } - Map.Entry entry = downloader - .downloadAndUnpackStubJar(stubConfiguration); + Map.Entry entry = downloader.downloadAndUnpackStubJar(stubConfiguration); if (entry != null) { if (log.isDebugEnabled()) { - log.debug( - "Found a matching entry [" + entry + "] by stub downloader [" - + downloader.getClass().getName() + "]"); + log.debug("Found a matching entry [" + entry + "] by stub downloader [" + + downloader.getClass().getName() + "]"); } return entry; } else { - log.warn("Stub Downloader [" + downloader.getClass().getName() + "] " - + "failed to find an entry for [" + log.warn("Stub Downloader [" + downloader.getClass().getName() + "] " + "failed to find an entry for [" + stubConfiguration.toColonSeparatedDependencyNotation() + "]. " + "Will proceed to the next one"); } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ContractDownloader.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ContractDownloader.java index 98c8749861..f6147b5016 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ContractDownloader.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ContractDownloader.java @@ -35,8 +35,7 @@ import org.springframework.util.StringUtils; */ public class ContractDownloader { - private static final Log log = LogFactory - .getLog(MethodHandles.lookup().lookupClass()); + private static final Log log = LogFactory.getLog(MethodHandles.lookup().lookupClass()); private final StubDownloader stubDownloader; @@ -50,9 +49,8 @@ public class ContractDownloader { private final String projectVersion; - public ContractDownloader(StubDownloader stubDownloader, - StubConfiguration contractsJarStubConfiguration, String contractsPath, - String projectGroupId, String projectArtifactId, String projectVersion) { + public ContractDownloader(StubDownloader stubDownloader, StubConfiguration contractsJarStubConfiguration, + String contractsPath, String projectGroupId, String projectArtifactId, String projectVersion) { this.stubDownloader = stubDownloader; this.contractsJarStubConfiguration = contractsJarStubConfiguration; this.contractsPath = contractsPath; @@ -80,13 +78,11 @@ public class ContractDownloader { // Use createNewInclusionProperties() instead @Deprecated - public ContractVerifierConfigProperties updatePropertiesWithInclusion( - File contractsDirectory, ContractVerifierConfigProperties config) { - final InclusionProperties newInclusionProperties = createNewInclusionProperties( - contractsDirectory); + public ContractVerifierConfigProperties updatePropertiesWithInclusion(File contractsDirectory, + ContractVerifierConfigProperties config) { + final InclusionProperties newInclusionProperties = createNewInclusionProperties(contractsDirectory); config.setIncludedContracts(newInclusionProperties.getIncludedContracts()); - config.setIncludedRootFolderAntPattern( - newInclusionProperties.getIncludedRootFolderAntPattern()); + config.setIncludedRootFolderAntPattern(newInclusionProperties.getIncludedRootFolderAntPattern()); return config; } @@ -97,8 +93,7 @@ public class ContractDownloader { */ public File unpackAndDownloadContracts() { if (log.isDebugEnabled()) { - log.debug("Will download contracts for [" + this.contractsJarStubConfiguration - + "]"); + log.debug("Will download contracts for [" + this.contractsJarStubConfiguration + "]"); } Map.Entry unpackedContractStubs = this.stubDownloader .downloadAndUnpackStubJar(this.contractsJarStubConfiguration); @@ -139,8 +134,7 @@ public class ContractDownloader { log.debug("No group & artifact in path"); } pattern = groupArtifactToPattern(contractsDirectory); - includedAntPattern = wrapWithAntPattern( - slashSeparatedGroupId() + "/" + this.projectArtifactId); + includedAntPattern = wrapWithAntPattern(slashSeparatedGroupId() + "/" + this.projectArtifactId); } } log.info("Pattern to pick contracts equals [" + pattern + "]"); @@ -177,9 +171,8 @@ public class ContractDownloader { } private String patternFromProperty(File contractsDirectory) { - return ("^" + contractsDirectory.getAbsolutePath() + "(" + File.separator + ")?" - + ".*" + contractsPath().replace("/", File.separator) + ".*$") - .replace("\\", "\\\\"); + return ("^" + contractsDirectory.getAbsolutePath() + "(" + File.separator + ")?" + ".*" + + contractsPath().replace("/", File.separator) + ".*$").replace("\\", "\\\\"); } private String contractsPath() { @@ -187,8 +180,7 @@ public class ContractDownloader { } private String surroundWithSeparator(String string) { - String path = string.startsWith(File.separator) ? string - : File.separator + string; + String path = string.startsWith(File.separator) ? string : File.separator + string; return path.endsWith(File.separator) ? path : path + File.separator; } @@ -198,9 +190,9 @@ public class ContractDownloader { } private String groupArtifactToPattern(File contractsDirectory) { - return ("^" + contractsDirectory.getAbsolutePath() + "(" + File.separator + ")?" - + ".*" + slashSeparatedGroupId() + File.separator + this.projectArtifactId - + File.separator + ".*$").replace("\\", "\\\\"); + return ("^" + contractsDirectory.getAbsolutePath() + "(" + File.separator + ")?" + ".*" + + slashSeparatedGroupId() + File.separator + this.projectArtifactId + File.separator + ".*$") + .replace("\\", "\\\\"); } private String fileToPattern(File contractsDirectory) { @@ -227,8 +219,7 @@ public class ContractDownloader { */ private final String includedRootFolderAntPattern; - InclusionProperties(final String includedContracts, - final String includedRootFolderAntPattern) { + InclusionProperties(final String includedContracts, final String includedRootFolderAntPattern) { this.includedContracts = includedContracts; this.includedRootFolderAntPattern = includedRootFolderAntPattern; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ContractProjectUpdater.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ContractProjectUpdater.java index 5759c7754b..f819bd7492 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ContractProjectUpdater.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ContractProjectUpdater.java @@ -72,40 +72,32 @@ public class ContractProjectUpdater { * @param rootStubsFolder root folder of the stubs */ public void updateContractProject(String projectName, Path rootStubsFolder) { - File clonedRepo = this.gitContractsRepo - .clonedRepo(this.stubRunnerOptions.stubRepositoryRoot); + File clonedRepo = this.gitContractsRepo.clonedRepo(this.stubRunnerOptions.stubRepositoryRoot); GitStubDownloaderProperties properties = new GitStubDownloaderProperties( this.stubRunnerOptions.stubRepositoryRoot, this.stubRunnerOptions); copyStubs(projectName, rootStubsFolder, clonedRepo); GitRepo gitRepo = new GitRepo(clonedRepo, properties); - String msg = StubRunnerPropertyUtils - .getProperty(this.stubRunnerOptions.getProperties(), GIT_COMMIT_MESSAGE); - GitRepo.CommitResult commit = gitRepo.commit(clonedRepo, - commitMessage(projectName, msg)); + String msg = StubRunnerPropertyUtils.getProperty(this.stubRunnerOptions.getProperties(), GIT_COMMIT_MESSAGE); + GitRepo.CommitResult commit = gitRepo.commit(clonedRepo, commitMessage(projectName, msg)); if (commit == GitRepo.CommitResult.EMPTY) { log.info("There were no changes to commit. Won't push the changes"); return; } - String attempts = StubRunnerPropertyUtils.getProperty( - this.stubRunnerOptions.getProperties(), GIT_ATTEMPTS_NO_PROP); - int intAttempts = StringUtils.hasText(attempts) ? Integer.parseInt(attempts) - : DEFAULT_ATTEMPTS_NO; - String wait = StubRunnerPropertyUtils.getProperty( - this.stubRunnerOptions.getProperties(), GIT_WAIT_BETWEEN_ATTEMPTS); - long longWait = StringUtils.hasText(wait) ? Long.parseLong(wait) - : DEFAULT_WAIT_BETWEEN_ATTEMPTS; + String attempts = StubRunnerPropertyUtils.getProperty(this.stubRunnerOptions.getProperties(), + GIT_ATTEMPTS_NO_PROP); + int intAttempts = StringUtils.hasText(attempts) ? Integer.parseInt(attempts) : DEFAULT_ATTEMPTS_NO; + String wait = StubRunnerPropertyUtils.getProperty(this.stubRunnerOptions.getProperties(), + GIT_WAIT_BETWEEN_ATTEMPTS); + long longWait = StringUtils.hasText(wait) ? Long.parseLong(wait) : DEFAULT_WAIT_BETWEEN_ATTEMPTS; tryToPushCurrentBranch(clonedRepo, gitRepo, intAttempts, longWait); } - private void tryToPushCurrentBranch(File clonedRepo, GitRepo gitRepo, int intAttempts, - long longWait) { + private void tryToPushCurrentBranch(File clonedRepo, GitRepo gitRepo, int intAttempts, long longWait) { int currentAttempt = 0; while (currentAttempt < intAttempts) { - log.info("Trying to push changes, attempt " + (currentAttempt + 1) + "/" - + intAttempts); + log.info("Trying to push changes, attempt " + (currentAttempt + 1) + "/" + intAttempts); gitRepo.pull(clonedRepo); - log.info( - "Successfully pulled changes from remote for project with contract and stubs"); + log.info("Successfully pulled changes from remote for project with contract and stubs"); try { gitRepo.pushCurrentBranch(clonedRepo); log.info("Successfully pushed changes with current stubs"); @@ -142,15 +134,12 @@ public class ContractProjectUpdater { private void copyStubs(String projectName, Path rootStubsFolder, File clonedRepo) { try { if (log.isDebugEnabled()) { - log.debug("Copying stubs from [" + rootStubsFolder.toString() - + "] to the cloned repo [" + clonedRepo.getAbsolutePath() - + "] for project [" + projectName + "]"); + log.debug("Copying stubs from [" + rootStubsFolder.toString() + "] to the cloned repo [" + + clonedRepo.getAbsolutePath() + "] for project [" + projectName + "]"); } - Files.walkFileTree(rootStubsFolder, - new DirectoryCopyingVisitor(rootStubsFolder, clonedRepo.toPath())); + Files.walkFileTree(rootStubsFolder, new DirectoryCopyingVisitor(rootStubsFolder, clonedRepo.toPath())); if (log.isDebugEnabled()) { - log.debug("Successfully copied stubs to the cloned repo for project [" - + projectName + "]"); + log.debug("Successfully copied stubs to the cloned repo for project [" + projectName + "]"); } } catch (IOException e) { @@ -162,8 +151,7 @@ public class ContractProjectUpdater { class DirectoryCopyingVisitor extends SimpleFileVisitor { - private static final List FOLDERS_TO_DELETE = Arrays.asList("contracts", - "mappings"); + private static final List FOLDERS_TO_DELETE = Arrays.asList("contracts", "mappings"); private static final Log log = LogFactory.getLog(DirectoryCopyingVisitor.class); @@ -175,14 +163,12 @@ class DirectoryCopyingVisitor extends SimpleFileVisitor { this.from = from; this.to = to; if (log.isDebugEnabled()) { - log.debug("Will copy from [" + from.toString() + "] to [" + to.toString() - + "]"); + log.debug("Will copy from [" + from.toString() + "] to [" + to.toString() + "]"); } } @Override - public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) - throws IOException { + public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { Path relativePath = this.from.relativize(dir); if (".git".equals(relativePath.toString())) { return FileVisitResult.SKIP_SUBTREE; @@ -221,15 +207,13 @@ class DirectoryCopyingVisitor extends SimpleFileVisitor { } Files.walkFileTree(root, new SimpleFileVisitor() { @Override - public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) - throws IOException { + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { Files.delete(file); return FileVisitResult.CONTINUE; } @Override - public FileVisitResult postVisitDirectory(Path dir, IOException exc) - throws IOException { + public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { // a hack for Windows not to fail when directory is removed // related to // https://github.com/spring-cloud/spring-cloud-sleuth/issues/834 @@ -262,8 +246,7 @@ class DirectoryCopyingVisitor extends SimpleFileVisitor { while (count < maxTries); if (!deleted) { if (log.isDebugEnabled()) { - log.debug("Failed to delete [" + dir + "] after [" + maxTries - + "] attempts to do it"); + log.debug("Failed to delete [" + dir + "] after [" + maxTries + "] attempts to do it"); } throw new DirectoryNotEmptyException(dir.toString()); } @@ -288,13 +271,11 @@ class DirectoryCopyingVisitor extends SimpleFileVisitor { } @Override - public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) - throws IOException { + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { Path relativePath = this.to.resolve(this.from.relativize(file)); Files.copy(file, relativePath, StandardCopyOption.REPLACE_EXISTING); if (log.isDebugEnabled()) { - log.debug("Copied file from [" + file.toString() + "] to [" - + relativePath.toString() + "]"); + log.debug("Copied file from [" + file.toString() + "] to [" + relativePath.toString() + "]"); } return FileVisitResult.CONTINUE; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/FileStubDownloader.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/FileStubDownloader.java index a42ad885a1..dc093cca55 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/FileStubDownloader.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/FileStubDownloader.java @@ -43,8 +43,7 @@ import org.springframework.util.StringUtils; */ public class FileStubDownloader implements StubDownloaderBuilder { - private static final List ACCEPTABLE_PROTOCOLS = Collections - .singletonList("stubs"); + private static final List ACCEPTABLE_PROTOCOLS = Collections.singletonList("stubs"); /** * Does any of the accepted protocols matches the URL of the repository. @@ -94,8 +93,7 @@ public class FileStubDownloader implements StubDownloaderBuilder { } private String separatorsToUnix(String location) { - return location != null && location.indexOf(92) != -1 - ? location.replace('\\', '/') : location; + return location != null && location.indexOf(92) != -1 ? location.replace('\\', '/') : location; } } @@ -148,19 +146,16 @@ class StubsStubDownloader implements StubDownloader { // StubConfiguration is the concrete stub to be fetched @Override - public Map.Entry downloadAndUnpackStubJar( - StubConfiguration stubConfiguration) { + public Map.Entry downloadAndUnpackStubJar(StubConfiguration stubConfiguration) { boolean shouldFindProducer = shouldFindProducer(); if (!shouldFindProducer) { String schemeSpecific = schemeSpecificPart(); - log.info("Stubs are present under [" + schemeSpecific - + "]. Will copy them to a temporary directory."); - return new ResourceResolvingStubDownloader(stubRunnerOptions, - this::repoRootForSchemeSpecificPart, this::anyPattern) - .downloadAndUnpackStubJar(stubConfiguration); + log.info("Stubs are present under [" + schemeSpecific + "]. Will copy them to a temporary directory."); + return new ResourceResolvingStubDownloader(stubRunnerOptions, this::repoRootForSchemeSpecificPart, + this::anyPattern).downloadAndUnpackStubJar(stubConfiguration); } - return new ResourceResolvingStubDownloader(stubRunnerOptions, this::repoRoot, - this::gavPattern).downloadAndUnpackStubJar(stubConfiguration); + return new ResourceResolvingStubDownloader(stubRunnerOptions, this::repoRoot, this::gavPattern) + .downloadAndUnpackStubJar(stubConfiguration); } private RepoRoots repoRootForSchemeSpecificPart(StubRunnerOptions stubRunnerOptions, @@ -192,30 +187,21 @@ class StubsStubDownloader implements StubDownloader { // for group id a.b.c and artifact id d // a.b.c/d // a/b/c/d - private RepoRoots repoRoot(StubRunnerOptions stubRunnerOptions, - StubConfiguration configuration) { - String pathWithGroupAndArtifactId = "/" + configuration.getGroupId() + "/" - + configuration.getArtifactId(); - String pathWithGroupAndArtifactIdSlashSeparated = "/" - + configuration.getGroupId().replace(".", File.separator) + "/" - + configuration.getArtifactId(); + private RepoRoots repoRoot(StubRunnerOptions stubRunnerOptions, StubConfiguration configuration) { + String pathWithGroupAndArtifactId = "/" + configuration.getGroupId() + "/" + configuration.getArtifactId(); + String pathWithGroupAndArtifactIdSlashSeparated = "/" + configuration.getGroupId().replace(".", File.separator) + + "/" + configuration.getArtifactId(); String anyFileSuffix = "/**/*.*"; RepoRoots roots = RepoRoots.asList( - new RepoRoot(schemeSpecificPart() + pathWithGroupAndArtifactId, - anyFileSuffix), - new RepoRoot( - schemeSpecificPart() + pathWithGroupAndArtifactIdSlashSeparated, - anyFileSuffix), + new RepoRoot(schemeSpecificPart() + pathWithGroupAndArtifactId, anyFileSuffix), + new RepoRoot(schemeSpecificPart() + pathWithGroupAndArtifactIdSlashSeparated, anyFileSuffix), new RepoRoot(schemeSpecificPart() + anyFileSuffix)); if (!latestVersionIsSet(configuration)) { - String pathWithGAV = pathWithGroupAndArtifactId + "/" + String pathWithGAV = pathWithGroupAndArtifactId + "/" + configuration.getVersion(); + String pathWithSlashSeparatedGAV = pathWithGroupAndArtifactIdSlashSeparated + "/" + configuration.getVersion(); - String pathWithSlashSeparatedGAV = pathWithGroupAndArtifactIdSlashSeparated - + "/" + configuration.getVersion(); - roots.addAll(RepoRoots.asList( - new RepoRoot(schemeSpecificPart() + pathWithGAV, anyFileSuffix), - new RepoRoot(schemeSpecificPart() + pathWithSlashSeparatedGAV, - anyFileSuffix))); + roots.addAll(RepoRoots.asList(new RepoRoot(schemeSpecificPart() + pathWithGAV, anyFileSuffix), + new RepoRoot(schemeSpecificPart() + pathWithSlashSeparatedGAV, anyFileSuffix))); } return roots; } @@ -233,16 +219,14 @@ class StubsStubDownloader implements StubDownloader { private boolean shouldFindProducer() { Map args = this.stubRunnerOptions.getProperties(); - String findProducer = StubRunnerPropertyUtils.getProperty(args, - STUBS_FIND_PRODUCER_PROPERTY); + String findProducer = StubRunnerPropertyUtils.getProperty(args, STUBS_FIND_PRODUCER_PROPERTY); return Boolean.parseBoolean(findProducer); } // stubs://foo -> foo private String schemeSpecificPart() { try { - String part = this.stubRunnerOptions.getStubRepositoryRoot().getURI() - .getSchemeSpecificPart(); + String part = this.stubRunnerOptions.getStubRepositoryRoot().getURI().getSchemeSpecificPart(); if (StringUtils.isEmpty(part)) { return part; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/GitRepo.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/GitRepo.java index 3ad1496eb4..55e9a7593f 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/GitRepo.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/GitRepo.java @@ -208,8 +208,8 @@ class GitRepo { if (log.isDebugEnabled()) { log.debug("Project git url [" + projectGitUrl + "]"); } - CloneCommand command = this.gitFactory.getCloneCommandByCloneRepository() - .setURI(projectGitUrl).setDirectory(destinationFolder); + CloneCommand command = this.gitFactory.getCloneCommandByCloneRepository().setURI(projectGitUrl) + .setDirectory(destinationFolder); try { Git git = command.call(); if (git.getRepository().getRemoteNames().isEmpty()) { @@ -262,8 +262,7 @@ class GitRepo { } private void trackBranch(CheckoutCommand checkout, String label) { - checkout.setCreateBranch(true).setName(label) - .setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.TRACK) + checkout.setCreateBranch(true).setName(label).setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.TRACK) .setStartPoint("origin/" + label); } @@ -275,8 +274,7 @@ class GitRepo { return containsBranch(git, label, null); } - private boolean containsBranch(Git git, String label, - ListBranchCommand.ListMode listMode) throws GitAPIException { + private boolean containsBranch(Git git, String label, ListBranchCommand.ListMode listMode) throws GitAPIException { ListBranchCommand command = git.branchList(); if (listMode != null) { command.setListMode(listMode); @@ -310,8 +308,7 @@ class GitRepo { */ static class JGitFactory { - private static final Logger log = LoggerFactory - .getLogger(MethodHandles.lookup().lookupClass()); + private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); final CredentialsProvider provider; @@ -332,17 +329,14 @@ class GitRepo { log.info("Successfully connected to an agent"); } catch (AgentProxyException e) { - log.error( - "Exception occurred while trying to connect to agent. Will create" - + "the default JSch connection", - e); + log.error("Exception occurred while trying to connect to agent. Will create" + + "the default JSch connection", e); return super.createDefaultJSch(fs); } final JSch jsch = super.createDefaultJSch(fs); if (connector != null) { JSch.setConfig("PreferredAuthentications", "publickey,password"); - IdentityRepository identityRepository = new RemoteIdentityRepository( - connector); + IdentityRepository identityRepository = new RemoteIdentityRepository(connector); jsch.setIdentityRepository(identityRepository); } return jsch; @@ -358,8 +352,7 @@ class GitRepo { JGitFactory(GitStubDownloaderProperties properties) { if (org.springframework.util.StringUtils.hasText(properties.username)) { - log.info( - "Passed username and password - will set a custom credentials provider"); + log.info("Passed username and password - will set a custom credentials provider"); this.provider = credentialsProvider(properties); } else { @@ -376,8 +369,7 @@ class GitRepo { } CredentialsProvider credentialsProvider(GitStubDownloaderProperties properties) { - return new UsernamePasswordCredentialsProvider(properties.username, - properties.password); + return new UsernamePasswordCredentialsProvider(properties.username, properties.password); } CloneCommand getCloneCommandByCloneRepository() { @@ -386,13 +378,11 @@ class GitRepo { } PushCommand push(Git git) { - return git.push().setCredentialsProvider(this.provider) - .setTransportConfigCallback(this.callback); + return git.push().setCredentialsProvider(this.provider).setTransportConfigCallback(this.callback); } PullCommand pull(Git git) { - return git.pull().setCredentialsProvider(this.provider) - .setTransportConfigCallback(this.callback); + return git.pull().setCredentialsProvider(this.provider).setTransportConfigCallback(this.callback); } Git open(File file) { diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/HttpServerStubConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/HttpServerStubConfiguration.java index 35423acecc..c3977747dd 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/HttpServerStubConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/HttpServerStubConfiguration.java @@ -49,15 +49,13 @@ public final class HttpServerStubConfiguration { */ public boolean randomPort; - public HttpServerStubConfiguration(HttpServerStubConfigurer configurer, - StubRunnerOptions stubRunnerOptions, StubConfiguration stubConfiguration, - Integer port) { + public HttpServerStubConfiguration(HttpServerStubConfigurer configurer, StubRunnerOptions stubRunnerOptions, + StubConfiguration stubConfiguration, Integer port) { this(configurer, stubRunnerOptions, stubConfiguration, port, randomPort(port)); } - public HttpServerStubConfiguration(HttpServerStubConfigurer configurer, - StubRunnerOptions stubRunnerOptions, StubConfiguration stubConfiguration, - Integer port, boolean randomPort) { + public HttpServerStubConfiguration(HttpServerStubConfigurer configurer, StubRunnerOptions stubRunnerOptions, + StubConfiguration stubConfiguration, Integer port, boolean randomPort) { this.configurer = configurer; this.stubRunnerOptions = stubRunnerOptions; this.stubConfiguration = stubConfiguration; @@ -74,8 +72,7 @@ public final class HttpServerStubConfiguration { } public String toColonSeparatedDependencyNotation() { - return this.stubConfiguration != null - ? this.stubConfiguration.toColonSeparatedDependencyNotation() : ""; + return this.stubConfiguration != null ? this.stubConfiguration.toColonSeparatedDependencyNotation() : ""; } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/HttpServerStubConfigurer.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/HttpServerStubConfigurer.java index 2353b6afd4..f3eb346041 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/HttpServerStubConfigurer.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/HttpServerStubConfigurer.java @@ -38,8 +38,7 @@ public interface HttpServerStubConfigurer { * @param httpServerStubConfiguration - Spring Cloud Contract stub configuration * @return the modified stub configuration */ - default T configure(T httpStubConfiguration, - HttpServerStubConfiguration httpServerStubConfiguration) { + default T configure(T httpStubConfiguration, HttpServerStubConfiguration httpServerStubConfiguration) { return httpStubConfiguration; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/MappingGenerator.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/MappingGenerator.java index e0d4ed1dea..72a12d73f8 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/MappingGenerator.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/MappingGenerator.java @@ -41,25 +41,20 @@ final class MappingGenerator { throw new IllegalStateException("Can't instantiate utility class"); } - static Collection toMappings(File contractFile, Collection contracts, - File mappingsFolder) { + static Collection toMappings(File contractFile, Collection contracts, File mappingsFolder) { StubGeneratorProvider provider = new StubGeneratorProvider(); - Collection stubGenerators = provider - .converterForName(contractFile.getName()); + Collection stubGenerators = provider.converterForName(contractFile.getName()); if (log.isDebugEnabled()) { log.debug("Found following matching stub generators " + stubGenerators); } Collection mappings = new LinkedList<>(); for (StubGenerator stubGenerator : stubGenerators) { - Map map = stubGenerator.convertContents( - contractFile.getName(), new ContractMetadata(contractFile.toPath(), - false, contracts.size(), null, contracts)); + Map map = stubGenerator.convertContents(contractFile.getName(), + new ContractMetadata(contractFile.toPath(), false, contracts.size(), null, contracts)); for (Map.Entry entry : map.entrySet()) { String value = entry.getValue(); - File mapping = new File(mappingsFolder, - StringUtils.stripFilenameExtension(contractFile.getName()) + "_" - + Math.abs(entry.getKey().hashCode()) - + stubGenerator.fileExtension()); + File mapping = new File(mappingsFolder, StringUtils.stripFilenameExtension(contractFile.getName()) + "_" + + Math.abs(entry.getKey().hashCode()) + stubGenerator.fileExtension()); mappings.add(storeFile(mapping.toPath(), value.getBytes())); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/MavenSettings.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/MavenSettings.java index 01a978613f..8590ce5915 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/MavenSettings.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/MavenSettings.java @@ -64,16 +64,14 @@ public class MavenSettings { return settingsDecrypter; } - private void setField(Class sourceClass, String fieldName, Object target, - Object value) { + private void setField(Class sourceClass, String fieldName, Object target, Object value) { try { Field field = sourceClass.getDeclaredField(fieldName); field.setAccessible(true); field.set(target, value); } catch (Exception ex) { - throw new IllegalStateException( - "Failed to set field '" + fieldName + "' on '" + target + "'", ex); + throw new IllegalStateException("Failed to set field '" + fieldName + "' on '" + target + "'", ex); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ProjectVersion.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ProjectVersion.java index 9b9367c02d..07a3b2d8f0 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ProjectVersion.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ProjectVersion.java @@ -32,8 +32,7 @@ import org.springframework.util.StringUtils; */ class ProjectVersion implements Comparable, Serializable { - private static final Pattern SNAPSHOT_PATTERN = Pattern - .compile("^.*[\\.|\\-](BUILD-)?SNAPSHOT.*$"); + private static final Pattern SNAPSHOT_PATTERN = Pattern.compile("^.*[\\.|\\-](BUILD-)?SNAPSHOT.*$"); private static final String MILESTONE_REGEX = ".*[\\.|\\-]M[0-9]+"; @@ -44,8 +43,8 @@ class ProjectVersion implements Comparable, Serializable { private static final String SR_REGEX = "^.*[\\.|\\-]SR[0-9]+.*$"; private static final List VALID_PATTERNS = Arrays.asList(SNAPSHOT_PATTERN, - Pattern.compile(MILESTONE_REGEX), Pattern.compile(RC_REGEX), - Pattern.compile(RELEASE_REGEX), Pattern.compile(SR_REGEX)); + Pattern.compile(MILESTONE_REGEX), Pattern.compile(RC_REGEX), Pattern.compile(RELEASE_REGEX), + Pattern.compile(SR_REGEX)); /** * Version of the project. @@ -79,8 +78,7 @@ class ProjectVersion implements Comparable, Serializable { int numberOfHyphens = splitByHyphens - 1; int indexOfFirstHyphen = this.version.indexOf("-"); boolean buildSnapshot = this.version.endsWith("BUILD-SNAPSHOT"); - if (numberOfHyphens == 1 && !buildSnapshot - || (numberOfHyphens > 1 && buildSnapshot)) { + if (numberOfHyphens == 1 && !buildSnapshot || (numberOfHyphens > 1 && buildSnapshot)) { // Dysprosium or 1.0.0 String versionName = this.version.substring(0, indexOfFirstHyphen); boolean hasDots = versionName.contains("."); @@ -100,8 +98,7 @@ class ProjectVersion implements Comparable, Serializable { return SplitVersion.hyphen(newArray); } else { - throw new UnsupportedOperationException( - "Unknown version [" + this.version + "]"); + throw new UnsupportedOperationException("Unknown version [" + this.version + "]"); } } return null; @@ -172,8 +169,7 @@ class ProjectVersion implements Comparable, Serializable { SplitVersion thatSplit = that.assertVersion(); int releaseTypeComparison = this.releaseType.compareTo(that.releaseType); boolean thisReleaseTypeHigher = releaseTypeComparison > 0; - boolean bothGa = this.isReleaseOrServiceRelease() - && that.isReleaseOrServiceRelease(); + boolean bothGa = this.isReleaseOrServiceRelease() && that.isReleaseOrServiceRelease(); // 1.0.1.M2 vs 1.0.0.RELEASE (x) if (thisReleaseTypeHigher && !bothGa) { return 1; @@ -205,8 +201,7 @@ class ProjectVersion implements Comparable, Serializable { boolean isSameWithoutSuffix(ProjectVersion that) { SplitVersion thisSplit = assertVersion(); SplitVersion thatSplit = that.assertVersion(); - return thisSplit.major.equals(thatSplit.major) - && thisSplit.minor.equals(thatSplit.minor) + return thisSplit.major.equals(thatSplit.major) && thisSplit.minor.equals(thatSplit.minor) && thisSplit.patch.equals(thatSplit.patch); } @@ -255,8 +250,7 @@ class ProjectVersion implements Comparable, Serializable { // 1.0.0.RELEASE // 1.0.0-RELEASE - private SplitVersion(String major, String minor, String patch, String delimiter, - String suffix) { + private SplitVersion(String major, String minor, String patch, String delimiter, String suffix) { this.major = major; this.minor = minor; this.patch = patch; @@ -314,8 +308,7 @@ class ProjectVersion implements Comparable, Serializable { } private boolean isInvalid() { - return wrongReleaseTrainVersion() || wrongLibraryVersion() || wrongDelimiter() - || noSuffix(); + return wrongReleaseTrainVersion() || wrongLibraryVersion() || wrongDelimiter() || noSuffix(); } private boolean noSuffix() { @@ -345,9 +338,8 @@ class ProjectVersion implements Comparable, Serializable { // must have // either major and suffix (release train) // major, minor, patch and suffix - return isNumeric(major) && (StringUtils.isEmpty(minor) - || StringUtils.isEmpty(patch) || StringUtils.isEmpty(suffix) - || StringUtils.isEmpty(delimiter)); + return isNumeric(major) && (StringUtils.isEmpty(minor) || StringUtils.isEmpty(patch) + || StringUtils.isEmpty(suffix) || StringUtils.isEmpty(delimiter)); } private boolean wrongReleaseTrainVersion() { diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ResourceResolver.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ResourceResolver.java index 216ccc92c9..3d193a6708 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ResourceResolver.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ResourceResolver.java @@ -48,10 +48,8 @@ public final class ResourceResolver { private static final DefaultResourceLoader LOADER = new DefaultResourceLoader(); static { - RESOLVERS.addAll( - SpringFactoriesLoader.loadFactories(StubDownloaderBuilder.class, null)); - RESOLVERS.addAll( - new StubDownloaderBuilderProvider().defaultStubDownloaderBuilders()); + RESOLVERS.addAll(SpringFactoriesLoader.loadFactories(StubDownloaderBuilder.class, null)); + RESOLVERS.addAll(new StubDownloaderBuilderProvider().defaultStubDownloaderBuilders()); for (ProtocolResolver resolver : RESOLVERS) { LOADER.addProtocolResolver(resolver); } @@ -70,9 +68,7 @@ public final class ResourceResolver { return LOADER.getResource(url); } catch (Exception e) { - log.error( - "Exception occurred while trying to read the resource [" + url + "]", - e); + log.error("Exception occurred while trying to read the resource [" + url + "]", e); return null; } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ResourceResolvingStubDownloader.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ResourceResolvingStubDownloader.java index 3348f58887..bde851deee 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ResourceResolvingStubDownloader.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ResourceResolvingStubDownloader.java @@ -43,8 +43,7 @@ import org.springframework.core.io.support.PathMatchingResourcePatternResolver; class ResourceResolvingStubDownloader implements StubDownloader { - private static final Log log = LogFactory - .getLog(ResourceResolvingStubDownloader.class); + private static final Log log = LogFactory.getLog(ResourceResolvingStubDownloader.class); private final StubRunnerOptions stubRunnerOptions; @@ -64,8 +63,7 @@ class ResourceResolvingStubDownloader implements StubDownloader { } @Override - public Map.Entry downloadAndUnpackStubJar( - StubConfiguration config) { + public Map.Entry downloadAndUnpackStubJar(StubConfiguration config) { registerShutdownHook(); List repoRoots = repoRootFunction.apply(stubRunnerOptions, config); List paths = toPaths(repoRoots); @@ -74,8 +72,8 @@ class ResourceResolvingStubDownloader implements StubDownloader { log.debug("For paths " + paths + " found following resources " + resources); } if (resources.isEmpty() && this.stubRunnerOptions.isFailOnNoStubs()) { - throw new IllegalStateException("No stubs were found on classpath for [" - + config.getGroupId() + ":" + config.getArtifactId() + "]"); + throw new IllegalStateException("No stubs were found on classpath for [" + config.getGroupId() + ":" + + config.getArtifactId() + "]"); } final File tmp = TemporaryFileStorage.createTempDir("classpath-stubs"); if (stubRunnerOptions.isDeleteStubsAfterTest()) { @@ -84,8 +82,7 @@ class ResourceResolvingStubDownloader implements StubDownloader { boolean atLeastOneFound = false; for (Resource resource : resources) { try { - String relativePath = relativePathPicker(resource, - this.gavPattern.apply(config)); + String relativePath = relativePathPicker(resource, this.gavPattern.apply(config)); if (log.isDebugEnabled()) { log.debug("Relative path for resource is [" + relativePath + "]"); } @@ -105,31 +102,25 @@ class ResourceResolvingStubDownloader implements StubDownloader { log.warn("Didn't find any matching stubs"); return null; } - log.info("Unpacked files for [" + config.getGroupId() + ":" - + config.getArtifactId() + ":" + config.getVersion() + "] to folder [" - + tmp + "]"); - return new AbstractMap.SimpleEntry<>(new StubConfiguration(config.getGroupId(), - config.getArtifactId(), config.getVersion(), config.getClassifier()), - tmp); + log.info("Unpacked files for [" + config.getGroupId() + ":" + config.getArtifactId() + ":" + config.getVersion() + + "] to folder [" + tmp + "]"); + return new AbstractMap.SimpleEntry<>(new StubConfiguration(config.getGroupId(), config.getArtifactId(), + config.getVersion(), config.getClassifier()), tmp); } private void registerShutdownHook() { - Runtime.getRuntime().addShutdownHook(new Thread(() -> TemporaryFileStorage - .cleanup(stubRunnerOptions.isDeleteStubsAfterTest()))); + Runtime.getRuntime().addShutdownHook( + new Thread(() -> TemporaryFileStorage.cleanup(stubRunnerOptions.isDeleteStubsAfterTest()))); } - private void copyTheFoundFiles(File tmp, Resource resource, String relativePath) - throws IOException { + private void copyTheFoundFiles(File tmp, Resource resource, String relativePath) throws IOException { // the relative path is OS agnostic and contains / only int lastIndexOf = relativePath.lastIndexOf("/"); - String relativePathWithoutFile = lastIndexOf > -1 - ? relativePath.substring(0, lastIndexOf) : relativePath; + String relativePathWithoutFile = lastIndexOf > -1 ? relativePath.substring(0, lastIndexOf) : relativePath; if (log.isDebugEnabled()) { - log.debug("Relative path without file name is [" + relativePathWithoutFile - + "]"); + log.debug("Relative path without file name is [" + relativePathWithoutFile + "]"); } - Path directory = Files - .createDirectories(new File(tmp, relativePathWithoutFile).toPath()); + Path directory = Files.createDirectories(new File(tmp, relativePathWithoutFile).toPath()); File newFile = new File(directory.toFile(), resource.getFilename()); if (!newFile.exists() && !isDirectory(resource)) { try (InputStream stream = resource.getInputStream()) { @@ -148,20 +139,15 @@ class ResourceResolvingStubDownloader implements StubDownloader { } catch (Exception e) { if (log.isTraceEnabled()) { - log.trace( - "Exception occurred while trying to convert path to file for resource [" - + resource + "]", - e); + log.trace("Exception occurred while trying to convert path to file for resource [" + resource + "]", e); } return false; } } - String relativePathPicker(Resource resource, Pattern groupAndArtifactPattern) - throws IOException { + String relativePathPicker(Resource resource, Pattern groupAndArtifactPattern) throws IOException { Matcher groupAndArtifactMatcher = matcher(resource, groupAndArtifactPattern); - if (groupAndArtifactMatcher.matches() - && groupAndArtifactMatcher.groupCount() > 2) { + if (groupAndArtifactMatcher.matches() && groupAndArtifactMatcher.groupCount() > 2) { MatchResult groupAndArtifactResult = groupAndArtifactMatcher.toMatchResult(); return groupAndArtifactResult.group(2) + groupAndArtifactResult.group(3); } @@ -173,8 +159,7 @@ class ResourceResolvingStubDownloader implements StubDownloader { } } - private Matcher matcher(Resource resource, Pattern groupAndArtifactPattern) - throws IOException { + private Matcher matcher(Resource resource, Pattern groupAndArtifactPattern) throws IOException { try { String path = resource.getURI().getPath(); return groupAndArtifactPattern.matcher(path); @@ -201,8 +186,7 @@ class ResourceResolvingStubDownloader implements StubDownloader { resources.addAll(list); } catch (IOException e) { - log.error("Exception occurred while trying to fetch resources from [" - + path + "]"); + log.error("Exception occurred while trying to fetch resources from [" + path + "]"); throw new IllegalStateException(e); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/RunningStubs.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/RunningStubs.java index 549e9871a1..045f37b707 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/RunningStubs.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/RunningStubs.java @@ -112,8 +112,7 @@ public class RunningStubs { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result - + ((this.namesAndPorts == null) ? 0 : this.namesAndPorts.hashCode()); + result = prime * result + ((this.namesAndPorts == null) ? 0 : this.namesAndPorts.hashCode()); return result; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ScmStubDownloaderBuilder.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ScmStubDownloaderBuilder.java index 3e709df2f1..73a7ad3a8b 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ScmStubDownloaderBuilder.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ScmStubDownloaderBuilder.java @@ -54,8 +54,7 @@ import org.springframework.util.StringUtils; */ public final class ScmStubDownloaderBuilder implements StubDownloaderBuilder { - private static final List ACCEPTABLE_PROTOCOLS = Collections - .singletonList("git"); + private static final List ACCEPTABLE_PROTOCOLS = Collections.singletonList("git"); /** * Does any of the accepted protocols matches the URL of the repository. @@ -133,18 +132,15 @@ class GitContractsRepo { File clonedRepo(Resource repo) { File file = CACHED_LOCATIONS.get(repo); - GitStubDownloaderProperties properties = new GitStubDownloaderProperties(repo, - this.options); + GitStubDownloaderProperties properties = new GitStubDownloaderProperties(repo, this.options); if (file == null) { - File tmpDirWhereStubsWillBeUnzipped = TemporaryFileStorage - .createTempDir(TEMP_DIR_PREFIX); + File tmpDirWhereStubsWillBeUnzipped = TemporaryFileStorage.createTempDir(TEMP_DIR_PREFIX); GitRepo gitRepo = new GitRepo(tmpDirWhereStubsWillBeUnzipped, properties); file = gitRepo.cloneProject(properties.url); gitRepo.checkout(file, properties.branch); CACHED_LOCATIONS.put(repo, file); if (log.isDebugEnabled()) { - log.debug("The project hasn't already been cloned. Cloned it to [" + file - + "]"); + log.debug("The project hasn't already been cloned. Cloned it to [" + file + "]"); } } else { @@ -182,20 +178,18 @@ class GitStubDownloader implements StubDownloader { } @Override - public Map.Entry downloadAndUnpackStubJar( - StubConfiguration stubConfiguration) { + public Map.Entry downloadAndUnpackStubJar(StubConfiguration stubConfiguration) { try { if (log.isDebugEnabled()) { - log.debug("Trying to find a contract for [" - + stubConfiguration.toColonSeparatedDependencyNotation() + "]"); + log.debug("Trying to find a contract for [" + stubConfiguration.toColonSeparatedDependencyNotation() + + "]"); } Resource repo = this.stubRunnerOptions.getStubRepositoryRoot(); File clonedRepo = this.gitContractsRepo.clonedRepo(repo); FileWalker walker = new FileWalker(stubConfiguration); Files.walkFileTree(clonedRepo.toPath(), walker); if (walker.foundFile != null) { - return new AbstractMap.SimpleEntry<>(stubConfiguration, - walker.foundFile.toFile()); + return new AbstractMap.SimpleEntry<>(stubConfiguration, walker.foundFile.toFile()); } } catch (IOException e) { @@ -209,8 +203,8 @@ class GitStubDownloader implements StubDownloader { } private void registerShutdownHook() { - Runtime.getRuntime().addShutdownHook(new Thread(() -> TemporaryFileStorage - .cleanup(GitStubDownloader.this.deleteStubsAfterTest))); + Runtime.getRuntime().addShutdownHook( + new Thread(() -> TemporaryFileStorage.cleanup(GitStubDownloader.this.deleteStubsAfterTest))); } } @@ -245,21 +239,17 @@ class GitStubDownloaderProperties { // if we had git://https://... we want the part starting from https // if we had git://git@... we want the full address again // if the URL starts with git@... and ends with .git, we want to remove it - String modifiedRepo = repoUrl.startsWith("git@") ? modifyUrlForGitRepo(repoUrl) - : repoUrl; + String modifiedRepo = repoUrl.startsWith("git@") ? modifyUrlForGitRepo(repoUrl) : repoUrl; this.url = URI.create(modifiedRepo); - String username = StubRunnerPropertyUtils.getProperty(args, - GIT_USERNAME_PROPERTY); + String username = StubRunnerPropertyUtils.getProperty(args, GIT_USERNAME_PROPERTY); this.username = StringUtils.hasText(username) ? username : options.getUsername(); - String password = StubRunnerPropertyUtils.getProperty(args, - GIT_PASSWORD_PROPERTY); + String password = StubRunnerPropertyUtils.getProperty(args, GIT_PASSWORD_PROPERTY); this.password = StringUtils.hasText(password) ? password : options.getPassword(); String branch = StubRunnerPropertyUtils.getProperty(args, GIT_BRANCH_PROPERTY); this.branch = StringUtils.hasText(branch) ? branch : "master"; if (log.isDebugEnabled()) { - log.debug("Repo url is [" + repoUrl + "], modified url string " + "is [" - + modifiedRepo + "] URL is [" + this.url + "] and " + "branch is [" - + this.branch + "]"); + log.debug("Repo url is [" + repoUrl + "], modified url string " + "is [" + modifiedRepo + "] URL is [" + + this.url + "] and " + "branch is [" + this.branch + "]"); } } @@ -296,39 +286,27 @@ class FileWalker extends SimpleFileVisitor { Path foundFile; FileWalker(StubConfiguration stubConfiguration) { - this.latestSnapshotVersion = LATEST.stream() - .anyMatch(s -> s.equals(stubConfiguration.version.toLowerCase())); - this.latestReleaseVersion = RELEASE - .equals(stubConfiguration.version.toLowerCase()); - this.matcherWithDot = FileSystems.getDefault() - .getPathMatcher("glob:" + matcherGlob(stubConfiguration, ".")); - this.matcherWithoutDot = FileSystems.getDefault() - .getPathMatcher("glob:" + matcherGlob(stubConfiguration, "/")); + this.latestSnapshotVersion = LATEST.stream().anyMatch(s -> s.equals(stubConfiguration.version.toLowerCase())); + this.latestReleaseVersion = RELEASE.equals(stubConfiguration.version.toLowerCase()); + this.matcherWithDot = FileSystems.getDefault().getPathMatcher("glob:" + matcherGlob(stubConfiguration, ".")); + this.matcherWithoutDot = FileSystems.getDefault().getPathMatcher("glob:" + matcherGlob(stubConfiguration, "/")); } - private String matcherGlob(StubConfiguration stubConfiguration, - String groupArtifactSeparator) { - return "**" + stubConfiguration.groupId + groupArtifactSeparator - + stubConfiguration.artifactId + "/" - + (this.latestSnapshotVersion || this.latestReleaseVersion ? "**" - : stubConfiguration.version); + private String matcherGlob(StubConfiguration stubConfiguration, String groupArtifactSeparator) { + return "**" + stubConfiguration.groupId + groupArtifactSeparator + stubConfiguration.artifactId + "/" + + (this.latestSnapshotVersion || this.latestReleaseVersion ? "**" : stubConfiguration.version); } @Override - public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) - throws IOException { - if (this.matcherWithDot.matches(dir.toAbsolutePath()) - || this.matcherWithoutDot.matches(dir.toAbsolutePath())) { + public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { + if (this.matcherWithDot.matches(dir.toAbsolutePath()) || this.matcherWithoutDot.matches(dir.toAbsolutePath())) { if (this.latestSnapshotVersion || this.latestReleaseVersion) { // folders with name latest, release - File[] files = Objects.requireNonNull( - dir.getParent().toFile().listFiles(File::isDirectory)); + File[] files = Objects.requireNonNull(dir.getParent().toFile().listFiles(File::isDirectory)); File file = folderWithPredefinedName(files); if (file != null) { if (log.isDebugEnabled()) { - log.debug( - "Found folder with name corresponding to a latest version [" - + file + "] "); + log.debug("Found folder with name corresponding to a latest version [" + file + "] "); this.foundFile = file.toPath(); return FileVisitResult.TERMINATE; } @@ -347,30 +325,26 @@ class FileWalker extends SimpleFileVisitor { List versions = pickLatestVersion(files); if (versions.isEmpty()) { if (log.isDebugEnabled()) { - log.debug("Not a single version matching semver for path [" - + dir.toAbsolutePath().toString() + "] was found"); + log.debug("Not a single version matching semver for path [" + dir.toAbsolutePath().toString() + + "] was found"); } return FileVisitResult.CONTINUE; } // 2.0.0.RELEASE, 2.0.0.BUILD-SNAPSHOT // 2.0.0.RELEASE - DefaultArtifactVersionWrapper latestFoundVersion = versions - .get(versions.size() - 1); - latestFoundVersion = replaceWithSnapshotIfSameVersions(versions, - latestFoundVersion); + DefaultArtifactVersionWrapper latestFoundVersion = versions.get(versions.size() - 1); + latestFoundVersion = replaceWithSnapshotIfSameVersions(versions, latestFoundVersion); this.foundFile = latestFoundVersion.file.toPath(); return FileVisitResult.TERMINATE; } private DefaultArtifactVersionWrapper replaceWithSnapshotIfSameVersions( - List versions, - final DefaultArtifactVersionWrapper latestFoundVersion) { + List versions, final DefaultArtifactVersionWrapper latestFoundVersion) { if (versions.size() > 1 && this.latestSnapshotVersion) { // 2.0.1.BUILD-SNAPSHOT, 2.0.0.BUILD-SNAPSHOT // 2.0.0.BUILD-SNAPSHOT, 2.0.0.RELEASE - DefaultArtifactVersionWrapper sameVersionButSnapshot = versions.stream() - .filter(w -> w.projectVersion.isSameWithoutSuffix( - latestFoundVersion.projectVersion) && w.isSnapshot()) + DefaultArtifactVersionWrapper sameVersionButSnapshot = versions.stream().filter( + w -> w.projectVersion.isSameWithoutSuffix(latestFoundVersion.projectVersion) && w.isSnapshot()) .findFirst().orElse(latestFoundVersion); // 2.0.0 vs 2.0.0 // replace the RELEASE one with SNAPSHOT @@ -384,19 +358,17 @@ class FileWalker extends SimpleFileVisitor { private File folderWithPredefinedName(File[] files) { if (this.latestSnapshotVersion) { return Arrays.stream(files) - .filter(file -> LATEST.stream() - .anyMatch(s -> s.equals(file.getName().toLowerCase()))) - .findFirst().orElse(null); + .filter(file -> LATEST.stream().anyMatch(s -> s.equals(file.getName().toLowerCase()))).findFirst() + .orElse(null); } - return Arrays.stream(files) - .filter(file -> RELEASE.equals(file.getName().toLowerCase())).findFirst() + return Arrays.stream(files).filter(file -> RELEASE.equals(file.getName().toLowerCase())).findFirst() .orElse(null); } private List pickLatestVersion(File[] files) { return Arrays.stream(files).map(DefaultArtifactVersionWrapper::new) - .filter(wrapper -> this.latestSnapshotVersion || wrapper.isNotSnapshot()) - .sorted().collect(Collectors.toList()); + .filter(wrapper -> this.latestSnapshotVersion || wrapper.isNotSnapshot()).sorted() + .collect(Collectors.toList()); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubConfiguration.java index 8e1f4d781a..a5d1dcd96b 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubConfiguration.java @@ -50,8 +50,7 @@ public class StubConfiguration { this.classifier = DEFAULT_CLASSIFIER; } - public StubConfiguration(String groupId, String artifactId, String version, - String classifier) { + public StubConfiguration(String groupId, String artifactId, String version, String classifier) { this.groupId = groupId; this.artifactId = artifactId; this.version = version; @@ -59,8 +58,7 @@ public class StubConfiguration { } public StubConfiguration(String stubPath, String defaultClassifier) { - String[] parsedPath = parsedPathEmptyByDefault(stubPath, STUB_COLON_DELIMITER, - defaultClassifier); + String[] parsedPath = parsedPathEmptyByDefault(stubPath, STUB_COLON_DELIMITER, defaultClassifier); this.groupId = parsedPath[0]; this.artifactId = parsedPath[1]; this.version = parsedPath[2]; @@ -68,16 +66,14 @@ public class StubConfiguration { } public StubConfiguration(String stubPath) { - String[] parsedPath = parsedPathEmptyByDefault(stubPath, STUB_COLON_DELIMITER, - DEFAULT_CLASSIFIER); + String[] parsedPath = parsedPathEmptyByDefault(stubPath, STUB_COLON_DELIMITER, DEFAULT_CLASSIFIER); this.groupId = parsedPath[0]; this.artifactId = parsedPath[1]; this.version = parsedPath[2]; this.classifier = parsedPath[3]; } - private String[] parsedPathEmptyByDefault(String path, String delimiter, - String defaultClassifier) { + private String[] parsedPathEmptyByDefault(String path, String delimiter, String defaultClassifier) { String[] splitPath = path.split(delimiter, -1); String stubsGroupId = ""; String stubsArtifactId = ""; @@ -89,8 +85,7 @@ public class StubConfiguration { stubsVersion = splitPath.length >= 3 ? splitPath[2] : DEFAULT_VERSION; stubsClassifier = splitPath.length >= 4 ? splitPath[3] : defaultClassifier; } - return new String[] { stubsGroupId, stubsArtifactId, stubsVersion, - stubsClassifier }; + return new String[] { stubsGroupId, stubsArtifactId, stubsVersion, stubsClassifier }; } private boolean isDefined() { @@ -105,10 +100,8 @@ public class StubConfiguration { if (!isDefined()) { return ""; } - return StringUtils.arrayToDelimitedString( - new String[] { nullCheck(this.groupId), nullCheck(this.artifactId), - nullCheck(this.version), nullCheck(this.classifier) }, - STUB_COLON_DELIMITER); + return StringUtils.arrayToDelimitedString(new String[] { nullCheck(this.groupId), nullCheck(this.artifactId), + nullCheck(this.version), nullCheck(this.classifier) }, STUB_COLON_DELIMITER); } private String nullCheck(String value) { @@ -135,8 +128,7 @@ public class StubConfiguration { * @return {@code true} for a snapshot or a LATEST (+) version. */ public boolean isVersionChanging() { - return DEFAULT_VERSION.equals(this.version) - || this.version.toLowerCase().contains("snapshot"); + return DEFAULT_VERSION.equals(this.version) || this.version.toLowerCase().contains("snapshot"); } public String getGroupId() { @@ -159,8 +151,7 @@ public class StubConfiguration { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result - + ((this.artifactId == null) ? 0 : this.artifactId.hashCode()); + result = prime * result + ((this.artifactId == null) ? 0 : this.artifactId.hashCode()); result = prime * result + ((this.groupId == null) ? 0 : this.groupId.hashCode()); return result; } @@ -201,16 +192,13 @@ public class StubConfiguration { if (strings.length == 1) { return this.artifactId.equals(ivyNotationAsString); } - if (strings.length >= 2 && !(this.groupId.equals(strings[0]) - && this.artifactId.equals(strings[1]))) { + if (strings.length >= 2 && !(this.groupId.equals(strings[0]) && this.artifactId.equals(strings[1]))) { return false; } - if (strings.length >= 3 && !(this.version.equals(strings[2]) - || DEFAULT_VERSION.equals(strings[2]))) { + if (strings.length >= 3 && !(this.version.equals(strings[2]) || DEFAULT_VERSION.equals(strings[2]))) { return false; } - if (strings.length == 4 && !(this.classifier.equals(strings[3]) - || DEFAULT_CLASSIFIER.equals(strings[3]))) { + if (strings.length == 4 && !(this.classifier.equals(strings[3]) || DEFAULT_CLASSIFIER.equals(strings[3]))) { return false; } return true; diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubDownloader.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubDownloader.java index 1084525861..c626e93724 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubDownloader.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubDownloader.java @@ -40,7 +40,6 @@ public interface StubDownloader { * version) and the location of the downloaded stubs. If there was no artifact this * method will return {@code null}. */ - Map.Entry downloadAndUnpackStubJar( - StubConfiguration stubConfiguration); + Map.Entry downloadAndUnpackStubJar(StubConfiguration stubConfiguration); } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubDownloaderBuilderProvider.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubDownloaderBuilderProvider.java index 0f153ec728..774e5f37e3 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubDownloaderBuilderProvider.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubDownloaderBuilderProvider.java @@ -34,8 +34,7 @@ public class StubDownloaderBuilderProvider { private final List builders = new ArrayList<>(); public StubDownloaderBuilderProvider() { - this.builders.addAll( - SpringFactoriesLoader.loadFactories(StubDownloaderBuilder.class, null)); + this.builders.addAll(SpringFactoriesLoader.loadFactories(StubDownloaderBuilder.class, null)); } StubDownloaderBuilderProvider(List builders) { @@ -49,8 +48,7 @@ public class StubDownloaderBuilderProvider { * @return composite {@link StubDownloader} that iterates over a list of stub * downloaders */ - public StubDownloader get(StubRunnerOptions stubRunnerOptions, - StubDownloaderBuilder... additionalBuilders) { + public StubDownloader get(StubRunnerOptions stubRunnerOptions, StubDownloaderBuilder... additionalBuilders) { List builders = this.builders; if (additionalBuilders != null) { builders.addAll(Arrays.asList(additionalBuilders)); @@ -61,8 +59,8 @@ public class StubDownloaderBuilderProvider { } List defaultStubDownloaderBuilders() { - return Arrays.asList(new ScmStubDownloaderBuilder(), new ClasspathStubProvider(), - new FileStubDownloader(), new AetherStubDownloaderBuilder()); + return Arrays.asList(new ScmStubDownloaderBuilder(), new ClasspathStubProvider(), new FileStubDownloader(), + new AetherStubDownloaderBuilder()); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubNotFoundException.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubNotFoundException.java index 8292ee1d91..454dcff656 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubNotFoundException.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubNotFoundException.java @@ -25,8 +25,7 @@ package org.springframework.cloud.contract.stubrunner; public class StubNotFoundException extends RuntimeException { public StubNotFoundException(String groupId, String artifactId) { - super("Stub not found for groupid [" + groupId + "] and artifactid [" + artifactId - + "]"); + super("Stub not found for groupid [" + groupId + "] and artifactid [" + artifactId + "]"); } public StubNotFoundException(String ivyNotation) { diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRepository.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRepository.java index b40ddf2fc0..40595babc8 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRepository.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRepository.java @@ -57,17 +57,13 @@ class StubRepository { private final StubRunnerOptions options; - StubRepository(File repository, List httpServerStubs, - StubRunnerOptions options) { + StubRepository(File repository, List httpServerStubs, StubRunnerOptions options) { if (!repository.isDirectory()) { - throw new IllegalArgumentException( - "Missing descriptor repository under path [" + repository + "]"); + throw new IllegalArgumentException("Missing descriptor repository under path [" + repository + "]"); } - this.contractConverters = SpringFactoriesLoader - .loadFactories(ContractConverter.class, null); + this.contractConverters = SpringFactoriesLoader.loadFactories(ContractConverter.class, null); if (log.isTraceEnabled()) { - log.trace( - "Found the following contract converters " + this.contractConverters); + log.trace("Found the following contract converters " + this.contractConverters); } this.httpServerStubs = httpServerStubs; this.path = repository; @@ -110,26 +106,22 @@ class StubRepository { } private List collectedStubs() { - return this.path.exists() ? collectMappings(this.path) - : Collections.emptyList(); + return this.path.exists() ? collectMappings(this.path) : Collections.emptyList(); } private List collectMappings(File descriptorsDirectory) { final List mappingDescriptors = new ArrayList<>(); try { - Files.walkFileTree(Paths.get(descriptorsDirectory.toURI()), - new SimpleFileVisitor() { - @Override - public FileVisitResult visitFile(Path path, - BasicFileAttributes attrs) throws IOException { - File file = path.toFile(); - if (httpServerStubAccepts(file) - && isStubPerConsumerPathMatching(file)) { - mappingDescriptors.add(file); - } - return super.visitFile(path, attrs); - } - }); + Files.walkFileTree(Paths.get(descriptorsDirectory.toURI()), new SimpleFileVisitor() { + @Override + public FileVisitResult visitFile(Path path, BasicFileAttributes attrs) throws IOException { + File file = path.toFile(); + if (httpServerStubAccepts(file) && isStubPerConsumerPathMatching(file)) { + mappingDescriptors.add(file); + } + return super.visitFile(path, attrs); + } + }); } catch (IOException e) { log.warn("Exception occurred while trying to parse file", e); @@ -158,8 +150,7 @@ class StubRepository { private Collection contractDescriptors() { return (this.path.exists() - ? ContractScanner.collectContractDescriptors(this.path, - this::isStubPerConsumerPathMatching) + ? ContractScanner.collectContractDescriptors(this.path, this::isStubPerConsumerPathMatching) : Collections.emptySet()); } @@ -172,9 +163,8 @@ class StubRepository { String absolutePath = file.getAbsolutePath(); boolean stubPerConsumerMatching = absolutePath.contains(searchedConsumerName); if (log.isDebugEnabled()) { - log.debug("Absolute path [" + absolutePath + "] contains [" - + searchedConsumerName + "] in its path [" + stubPerConsumerMatching - + "]"); + log.debug("Absolute path [" + absolutePath + "] contains [" + searchedConsumerName + "] in its path [" + + stubPerConsumerMatching + "]"); } return stubPerConsumerMatching; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunner.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunner.java index 9ae10d5386..29b6967cf7 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunner.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunner.java @@ -56,48 +56,38 @@ public class StubRunner implements StubRunning { public StubRunner(StubRunnerOptions stubRunnerOptions, String repositoryPath, StubConfiguration stubsConfiguration) { - this(stubRunnerOptions, repositoryPath, stubsConfiguration, - new NoOpStubMessages()); + this(stubRunnerOptions, repositoryPath, stubsConfiguration, new NoOpStubMessages()); } - public StubRunner(StubRunnerOptions stubRunnerOptions, String repositoryPath, - StubConfiguration stubsConfiguration, + public StubRunner(StubRunnerOptions stubRunnerOptions, String repositoryPath, StubConfiguration stubsConfiguration, MessageVerifier contractVerifierMessaging) { this.stubsConfiguration = stubsConfiguration; this.stubRunnerOptions = stubRunnerOptions; - List serverStubs = SpringFactoriesLoader - .loadFactories(HttpServerStub.class, null); - this.stubRepository = new StubRepository(new File(repositoryPath), serverStubs, - this.stubRunnerOptions); - AvailablePortScanner portScanner = new AvailablePortScanner( - stubRunnerOptions.getMinPortValue(), stubRunnerOptions.getMaxPortValue()); - this.localStubRunner = new StubRunnerExecutor(portScanner, - contractVerifierMessaging, serverStubs); + List serverStubs = SpringFactoriesLoader.loadFactories(HttpServerStub.class, null); + this.stubRepository = new StubRepository(new File(repositoryPath), serverStubs, this.stubRunnerOptions); + AvailablePortScanner portScanner = new AvailablePortScanner(stubRunnerOptions.getMinPortValue(), + stubRunnerOptions.getMaxPortValue()); + this.localStubRunner = new StubRunnerExecutor(portScanner, contractVerifierMessaging, serverStubs); } @Override public RunningStubs runStubs() { registerShutdownHook(); - RunningStubs stubs = this.localStubRunner.runStubs(this.stubRunnerOptions, - this.stubRepository, this.stubsConfiguration); + RunningStubs stubs = this.localStubRunner.runStubs(this.stubRunnerOptions, this.stubRepository, + this.stubsConfiguration); if (this.stubRunnerOptions.hasMappingsOutputFolder()) { String registeredMappings = this.localStubRunner.registeredMappings(); if (StringUtils.hasText(registeredMappings)) { - File outputMappings = new File( - this.stubRunnerOptions.getMappingsOutputFolder(), + File outputMappings = new File(this.stubRunnerOptions.getMappingsOutputFolder(), this.stubsConfiguration.artifactId + "_" - + stubs.getPort(this.stubsConfiguration - .toColonSeparatedDependencyNotation())); + + stubs.getPort(this.stubsConfiguration.toColonSeparatedDependencyNotation())); try { outputMappings.getParentFile().mkdirs(); - clearOldFiles(outputMappings.getParentFile(), - this.stubsConfiguration.artifactId); + clearOldFiles(outputMappings.getParentFile(), this.stubsConfiguration.artifactId); outputMappings.createNewFile(); - Files.write(Paths.get(outputMappings.toURI()), - registeredMappings.getBytes()); + Files.write(Paths.get(outputMappings.toURI()), registeredMappings.getBytes()); if (log.isDebugEnabled()) { - log.debug("Stored the mappings for artifactid [" - + this.stubsConfiguration.artifactId + "] at [" + log.debug("Stored the mappings for artifactid [" + this.stubsConfiguration.artifactId + "] at [" + outputMappings + "] location"); } } @@ -126,8 +116,7 @@ public class StubRunner implements StubRunning { for (final File file : files) { if (!file.delete()) { if (log.isDebugEnabled()) { - log.debug("Exception occurred while trying to remove [" - + file.getAbsolutePath() + "]"); + log.debug("Exception occurred while trying to remove [" + file.getAbsolutePath() + "]"); } } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerExecutor.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerExecutor.java index 161b8cc006..d05767254b 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerExecutor.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerExecutor.java @@ -51,8 +51,7 @@ import org.springframework.cloud.contract.verifier.util.BodyExtractor; */ class StubRunnerExecutor implements StubFinder { - static final Set STUB_SERVERS = Collections - .synchronizedSet(new HashSet<>()); + static final Set STUB_SERVERS = Collections.synchronizedSet(new HashSet<>()); private static final Log log = LogFactory.getLog(StubRunnerExecutor.class); @@ -66,16 +65,14 @@ class StubRunnerExecutor implements StubFinder { private final YamlContractConverter yamlContractConverter = new YamlContractConverter(); - StubRunnerExecutor(AvailablePortScanner portScanner, - MessageVerifier contractVerifierMessaging, + StubRunnerExecutor(AvailablePortScanner portScanner, MessageVerifier contractVerifierMessaging, List serverStubs) { this.portScanner = portScanner; this.contractVerifierMessaging = contractVerifierMessaging; this.serverStubs = serverStubs; } - StubRunnerExecutor(AvailablePortScanner portScanner, - List serverStubs) { + StubRunnerExecutor(AvailablePortScanner portScanner, List serverStubs) { this(portScanner, new NoOpStubMessages(), serverStubs); } @@ -83,12 +80,12 @@ class StubRunnerExecutor implements StubFinder { this(portScanner, new NoOpStubMessages(), new ArrayList<>()); } - public RunningStubs runStubs(StubRunnerOptions stubRunnerOptions, - StubRepository repository, StubConfiguration stubConfiguration) { + public RunningStubs runStubs(StubRunnerOptions stubRunnerOptions, StubRepository repository, + StubConfiguration stubConfiguration) { if (this.stubServer != null) { if (log.isDebugEnabled()) { - log.debug("Returning cached version of stubs [" - + stubConfiguration.toColonSeparatedDependencyNotation() + "]"); + log.debug("Returning cached version of stubs [" + stubConfiguration.toColonSeparatedDependencyNotation() + + "]"); } return runningStubs(); } @@ -101,8 +98,8 @@ class StubRunnerExecutor implements StubFinder { } private RunningStubs runningStubs() { - return new RunningStubs(Collections.singletonMap( - this.stubServer.getStubConfiguration(), this.stubServer.getPort())); + return new RunningStubs( + Collections.singletonMap(this.stubServer.getStubConfiguration(), this.stubServer.getPort())); } public void shutdown() { @@ -119,13 +116,11 @@ class StubRunnerExecutor implements StubFinder { public URL findStubUrl(String groupId, String artifactId) { URL url = null; if (groupId == null) { - url = findStubUrl( - this.stubServer.stubConfiguration.artifactId.equals(artifactId)); + url = findStubUrl(this.stubServer.stubConfiguration.artifactId.equals(artifactId)); } if (url == null) { - url = findStubUrl( - this.stubServer.stubConfiguration.artifactId.equals(artifactId) - && this.stubServer.stubConfiguration.groupId.equals(groupId)); + url = findStubUrl(this.stubServer.stubConfiguration.artifactId.equals(artifactId) + && this.stubServer.stubConfiguration.groupId.equals(groupId)); } if (url == null) { throw new StubNotFoundException(groupId, artifactId); @@ -137,8 +132,8 @@ class StubRunnerExecutor implements StubFinder { public URL findStubUrl(String ivyNotation) { String[] splitString = ivyNotation.split(":", -1); if (splitString.length > 4) { - throw new IllegalArgumentException("[" + ivyNotation - + "] is an invalid notation. Pass [groupId]:artifactId[:version][:classifier]."); + throw new IllegalArgumentException( + "[" + ivyNotation + "] is an invalid notation. Pass [groupId]:artifactId[:version][:classifier]."); } else if (splitString.length == 1) { return findStubUrl(null, splitString[0]); @@ -149,8 +144,7 @@ class StubRunnerExecutor implements StubFinder { else if (splitString.length == 3) { return findStubUrl(groupIdArtifactVersionMatches(splitString)); } - return findStubUrl(groupIdArtifactVersionMatches(splitString) - && classifierMatches(splitString)); + return findStubUrl(groupIdArtifactVersionMatches(splitString) && classifierMatches(splitString)); } private boolean classifierMatches(String[] splitString) { @@ -169,21 +163,18 @@ class StubRunnerExecutor implements StubFinder { @Override public RunningStubs findAllRunningStubs() { - return new RunningStubs(Collections.singletonMap( - this.stubServer.stubConfiguration, this.stubServer.getPort())); + return new RunningStubs(Collections.singletonMap(this.stubServer.stubConfiguration, this.stubServer.getPort())); } @Override public Map> getContracts() { - return Collections.singletonMap(this.stubServer.stubConfiguration, - this.stubServer.getContracts()); + return Collections.singletonMap(this.stubServer.stubConfiguration, this.stubServer.getContracts()); } @Override public boolean trigger(String ivyNotationAsString, String labelName) { Collection matchingContracts = new ArrayList<>(); - for (Entry> it : getContracts() - .entrySet()) { + for (Entry> it : getContracts().entrySet()) { if (it.getKey().groupIdAndArtifactMatches(ivyNotationAsString)) { matchingContracts.addAll(it.getValue()); } @@ -203,8 +194,7 @@ class StubRunnerExecutor implements StubFinder { private boolean triggerForDsls(Collection dsls, String labelName) { Collection matchingDsls = new ArrayList<>(); for (Contract contract : dsls) { - if (labelName.equals(contract.getLabel()) - && contract.getOutputMessage() != null) { + if (labelName.equals(contract.getLabel()) && contract.getOutputMessage() != null) { matchingDsls.add(contract); } } @@ -239,8 +229,7 @@ class StubRunnerExecutor implements StubFinder { @Override public Map> labels() { Map> labels = new LinkedHashMap<>(); - for (Entry> it : getContracts() - .entrySet()) { + for (Entry> it : getContracts().entrySet()) { Collection values = new ArrayList<>(); for (Contract contract : it.getValue()) { if (contract.getLabel() != null) { @@ -256,20 +245,17 @@ class StubRunnerExecutor implements StubFinder { OutputMessage outputMessage = groovyDsl.getOutputMessage(); DslProperty body = outputMessage.getBody(); Headers headers = outputMessage.getHeaders(); - List yamlContracts = yamlContractConverter - .convertTo(Collections.singleton(groovyDsl)); + List yamlContracts = yamlContractConverter.convertTo(Collections.singleton(groovyDsl)); YamlContract contract = yamlContracts.get(0); setMessageType(contract, ContractVerifierMessageMetadata.MessageType.OUTPUT); // TODO: Json is harcoded here this.contractVerifierMessaging.send( - JsonOutput.toJson(BodyExtractor.extractClientValueFromBody( - body == null ? null : body.getClientValue())), - headers == null ? null : headers.asStubSideMap(), - outputMessage.getSentTo().getClientValue(), contract); + JsonOutput + .toJson(BodyExtractor.extractClientValueFromBody(body == null ? null : body.getClientValue())), + headers == null ? null : headers.asStubSideMap(), outputMessage.getSentTo().getClientValue(), contract); } - private void setMessageType(YamlContract contract, - ContractVerifierMessageMetadata.MessageType output) { + private void setMessageType(YamlContract contract, ContractVerifierMessageMetadata.MessageType output) { contract.metadata.put(ContractVerifierMessageMetadata.METADATA_KEY, new ContractVerifierMessageMetadata(output)); } @@ -278,39 +264,35 @@ class StubRunnerExecutor implements StubFinder { return condition ? this.stubServer.getStubUrl() : null; } - private StubServer startStubServers(HttpServerStubConfigurer configurer, - final StubRunnerOptions stubRunnerOptions, + private StubServer startStubServers(HttpServerStubConfigurer configurer, final StubRunnerOptions stubRunnerOptions, final StubConfiguration stubConfiguration, StubRepository repository) { final List mappings = repository.getStubs(); final Collection contracts = repository.contracts; Integer port = stubRunnerOptions.port(stubConfiguration); boolean randomPort = randomPort(port); - HttpServerStubConfiguration configuration = new HttpServerStubConfiguration( - configurer, stubRunnerOptions, stubConfiguration, port, randomPort); + HttpServerStubConfiguration configuration = new HttpServerStubConfiguration(configurer, stubRunnerOptions, + stubConfiguration, port, randomPort); if (!hasRequest(contracts) && mappings.isEmpty()) { if (log.isDebugEnabled()) { log.debug("There are no HTTP related contracts. Won't start any servers"); } - this.stubServer = new StubServer(stubConfiguration, mappings, contracts, - new NoOpHttpServerStub()).start(configuration); + this.stubServer = new StubServer(stubConfiguration, mappings, contracts, new NoOpHttpServerStub()) + .start(configuration); return this.stubServer; } if (!randomPort) { - this.stubServer = new StubServer(stubConfiguration, mappings, contracts, - httpServerStub()).start(configuration); + this.stubServer = new StubServer(stubConfiguration, mappings, contracts, httpServerStub()) + .start(configuration); } else { - this.stubServer = this.portScanner - .tryToExecuteWithFreePort(new PortCallback() { - @Override - public StubServer call(int availablePort) { - return new StubServer(stubConfiguration, mappings, contracts, - httpServerStub()).start( - new HttpServerStubConfiguration(configurer, - stubRunnerOptions, stubConfiguration, - availablePort, true)); - } - }); + this.stubServer = this.portScanner.tryToExecuteWithFreePort(new PortCallback() { + @Override + public StubServer call(int availablePort) { + return new StubServer(stubConfiguration, mappings, contracts, httpServerStub()) + .start(new HttpServerStubConfiguration(configurer, stubRunnerOptions, stubConfiguration, + availablePort, true)); + } + }); } STUB_SERVERS.add(this.stubServer); return this.stubServer; diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerFactory.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerFactory.java index 5ff6543531..9ee4592688 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerFactory.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerFactory.java @@ -60,22 +60,18 @@ class StubRunnerFactory { public Collection createStubsFromServiceConfiguration() { if (log.isDebugEnabled()) { - log.debug("Will download stubs for dependencies " - + this.stubRunnerOptions.getDependencies()); + log.debug("Will download stubs for dependencies " + this.stubRunnerOptions.getDependencies()); } if (this.stubRunnerOptions.getDependencies().isEmpty()) { - log.warn( - "No stubs to download have been passed. Most likely you have forgotten to pass " - + "them either via annotation or a property"); + log.warn("No stubs to download have been passed. Most likely you have forgotten to pass " + + "them either via annotation or a property"); } Collection result = new ArrayList<>(); - for (StubConfiguration stubsConfiguration : this.stubRunnerOptions - .getDependencies()) { - Map.Entry entry = this.stubDownloader - .downloadAndUnpackStubJar(stubsConfiguration); + for (StubConfiguration stubsConfiguration : this.stubRunnerOptions.getDependencies()) { + Map.Entry entry = this.stubDownloader.downloadAndUnpackStubJar(stubsConfiguration); if (log.isDebugEnabled()) { - log.debug("For stub configuration [" + stubsConfiguration - + "] the downloaded entry is [" + entry + "]"); + log.debug( + "For stub configuration [" + stubsConfiguration + "] the downloaded entry is [" + entry + "]"); } if (entry != null) { Path path = resolvePath(entry.getValue()); @@ -122,8 +118,7 @@ class StubRunnerFactory { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { - Collection stubGenerators = this.provider - .converterForName(file.toString()); + Collection stubGenerators = this.provider.converterForName(file.toString()); if (!stubGenerators.isEmpty()) { if (log.isDebugEnabled()) { log.debug("Deleting file [" + file.toString() @@ -133,8 +128,7 @@ class StubRunnerFactory { Files.delete(file); } catch (IOException ex) { - log.warn("Failed to delete file [" + file.toString() + "]", - ex); + log.warn("Failed to delete file [" + file.toString() + "]", ex); } } return FileVisitResult.CONTINUE; @@ -149,9 +143,8 @@ class StubRunnerFactory { private void generateNewMappings(Path path) { File unpackedLocation = path.toFile(); RecursiveFilesConverter converter = new RecursiveFilesConverter( - subfolderIfPresent(unpackedLocation, "mappings"), - subfolderIfPresent(unpackedLocation, "contracts"), new ArrayList<>(), - ".*", false); + subfolderIfPresent(unpackedLocation, "mappings"), subfolderIfPresent(unpackedLocation, "contracts"), + new ArrayList<>(), ".*", false); converter.processFiles(); } @@ -163,19 +156,17 @@ class StubRunnerFactory { return unpackedLocation; } - private StubRunner createStubRunner(StubConfiguration stubsConfiguration, - File unzipedStubDir) { + private StubRunner createStubRunner(StubConfiguration stubsConfiguration, File unzipedStubDir) { if (unzipedStubDir == null) { return null; } - return createStubRunner(unzipedStubDir, stubsConfiguration, - this.stubRunnerOptions); + return createStubRunner(unzipedStubDir, stubsConfiguration, this.stubRunnerOptions); } - private StubRunner createStubRunner(File unzippedStubsDir, - StubConfiguration stubsConfiguration, StubRunnerOptions stubRunnerOptions) { - return new StubRunner(stubRunnerOptions, unzippedStubsDir.getPath(), - stubsConfiguration, this.contractVerifierMessaging); + private StubRunner createStubRunner(File unzippedStubsDir, StubConfiguration stubsConfiguration, + StubRunnerOptions stubRunnerOptions) { + return new StubRunner(stubRunnerOptions, unzippedStubsDir.getPath(), stubsConfiguration, + this.contractVerifierMessaging); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerMain.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerMain.java index 9b975bde5c..cde2b2a566 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerMain.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerMain.java @@ -43,51 +43,45 @@ public class StubRunnerMain { private StubRunnerMain(String[] args) throws Exception { OptionParser parser = new OptionParser(); try { - ArgumentAcceptingOptionSpec minPortValueOpt = parser.acceptsAll( - Arrays.asList("minp", "minPort"), - "Minimum port value to be assigned to the WireMock instance. Defaults to 10000") + ArgumentAcceptingOptionSpec minPortValueOpt = parser + .acceptsAll(Arrays.asList("minp", "minPort"), + "Minimum port value to be assigned to the WireMock instance. Defaults to 10000") .withRequiredArg().ofType(Integer.class).defaultsTo(10000); - ArgumentAcceptingOptionSpec maxPortValueOpt = parser.acceptsAll( - Arrays.asList("maxp", "maxPort"), - "Maximum port value to be assigned to the WireMock instance. Defaults to 15000") + ArgumentAcceptingOptionSpec maxPortValueOpt = parser + .acceptsAll(Arrays.asList("maxp", "maxPort"), + "Maximum port value to be assigned to the WireMock instance. Defaults to 15000") .withRequiredArg().ofType(Integer.class).defaultsTo(15000); - ArgumentAcceptingOptionSpec stubsOpt = parser.acceptsAll( - Arrays.asList("s", "stubs"), - "Comma separated list of Ivy representation " - + "of jars with stubs. Eg. groupid:artifactid1,groupid2:artifactid2:classifier") + ArgumentAcceptingOptionSpec stubsOpt = parser + .acceptsAll(Arrays.asList("s", "stubs"), + "Comma separated list of Ivy representation " + + "of jars with stubs. Eg. groupid:artifactid1,groupid2:artifactid2:classifier") .withRequiredArg(); - ArgumentAcceptingOptionSpec classifierOpt = parser.acceptsAll( - Arrays.asList("c", "classifier"), - "Suffix for the jar containing stubs (e.g. 'stubs' " + ArgumentAcceptingOptionSpec classifierOpt = parser + .acceptsAll(Arrays.asList("c", "classifier"), "Suffix for the jar containing stubs (e.g. 'stubs' " + "if the stub jar would have a 'stubs' classifier for stubs: foobar-stubs ). Defaults to 'stubs'") .withRequiredArg().defaultsTo("stubs"); - ArgumentAcceptingOptionSpec rootOpt = parser.acceptsAll( - Arrays.asList("r", "root"), - "Location of a Jar containing server where you keep " - + "your stubs (e.g. https://nexus.net/content/repositories/repository)") + ArgumentAcceptingOptionSpec rootOpt = parser + .acceptsAll(Arrays.asList("r", "root"), + "Location of a Jar containing server where you keep " + + "your stubs (e.g. https://nexus.net/content/repositories/repository)") .withRequiredArg(); ArgumentAcceptingOptionSpec usernameOpt = parser - .acceptsAll(Arrays.asList("u", "username"), - "Username to user when connecting to repository") + .acceptsAll(Arrays.asList("u", "username"), "Username to user when connecting to repository") .withOptionalArg(); ArgumentAcceptingOptionSpec passwordOpt = parser - .acceptsAll(Arrays.asList("p", "password"), - "Password to user when connecting to repository") + .acceptsAll(Arrays.asList("p", "password"), "Password to user when connecting to repository") .withOptionalArg(); ArgumentAcceptingOptionSpec proxyHostOpt = parser - .acceptsAll(Arrays.asList("phost", "proxyHost"), - "Proxy host to use for repository requests") + .acceptsAll(Arrays.asList("phost", "proxyHost"), "Proxy host to use for repository requests") .withOptionalArg(); ArgumentAcceptingOptionSpec proxyPortOpt = parser - .acceptsAll(Arrays.asList("pport", "proxyPort"), - "Proxy port to use for repository requests") + .acceptsAll(Arrays.asList("pport", "proxyPort"), "Proxy port to use for repository requests") .withOptionalArg().ofType(Integer.class); ArgumentAcceptingOptionSpec stubsMode = parser .acceptsAll(Arrays.asList("sm", "stubsMode"), - "Stubs mode to be used. Acceptable values " + Arrays - .toString(StubRunnerProperties.StubsMode.values())) - .withRequiredArg() - .defaultsTo(StubRunnerProperties.StubsMode.CLASSPATH.toString()); + "Stubs mode to be used. Acceptable values " + + Arrays.toString(StubRunnerProperties.StubsMode.values())) + .withRequiredArg().defaultsTo(StubRunnerProperties.StubsMode.CLASSPATH.toString()); OptionSet options = parser.parse(args); String stubs = options.valueOf(stubsOpt); StubRunnerProperties.StubsMode stubsModeValue = StubRunnerProperties.StubsMode @@ -101,10 +95,9 @@ public class StubRunnerMain { final String proxyHost = options.valueOf(proxyHostOpt); final Integer proxyPort = options.valueOf(proxyPortOpt); final StubRunnerOptionsBuilder builder = new StubRunnerOptionsBuilder() - .withMinMaxPort(minPortValue, maxPortValue) - .withStubRepositoryRoot(stubRepositoryRoot) - .withStubsMode(stubsModeValue).withStubsClassifier(stubsSuffix) - .withUsername(username).withPassword(password).withStubs(stubs); + .withMinMaxPort(minPortValue, maxPortValue).withStubRepositoryRoot(stubRepositoryRoot) + .withStubsMode(stubsModeValue).withStubsClassifier(stubsSuffix).withUsername(username) + .withPassword(password).withStubs(stubs); if (proxyHost != null) { builder.withProxy(proxyHost, proxyPort); } @@ -126,8 +119,7 @@ public class StubRunnerMain { System.err.println("java -jar stub-runner.jar [options...] "); parser.printHelpOn(System.err); System.err.println(); - System.err.println( - "Example: java -jar stub-runner.jar ${parser.printExample(ALL)}"); + System.err.println("Example: java -jar stub-runner.jar ${parser.printExample(ALL)}"); } private void execute() { @@ -136,8 +128,8 @@ public class StubRunnerMain { log.debug("Launching StubRunner with args: " + this.arguments); } // TODO: Pass StubsToRun either from String or File - BatchStubRunner stubRunner = new BatchStubRunnerFactory( - this.arguments.getStubRunnerOptions()).buildBatchStubRunner(); + BatchStubRunner stubRunner = new BatchStubRunnerFactory(this.arguments.getStubRunnerOptions()) + .buildBatchStubRunner(); RunningStubs runningCollaborators = stubRunner.runStubs(); log.info(runningCollaborators.toString()); } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerOptions.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerOptions.java index 185b46507b..01bb5b4e89 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerOptions.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerOptions.java @@ -140,21 +140,17 @@ public class StubRunnerOptions { */ final String serverId; - StubRunnerOptions(Integer minPortValue, Integer maxPortValue, - Resource stubRepositoryRoot, StubRunnerProperties.StubsMode stubsMode, - String stubsClassifier, Collection dependencies, - Map stubIdsToPortMapping, String username, - String password, final StubRunnerProxyOptions stubRunnerProxyOptions, - boolean stubsPerConsumer, String consumerName, String mappingsOutputFolder, - boolean deleteStubsAfterTest, boolean generateStubs, boolean failOnNoStubs, - Map properties, - Class httpServerStubConfigurer, - String serverId) { + StubRunnerOptions(Integer minPortValue, Integer maxPortValue, Resource stubRepositoryRoot, + StubRunnerProperties.StubsMode stubsMode, String stubsClassifier, + Collection dependencies, Map stubIdsToPortMapping, + String username, String password, final StubRunnerProxyOptions stubRunnerProxyOptions, + boolean stubsPerConsumer, String consumerName, String mappingsOutputFolder, boolean deleteStubsAfterTest, + boolean generateStubs, boolean failOnNoStubs, Map properties, + Class httpServerStubConfigurer, String serverId) { this.minPortValue = minPortValue; this.maxPortValue = maxPortValue; this.stubRepositoryRoot = stubRepositoryRoot; - this.stubsMode = stubsMode != null ? stubsMode - : StubRunnerProperties.StubsMode.CLASSPATH; + this.stubsMode = stubsMode != null ? stubsMode : StubRunnerProperties.StubsMode.CLASSPATH; this.stubsClassifier = stubsClassifier; this.dependencies = dependencies; this.stubIdsToPortMapping = stubIdsToPortMapping; @@ -174,51 +170,39 @@ public class StubRunnerOptions { public static StubRunnerOptions fromSystemProps() { StubRunnerOptionsBuilder builder = new StubRunnerOptionsBuilder() - .withMinPort(Integer.valueOf( - System.getProperty("stubrunner.port.range.min", "10000"))) - .withMaxPort(Integer.valueOf( - System.getProperty("stubrunner.port.range.max", "15000"))) - .withStubRepositoryRoot(ResourceResolver - .resource(System.getProperty("stubrunner.repository.root", ""))) + .withMinPort(Integer.valueOf(System.getProperty("stubrunner.port.range.min", "10000"))) + .withMaxPort(Integer.valueOf(System.getProperty("stubrunner.port.range.max", "15000"))) + .withStubRepositoryRoot(ResourceResolver.resource(System.getProperty("stubrunner.repository.root", ""))) .withStubsMode(System.getProperty("stubrunner.stubs-mode", "LOCAL")) .withStubsClassifier(System.getProperty("stubrunner.classifier", "stubs")) .withStubs(System.getProperty("stubrunner.ids", "")) .withUsername(System.getProperty("stubrunner.username")) .withPassword(System.getProperty("stubrunner.password")) - .withStubPerConsumer(Boolean.parseBoolean( - System.getProperty("stubrunner.stubs-per-consumer", "false"))) + .withStubPerConsumer(Boolean.parseBoolean(System.getProperty("stubrunner.stubs-per-consumer", "false"))) .withConsumerName(System.getProperty("stubrunner.consumer-name")) - .withMappingsOutputFolder( - System.getProperty("stubrunner.mappings-output-folder")) - .withDeleteStubsAfterTest(Boolean.parseBoolean( - System.getProperty("stubrunner.delete-stubs-after-test", "true"))) - .withGenerateStubs(Boolean.parseBoolean( - System.getProperty("stubrunner.generate-stubs", "false"))) - .withFailOnNoStubs(Boolean.parseBoolean( - System.getProperty("stubrunner.fail-on-no-stubs", "false"))) - .withProperties(stubRunnerProps()) - .withServerId(System.getProperty("stubrunner.server-id", "")); + .withMappingsOutputFolder(System.getProperty("stubrunner.mappings-output-folder")) + .withDeleteStubsAfterTest( + Boolean.parseBoolean(System.getProperty("stubrunner.delete-stubs-after-test", "true"))) + .withGenerateStubs(Boolean.parseBoolean(System.getProperty("stubrunner.generate-stubs", "false"))) + .withFailOnNoStubs(Boolean.parseBoolean(System.getProperty("stubrunner.fail-on-no-stubs", "false"))) + .withProperties(stubRunnerProps()).withServerId(System.getProperty("stubrunner.server-id", "")); builder = httpStubConfigurer(builder); String proxyHost = System.getProperty("stubrunner.proxy.host"); if (proxyHost != null) { - builder.withProxy(proxyHost, - Integer.parseInt(System.getProperty("stubrunner.proxy.port"))); + builder.withProxy(proxyHost, Integer.parseInt(System.getProperty("stubrunner.proxy.port"))); } return builder.build(); } - private static StubRunnerOptionsBuilder httpStubConfigurer( - StubRunnerOptionsBuilder builder) { - String classProperty = System.getProperty( - "stubrunner.http-server-stub-configurer", + private static StubRunnerOptionsBuilder httpStubConfigurer(StubRunnerOptionsBuilder builder) { + String classProperty = System.getProperty("stubrunner.http-server-stub-configurer", HttpServerStubConfigurer.NoOpHttpServerStubConfigurer.class.getName()); try { Class clazz = Class.forName(classProperty); return builder.withHttpServerStubConfigurer(clazz); } catch (ClassNotFoundException ex) { - throw new IllegalStateException("Class [" + classProperty + "] not found", - ex); + throw new IllegalStateException("Class [" + classProperty + "] not found", ex); } } @@ -230,8 +214,7 @@ public class StubRunnerOptions { // stubrunner.properties.foo.bar=baz .filter(s -> s.toLowerCase().startsWith("stubrunner.properties")) // foo.bar=baz - .forEach(s -> map.put(s.substring("stubrunner.properties".length() + 1), - System.getProperty(s))); + .forEach(s -> map.put(s.substring("stubrunner.properties".length() + 1), System.getProperty(s))); return map; } @@ -373,17 +356,14 @@ public class StubRunnerOptions { @Override public String toString() { - return "StubRunnerOptions{" + "minPortValue=" + this.minPortValue - + ", maxPortValue=" + this.maxPortValue + ", stubRepositoryRoot='" - + this.stubRepositoryRoot + '\'' + ", stubsMode='" + this.stubsMode - + "', stubsClassifier='" + this.stubsClassifier + '\'' + ", dependencies=" - + this.dependencies + ", stubIdsToPortMapping=" - + this.stubIdsToPortMapping + ", username='" + obfuscate(this.username) - + '\'' + ", password='" + obfuscate(this.password) + '\'' - + ", stubRunnerProxyOptions='" + this.stubRunnerProxyOptions - + "', stubsPerConsumer='" + this.stubsPerConsumer + '\'' - + ", httpServerStubConfigurer='" + this.httpServerStubConfigurer + '\'' - + ", serverId='" + this.serverId + '\'' + '}'; + return "StubRunnerOptions{" + "minPortValue=" + this.minPortValue + ", maxPortValue=" + this.maxPortValue + + ", stubRepositoryRoot='" + this.stubRepositoryRoot + '\'' + ", stubsMode='" + this.stubsMode + + "', stubsClassifier='" + this.stubsClassifier + '\'' + ", dependencies=" + this.dependencies + + ", stubIdsToPortMapping=" + this.stubIdsToPortMapping + ", username='" + obfuscate(this.username) + + '\'' + ", password='" + obfuscate(this.password) + '\'' + ", stubRunnerProxyOptions='" + + this.stubRunnerProxyOptions + "', stubsPerConsumer='" + this.stubsPerConsumer + '\'' + + ", httpServerStubConfigurer='" + this.httpServerStubConfigurer + '\'' + ", serverId='" + this.serverId + + '\'' + '}'; } private String obfuscate(String string) { @@ -414,8 +394,8 @@ public class StubRunnerOptions { @Override public String toString() { - return "StubRunnerProxyOptions{" + "proxyHost='" + this.proxyHost + '\'' - + ", proxyPort=" + this.proxyPort + '}'; + return "StubRunnerProxyOptions{" + "proxyHost='" + this.proxyHost + '\'' + ", proxyPort=" + this.proxyPort + + '}'; } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerOptionsBuilder.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerOptionsBuilder.java index e8db091968..b43477f7f1 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerOptionsBuilder.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerOptionsBuilder.java @@ -93,8 +93,7 @@ public class StubRunnerOptionsBuilder { list.addAll(StringUtils.commaDelimitedListToSet(stubIdsToPortMapping[0])); return list; } - else if (stubIdsToPortMapping.length == 1 - && containsRange(stubIdsToPortMapping[0])) { + else if (stubIdsToPortMapping.length == 1 && containsRange(stubIdsToPortMapping[0])) { LinkedList linkedList = new LinkedList<>(); String[] split = stubIdsToPortMapping[0].split(","); for (String string : split) { @@ -133,8 +132,7 @@ public class StubRunnerOptionsBuilder { return this; } - public StubRunnerOptionsBuilder withMinMaxPort(Integer minPortValue, - Integer maxPortValue) { + public StubRunnerOptionsBuilder withMinMaxPort(Integer minPortValue, Integer maxPortValue) { this.minPortValue = minPortValue; this.maxPortValue = maxPortValue; return this; @@ -162,8 +160,7 @@ public class StubRunnerOptionsBuilder { return this; } - public StubRunnerOptionsBuilder withStubsMode( - StubRunnerProperties.StubsMode stubsMode) { + public StubRunnerOptionsBuilder withStubsMode(StubRunnerProperties.StubsMode stubsMode) { if (stubsMode == null) { return this; } @@ -202,10 +199,9 @@ public class StubRunnerOptionsBuilder { this.stubsPerConsumer = options.isStubsPerConsumer(); this.consumerName = options.getConsumerName(); this.mappingsOutputFolder = options.getMappingsOutputFolder(); - this.stubConfigurations = options.dependencies != null ? options.dependencies - : new ArrayList<>(); - this.stubIdsToPortMapping = options.stubIdsToPortMapping != null - ? options.stubIdsToPortMapping : new LinkedHashMap<>(); + this.stubConfigurations = options.dependencies != null ? options.dependencies : new ArrayList<>(); + this.stubIdsToPortMapping = options.stubIdsToPortMapping != null ? options.stubIdsToPortMapping + : new LinkedHashMap<>(); this.deleteStubsAfterTest = options.isDeleteStubsAfterTest(); this.generateStubs = options.isGenerateStubs(); this.failOnNoStubs = options.isFailOnNoStubs(); @@ -215,14 +211,12 @@ public class StubRunnerOptionsBuilder { return this; } - public StubRunnerOptionsBuilder withMappingsOutputFolder( - String mappingsOutputFolder) { + public StubRunnerOptionsBuilder withMappingsOutputFolder(String mappingsOutputFolder) { this.mappingsOutputFolder = mappingsOutputFolder; return this; } - public StubRunnerOptionsBuilder withDeleteStubsAfterTest( - boolean deleteStubsAfterTest) { + public StubRunnerOptionsBuilder withDeleteStubsAfterTest(boolean deleteStubsAfterTest) { this.deleteStubsAfterTest = deleteStubsAfterTest; return this; } @@ -242,8 +236,7 @@ public class StubRunnerOptionsBuilder { return this; } - public StubRunnerOptionsBuilder withHttpServerStubConfigurer( - Class httpServerStubConfigurer) { + public StubRunnerOptionsBuilder withHttpServerStubConfigurer(Class httpServerStubConfigurer) { this.httpServerStubConfigurer = httpServerStubConfigurer; return this; } @@ -254,18 +247,15 @@ public class StubRunnerOptionsBuilder { } public StubRunnerOptions build() { - return new StubRunnerOptions(this.minPortValue, this.maxPortValue, - this.stubRepositoryRoot, this.stubsMode, this.stubsClassifier, - buildDependencies(), this.stubIdsToPortMapping, this.username, - this.password, this.stubRunnerProxyOptions, this.stubsPerConsumer, - this.consumerName, this.mappingsOutputFolder, this.deleteStubsAfterTest, - this.generateStubs, this.failOnNoStubs, this.properties, + return new StubRunnerOptions(this.minPortValue, this.maxPortValue, this.stubRepositoryRoot, this.stubsMode, + this.stubsClassifier, buildDependencies(), this.stubIdsToPortMapping, this.username, this.password, + this.stubRunnerProxyOptions, this.stubsPerConsumer, this.consumerName, this.mappingsOutputFolder, + this.deleteStubsAfterTest, this.generateStubs, this.failOnNoStubs, this.properties, this.httpServerStubConfigurer, this.serverId); } private Collection buildDependencies() { - List stubConfigurations = StubsParser.fromString(this.stubs, - this.stubsClassifier); + List stubConfigurations = StubsParser.fromString(this.stubs, this.stubsClassifier); this.stubConfigurations.addAll(stubConfigurations); return this.stubConfigurations; } @@ -290,8 +280,7 @@ public class StubRunnerOptionsBuilder { putStubIdsToPortMapping(StubsParser.fromStringWithPort(notation)); } - private void putStubIdsToPortMapping( - Map stubIdsToPortMapping) { + private void putStubIdsToPortMapping(Map stubIdsToPortMapping) { this.stubIdsToPortMapping.putAll(stubIdsToPortMapping); } @@ -305,10 +294,8 @@ public class StubRunnerOptionsBuilder { return this; } - public StubRunnerOptionsBuilder withProxy(final String proxyHost, - final int proxyPort) { - this.stubRunnerProxyOptions = new StubRunnerOptions.StubRunnerProxyOptions( - proxyHost, proxyPort); + public StubRunnerOptionsBuilder withProxy(final String proxyHost, final int proxyPort) { + this.stubRunnerProxyOptions = new StubRunnerOptions.StubRunnerProxyOptions(proxyHost, proxyPort); return this; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerPropertyUtils.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerPropertyUtils.java index 1b29867028..6b9e437e6d 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerPropertyUtils.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerPropertyUtils.java @@ -73,8 +73,7 @@ public final class StubRunnerPropertyUtils { if (options != null && options.containsKey(propName)) { String value = options.get(propName); if (log.isTraceEnabled()) { - log.trace("Options map contains the prop [" + propName + "] with value [" - + value + "]"); + log.trace("Options map contains the prop [" + propName + "] with value [" + value + "]"); } return value; } @@ -92,17 +91,14 @@ public final class StubRunnerPropertyUtils { String systemProp = FETCHER.systemProp(stubRunnerProp); if (StringUtils.hasText(systemProp)) { if (log.isTraceEnabled()) { - log.trace("System property [" + stubRunnerProp + "] has value [" - + systemProp + "]"); + log.trace("System property [" + stubRunnerProp + "] has value [" + systemProp + "]"); } return systemProp; } - String convertedEnvProp = stubRunnerProp.replaceAll("\\.", "_") - .replaceAll("-", "_").toUpperCase(); + String convertedEnvProp = stubRunnerProp.replaceAll("\\.", "_").replaceAll("-", "_").toUpperCase(); String envVar = FETCHER.envVar(convertedEnvProp); if (log.isTraceEnabled()) { - log.trace("Environment variable [" + convertedEnvProp + "] has value [" - + envVar + "]"); + log.trace("Environment variable [" + convertedEnvProp + "] has value [" + envVar + "]"); } return envVar; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubServer.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubServer.java index 3c5b541e8d..fc4982b0c2 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubServer.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubServer.java @@ -39,8 +39,8 @@ class StubServer { private final HttpServerStub httpServerStub; - StubServer(StubConfiguration stubConfiguration, Collection mappings, - Collection contracts, HttpServerStub httpServerStub) { + StubServer(StubConfiguration stubConfiguration, Collection mappings, Collection contracts, + HttpServerStub httpServerStub) { this.stubConfiguration = stubConfiguration; this.mappings = mappings; this.httpServerStub = httpServerStub; @@ -54,10 +54,8 @@ class StubServer { private StubServer stubServer() { this.httpServerStub.registerMappings(this.mappings); - log.info("Started stub server for project [" - + this.stubConfiguration.toColonSeparatedDependencyNotation() - + "] on port " + this.httpServerStub.port() + " with [" - + this.mappings.size() + "] mappings"); + log.info("Started stub server for project [" + this.stubConfiguration.toColonSeparatedDependencyNotation() + + "] on port " + this.httpServerStub.port() + " with [" + this.mappings.size() + "] mappings"); if (this.mappings.isEmpty() && getPort() != -1) { log.warn( "There are no HTTP mappings registered, if your contracts are not messaging based then something went wrong"); @@ -81,8 +79,7 @@ class StubServer { int httpsPort = this.httpServerStub.httpsPort(); int httpPort = this.httpServerStub.port(); if (log.isDebugEnabled()) { - log.debug("Ports for this server are https [" + httpsPort + "] and http [" - + httpPort + "]"); + log.debug("Ports for this server are https [" + httpsPort + "] and http [" + httpPort + "]"); } return httpsPort != -1 ? httpsPort : httpPort; } @@ -100,8 +97,7 @@ class StubServer { public URL getStubUrl() { try { - return new URL( - (hasHttps() ? "https:" : "http:") + "//localhost:" + getPort()); + return new URL((hasHttps() ? "https:" : "http:") + "//localhost:" + getPort()); } catch (MalformedURLException e) { throw new IllegalStateException("Cannot parse URL", e); @@ -144,8 +140,8 @@ class StubServer { @Override public String toString() { - return "StubServer{" + "stubConfiguration=" + this.stubConfiguration - + ", mappingsSize=" + this.mappings.size() + '}'; + return "StubServer{" + "stubConfiguration=" + this.stubConfiguration + ", mappingsSize=" + this.mappings.size() + + '}'; } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/TemporaryFileStorage.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/TemporaryFileStorage.java index 73e4a449bb..abb3c892a1 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/TemporaryFileStorage.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/TemporaryFileStorage.java @@ -47,8 +47,7 @@ final class TemporaryFileStorage { * we're creating a bounded in-memory storage of unpacked files and later we register * a shutdown hook to remove all these files. */ - private static final BlockingQueue TEMP_FILES_LOG = new LinkedBlockingQueue<>( - 20_000); + private static final BlockingQueue TEMP_FILES_LOG = new LinkedBlockingQueue<>(20_000); private TemporaryFileStorage() { throw new IllegalStateException("Can't instantiate a utility class"); @@ -72,8 +71,7 @@ final class TemporaryFileStorage { if (file.isDirectory()) { Files.walkFileTree(file.toPath(), new SimpleFileVisitor() { @Override - public FileVisitResult visitFile(Path file, - BasicFileAttributes attrs) throws IOException { + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { if (log.isTraceEnabled()) { log.trace("Removing file [" + file + "]"); } @@ -82,8 +80,7 @@ final class TemporaryFileStorage { } @Override - public FileVisitResult postVisitDirectory(Path dir, - IOException exc) throws IOException { + public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { if (log.isTraceEnabled()) { log.trace("Removing dir [" + dir + "]"); } @@ -117,9 +114,8 @@ final class TemporaryFileStorage { return tempDir; } } - throw new IllegalStateException("Failed to create directory within " - + TEMP_DIR_ATTEMPTS + " attempts (tried " + baseName + "0 to " + baseName - + (TEMP_DIR_ATTEMPTS - 1) + ")"); + throw new IllegalStateException("Failed to create directory within " + TEMP_DIR_ATTEMPTS + " attempts (tried " + + baseName + "0 to " + baseName + (TEMP_DIR_ATTEMPTS - 1) + ")"); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/ExceptionThrowingMessageVerifier.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/ExceptionThrowingMessageVerifier.java index c077ffa3d7..0b4f3b8abd 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/ExceptionThrowingMessageVerifier.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/ExceptionThrowingMessageVerifier.java @@ -36,8 +36,7 @@ class ExceptionThrowingMessageVerifier implements MessageVerifier { } @Override - public Object receive(String destination, long timeout, TimeUnit timeUnit, - YamlContract contract) { + public Object receive(String destination, long timeout, TimeUnit timeUnit, YamlContract contract) { throw new UnsupportedOperationException(EXCEPTION_MESSAGE); } @@ -47,8 +46,7 @@ class ExceptionThrowingMessageVerifier implements MessageVerifier { } @Override - public void send(Object payload, Map headers, String destination, - YamlContract contract) { + public void send(Object payload, Map headers, String destination, YamlContract contract) { throw new UnsupportedOperationException(EXCEPTION_MESSAGE); } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerExtension.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerExtension.java index d38b923d83..2fec1fa5ee 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerExtension.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerExtension.java @@ -51,8 +51,8 @@ import org.springframework.cloud.contract.verifier.messaging.MessageVerifier; * @author Olga Maciaszek-Sharma * @since 2.1.0 */ -public class StubRunnerExtension implements BeforeAllCallback, AfterAllCallback, - BeforeEachCallback, AfterEachCallback, StubFinder, StubRunnerExtensionOptions { +public class StubRunnerExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, + StubFinder, StubRunnerExtensionOptions { private static final String DELIMITER = ":"; @@ -121,8 +121,7 @@ public class StubRunnerExtension implements BeforeAllCallback, AfterAllCallback, } private void before() { - stubFinder(new BatchStubRunnerFactory(builder().build(), verifier()) - .buildBatchStubRunner()); + stubFinder(new BatchStubRunnerFactory(builder().build(), verifier()).buildBatchStubRunner()); stubFinder().runStubs(); } @@ -136,8 +135,7 @@ public class StubRunnerExtension implements BeforeAllCallback, AfterAllCallback, } @Override - public URL findStubUrl(String groupId, String artifactId) - throws StubNotFoundException { + public URL findStubUrl(String groupId, String artifactId) throws StubNotFoundException { return stubFinder().findStubUrl(groupId, artifactId); } @@ -160,8 +158,8 @@ public class StubRunnerExtension implements BeforeAllCallback, AfterAllCallback, public boolean trigger(String ivyNotation, String labelName) { boolean result = stubFinder().trigger(ivyNotation, labelName); if (!result) { - throw new IllegalStateException("Failed to trigger a message with notation [" - + ivyNotation + "] and label [" + labelName + "]"); + throw new IllegalStateException( + "Failed to trigger a message with notation [" + ivyNotation + "] and label [" + labelName + "]"); } return result; } @@ -170,8 +168,7 @@ public class StubRunnerExtension implements BeforeAllCallback, AfterAllCallback, public boolean trigger(String labelName) { boolean result = stubFinder().trigger(labelName); if (!result) { - throw new IllegalStateException( - "Failed to trigger a message with label [" + labelName + "]"); + throw new IllegalStateException("Failed to trigger a message with label [" + labelName + "]"); } return result; } @@ -227,24 +224,19 @@ public class StubRunnerExtension implements BeforeAllCallback, AfterAllCallback, } @Override - public PortStubRunnerExtension downloadStub(String groupId, String artifactId, - String version, String classifier) { - builder().withStubs(groupId + DELIMITER + artifactId + DELIMITER + version - + DELIMITER + classifier); + public PortStubRunnerExtension downloadStub(String groupId, String artifactId, String version, String classifier) { + builder().withStubs(groupId + DELIMITER + artifactId + DELIMITER + version + DELIMITER + classifier); return new PortStubRunnerExtension(this.delegate); } @Override - public PortStubRunnerExtension downloadLatestStub(String groupId, String artifactId, - String classifier) { - builder().withStubs(groupId + DELIMITER + artifactId + DELIMITER + LATEST_VERSION - + DELIMITER + classifier); + public PortStubRunnerExtension downloadLatestStub(String groupId, String artifactId, String classifier) { + builder().withStubs(groupId + DELIMITER + artifactId + DELIMITER + LATEST_VERSION + DELIMITER + classifier); return new PortStubRunnerExtension(this.delegate); } @Override - public PortStubRunnerExtension downloadStub(String groupId, String artifactId, - String version) { + public PortStubRunnerExtension downloadStub(String groupId, String artifactId, String version) { builder().withStubs(groupId + DELIMITER + artifactId + DELIMITER + version); return new PortStubRunnerExtension(this.delegate); } @@ -348,8 +340,7 @@ public class StubRunnerExtension implements BeforeAllCallback, AfterAllCallback, * * @since 1.2.0 */ - public static class PortStubRunnerExtension extends StubRunnerExtension - implements PortStubRunnerExtensionOptions { + public static class PortStubRunnerExtension extends StubRunnerExtension implements PortStubRunnerExtensionOptions { PortStubRunnerExtension(StubRunnerExtension delegate) { super(delegate); diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerExtensionOptions.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerExtensionOptions.java index 1e57018d45..aa288e0b8b 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerExtensionOptions.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerExtensionOptions.java @@ -78,8 +78,7 @@ interface StubRunnerExtensionOptions { * @param classifier classifier of the stub * @return the stub runner extension with ports */ - PortStubRunnerExtensionOptions downloadStub(String groupId, String artifactId, - String version, String classifier); + PortStubRunnerExtensionOptions downloadStub(String groupId, String artifactId, String version, String classifier); /** * @param groupId group id of the stub @@ -87,8 +86,7 @@ interface StubRunnerExtensionOptions { * @param classifier classifier of the stub * @return the stub runner extension with ports */ - PortStubRunnerExtensionOptions downloadLatestStub(String groupId, String artifactId, - String classifier); + PortStubRunnerExtensionOptions downloadLatestStub(String groupId, String artifactId, String classifier); /** * @param groupId group id of the stub @@ -96,8 +94,7 @@ interface StubRunnerExtensionOptions { * @param version version of the stub * @return the stub runner extension with ports */ - PortStubRunnerExtensionOptions downloadStub(String groupId, String artifactId, - String version); + PortStubRunnerExtensionOptions downloadStub(String groupId, String artifactId, String version); /** * @param groupId group id of the stub diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRule.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRule.java index 39c924bd48..bfd29cbbe0 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRule.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRule.java @@ -76,8 +76,7 @@ public class StubRunnerRule implements TestRule, StubFinder, StubRunnerRuleOptio } private void before() { - stubFinder(new BatchStubRunnerFactory(builder().build(), verifier()) - .buildBatchStubRunner()); + stubFinder(new BatchStubRunnerFactory(builder().build(), verifier()).buildBatchStubRunner()); StubRunnerRule.this.stubFinder().runStubs(); } }; @@ -120,24 +119,19 @@ public class StubRunnerRule implements TestRule, StubFinder, StubRunnerRuleOptio } @Override - public PortStubRunnerRule downloadStub(String groupId, String artifactId, - String version, String classifier) { - builder().withStubs(groupId + DELIMITER + artifactId + DELIMITER + version - + DELIMITER + classifier); + public PortStubRunnerRule downloadStub(String groupId, String artifactId, String version, String classifier) { + builder().withStubs(groupId + DELIMITER + artifactId + DELIMITER + version + DELIMITER + classifier); return new PortStubRunnerRule(this.delegate); } @Override - public PortStubRunnerRule downloadLatestStub(String groupId, String artifactId, - String classifier) { - builder().withStubs(groupId + DELIMITER + artifactId + DELIMITER + LATEST_VERSION - + DELIMITER + classifier); + public PortStubRunnerRule downloadLatestStub(String groupId, String artifactId, String classifier) { + builder().withStubs(groupId + DELIMITER + artifactId + DELIMITER + LATEST_VERSION + DELIMITER + classifier); return new PortStubRunnerRule(this.delegate); } @Override - public PortStubRunnerRule downloadStub(String groupId, String artifactId, - String version) { + public PortStubRunnerRule downloadStub(String groupId, String artifactId, String version) { builder().withStubs(groupId + DELIMITER + artifactId + DELIMITER + version); return new PortStubRunnerRule(this.delegate); } @@ -239,8 +233,8 @@ public class StubRunnerRule implements TestRule, StubFinder, StubRunnerRuleOptio public boolean trigger(String ivyNotation, String labelName) { boolean result = this.stubFinder().trigger(ivyNotation, labelName); if (!result) { - throw new IllegalStateException("Failed to trigger a message with notation [" - + ivyNotation + "] and label [" + labelName + "]"); + throw new IllegalStateException( + "Failed to trigger a message with notation [" + ivyNotation + "] and label [" + labelName + "]"); } return result; } @@ -249,8 +243,7 @@ public class StubRunnerRule implements TestRule, StubFinder, StubRunnerRuleOptio public boolean trigger(String labelName) { boolean result = this.stubFinder().trigger(labelName); if (!result) { - throw new IllegalStateException( - "Failed to trigger a message with label [" + labelName + "]"); + throw new IllegalStateException("Failed to trigger a message with label [" + labelName + "]"); } return result; } @@ -295,8 +288,7 @@ public class StubRunnerRule implements TestRule, StubFinder, StubRunnerRuleOptio * * @since 1.2.0 */ - public static class PortStubRunnerRule extends StubRunnerRule - implements PortStubRunnerRuleOptions { + public static class PortStubRunnerRule extends StubRunnerRule implements PortStubRunnerRuleOptions { PortStubRunnerRule(StubRunnerRule delegate) { super(delegate); diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleOptions.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleOptions.java index 95b97522c5..19d2761b21 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleOptions.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleOptions.java @@ -74,8 +74,7 @@ interface StubRunnerRuleOptions { * @param classifier classifier of the stub * @return the rule with port */ - PortStubRunnerRuleOptions downloadStub(String groupId, String artifactId, - String version, String classifier); + PortStubRunnerRuleOptions downloadStub(String groupId, String artifactId, String version, String classifier); /** * @param groupId group id of the stub @@ -83,8 +82,7 @@ interface StubRunnerRuleOptions { * @param classifier classifier of the stub * @return the rule with port */ - PortStubRunnerRuleOptions downloadLatestStub(String groupId, String artifactId, - String classifier); + PortStubRunnerRuleOptions downloadLatestStub(String groupId, String artifactId, String classifier); /** * @param groupId group id of the stub @@ -92,8 +90,7 @@ interface StubRunnerRuleOptions { * @param version version of the stub * @return the rule with port */ - PortStubRunnerRuleOptions downloadStub(String groupId, String artifactId, - String version); + PortStubRunnerRuleOptions downloadStub(String groupId, String artifactId, String version); /** * @param groupId group id of the stub @@ -170,7 +167,6 @@ interface StubRunnerRuleOptions { * @param httpServerStubConfigurer Configuration for an HTTP server stub * @return the rule */ - StubRunnerRule withHttpServerStubConfigurer( - Class httpServerStubConfigurer); + StubRunnerRule withHttpServerStubConfigurer(Class httpServerStubConfigurer); } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/camel/StubRunnerCamelConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/camel/StubRunnerCamelConfiguration.java index e3b18f34cd..b6ac1ffa07 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/camel/StubRunnerCamelConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/camel/StubRunnerCamelConfiguration.java @@ -46,8 +46,7 @@ import org.springframework.util.StringUtils; */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass(RoutesBuilder.class) -@ConditionalOnProperty(name = "stubrunner.camel.enabled", havingValue = "true", - matchIfMissing = true) +@ConditionalOnProperty(name = "stubrunner.camel.enabled", havingValue = "true", matchIfMissing = true) public class StubRunnerCamelConfiguration { static final String STUBRUNNER_DESTINATION_URL_HEADER_NAME = "STUBRUNNER_DESTINATION_URL"; @@ -57,31 +56,24 @@ public class StubRunnerCamelConfiguration { return new SpringRouteBuilder() { @Override public void configure() throws Exception { - Map> contracts = batchStubRunner - .getContracts(); - for (Map.Entry> entry : contracts - .entrySet()) { + Map> contracts = batchStubRunner.getContracts(); + for (Map.Entry> entry : contracts.entrySet()) { Collection value = entry.getValue(); MultiValueMap map = new LinkedMultiValueMap<>(); for (Contract dsl : value) { if (dsl == null) { continue; } - if (dsl.getInput() != null - && dsl.getInput().getMessageFrom() != null - && StringUtils.hasText(dsl.getInput().getMessageFrom() - .getClientValue())) { - String from = dsl.getInput().getMessageFrom() - .getClientValue(); + if (dsl.getInput() != null && dsl.getInput().getMessageFrom() != null + && StringUtils.hasText(dsl.getInput().getMessageFrom().getClientValue())) { + String from = dsl.getInput().getMessageFrom().getClientValue(); map.add(from, dsl); } } for (Map.Entry> entries : map.entrySet()) { - from(entries.getKey()) - .filter(new StubRunnerCamelPredicate(entries.getValue())) - .process(new StubRunnerCamelProcessor()) - .dynamicRouter(header( - StubRunnerCamelConfiguration.STUBRUNNER_DESTINATION_URL_HEADER_NAME)); + from(entries.getKey()).filter(new StubRunnerCamelPredicate(entries.getValue())) + .process(new StubRunnerCamelProcessor()).dynamicRouter( + header(StubRunnerCamelConfiguration.STUBRUNNER_DESTINATION_URL_HEADER_NAME)); } } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/camel/StubRunnerCamelPredicate.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/camel/StubRunnerCamelPredicate.java index dc1c125a4b..e92a4bc192 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/camel/StubRunnerCamelPredicate.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/camel/StubRunnerCamelPredicate.java @@ -67,8 +67,7 @@ class StubRunnerCamelPredicate implements Predicate { public boolean matches(Exchange exchange) { Contract contract = getContract(exchange.getMessage()); if (log.isDebugEnabled()) { - log.debug( - "For exchange [" + exchange + "] found contract [" + contract + "]"); + log.debug("For exchange [" + exchange + "] found contract [" + contract + "]"); } if (contract == null) { return false; @@ -91,14 +90,12 @@ class StubRunnerCamelPredicate implements Predicate { List unmatchedHeaders = headersMatch(message, groovyDsl); if (!unmatchedHeaders.isEmpty()) { if (log.isDebugEnabled()) { - log.debug("Contract [" + groovyDsl - + "] hasn't matched the following headers " + unmatchedHeaders); + log.debug("Contract [" + groovyDsl + "] hasn't matched the following headers " + unmatchedHeaders); } return null; } Object inputMessage = message.getBody(); - Object dslBody = MapConverter - .getStubSideValues(groovyDsl.getInput().getMessageBody()); + Object dslBody = MapConverter.getStubSideValues(groovyDsl.getInput().getMessageBody()); if (dslBody instanceof FromFileProperty) { if (log.isDebugEnabled()) { log.debug("Will compare file content"); @@ -110,19 +107,15 @@ class StubRunnerCamelPredicate implements Predicate { } else if (!(inputMessage instanceof byte[])) { if (log.isDebugEnabled()) { - log.debug( - "Contract provided byte comparison, but the input message is of type [" - + inputMessage.getClass() - + "]. Can't compare the two."); + log.debug("Contract provided byte comparison, but the input message is of type [" + + inputMessage.getClass() + "]. Can't compare the two."); } return null; } else { - boolean matches = Arrays.equals(property.asBytes(), - (byte[]) inputMessage); + boolean matches = Arrays.equals(property.asBytes(), (byte[]) inputMessage); if (log.isDebugEnabled() && !matches) { - log.debug( - "Contract provided byte comparison, but the byte arrays don't match"); + log.debug("Contract provided byte comparison, but the byte arrays don't match"); } return matches ? groovyDsl : null; } @@ -133,11 +126,9 @@ class StubRunnerCamelPredicate implements Predicate { return null; } - private boolean matchViaContent(Contract groovyDsl, Object inputMessage, - Object dslBody) { + private boolean matchViaContent(Contract groovyDsl, Object inputMessage, Object dslBody) { boolean matches; - ContentType type = ContentUtils.getClientContentType(inputMessage, - groovyDsl.getInput().getMessageHeaders()); + ContentType type = ContentUtils.getClientContentType(inputMessage, groovyDsl.getInput().getMessageHeaders()); if (type == ContentType.JSON) { BodyMatchers matchers = groovyDsl.getInput().getBodyMatchers(); matches = matchesForJsonPayload(groovyDsl, inputMessage, matchers, dslBody); @@ -156,22 +147,19 @@ class StubRunnerCamelPredicate implements Predicate { private void bodyUnmatchedLog(Object dslBody, boolean matches, Object pattern) { if (log.isDebugEnabled() && !matches) { - log.debug("Body was supposed to " + unmatchedText(pattern) - + " but the value is [" + dslBody.toString() + "]"); + log.debug("Body was supposed to " + unmatchedText(pattern) + " but the value is [" + dslBody.toString() + + "]"); } } - private boolean matchesForJsonPayload(Contract groovyDsl, Object inputMessage, - BodyMatchers matchers, Object dslBody) { - Object matchingInputMessage = JsonToJsonPathsConverter - .removeMatchingJsonPaths(dslBody, matchers); + private boolean matchesForJsonPayload(Contract groovyDsl, Object inputMessage, BodyMatchers matchers, + Object dslBody) { + Object matchingInputMessage = JsonToJsonPathsConverter.removeMatchingJsonPaths(dslBody, matchers); JsonPaths jsonPaths = JsonToJsonPathsConverter - .transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck( - matchingInputMessage); + .transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck(matchingInputMessage); DocumentContext parsedJson; try { - parsedJson = JsonPath - .parse(this.objectMapper.writeValueAsString(inputMessage)); + parsedJson = JsonPath.parse(this.objectMapper.writeValueAsString(inputMessage)); } catch (JsonProcessingException e) { throw new IllegalStateException("Cannot serialize to JSON", e); @@ -183,22 +171,19 @@ class StubRunnerCamelPredicate implements Predicate { } if (matchers != null && matchers.hasMatchers()) { for (BodyMatcher matcher : matchers.matchers()) { - String jsonPath = JsonToJsonPathsConverter - .convertJsonPathAndRegexToAJsonPath(matcher, dslBody); + String jsonPath = JsonToJsonPathsConverter.convertJsonPathAndRegexToAJsonPath(matcher, dslBody); matches &= matchesJsonPath(unmatchedJsonPath, parsedJson, jsonPath); } } if (!unmatchedJsonPath.isEmpty()) { if (log.isDebugEnabled()) { - log.debug("Contract [" + groovyDsl + "] didn't match the body due to " - + unmatchedJsonPath); + log.debug("Contract [" + groovyDsl + "] didn't match the body due to " + unmatchedJsonPath); } } return matches; } - private boolean matchesJsonPath(List unmatchedJsonPath, - DocumentContext parsedJson, String jsonPath) { + private boolean matchesJsonPath(List unmatchedJsonPath, DocumentContext parsedJson, String jsonPath) { try { JsonAssertion.assertThat(parsedJson).matchesJsonPath(jsonPath); return true; @@ -222,14 +207,11 @@ class StubRunnerCamelPredicate implements Predicate { matches = pattern.matcher(valueInHeader.toString()).matches(); } else { - matches = valueInHeader != null - && valueInHeader.toString().equals(value.toString()); + matches = valueInHeader != null && valueInHeader.toString().equals(value.toString()); } if (!matches) { - unmatchedHeaders.add("Header with name [" + name + "] was supposed to " - + unmatchedText(value) + " but the value is [" - + (valueInHeader != null ? valueInHeader.toString() : "null") - + "]"); + unmatchedHeaders.add("Header with name [" + name + "] was supposed to " + unmatchedText(value) + + " but the value is [" + (valueInHeader != null ? valueInHeader.toString() : "null") + "]"); } } return unmatchedHeaders; diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/camel/StubRunnerCamelProcessor.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/camel/StubRunnerCamelProcessor.java index 1d1bd28cf0..52b08473cb 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/camel/StubRunnerCamelProcessor.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/camel/StubRunnerCamelProcessor.java @@ -65,8 +65,7 @@ class StubRunnerCamelProcessor implements Processor { } private Object outputBody(Contract groovyDsl) { - Object outputBody = BodyExtractor - .extractClientValueFromBody(groovyDsl.getOutputMessage().getBody()); + Object outputBody = BodyExtractor.extractClientValueFromBody(groovyDsl.getOutputMessage().getBody()); if (outputBody instanceof FromFileProperty) { FromFileProperty property = (FromFileProperty) outputBody; return property.asBytes(); @@ -74,15 +73,13 @@ class StubRunnerCamelProcessor implements Processor { return BodyExtractor.extractStubValueFrom(outputBody); } - private void setStubRunnerDestinationHeader(Exchange exchange, - StubRunnerCamelPayload body) { + private void setStubRunnerDestinationHeader(Exchange exchange, StubRunnerCamelPayload body) { boolean outputPart = body.contract.getOutputMessage() != null; String url = DUMMY_BEAN_URL; if (outputPart && body.contract.getOutputMessage().getSentTo() != null) { url = body.contract.getOutputMessage().getSentTo().getClientValue(); } - exchange.getIn().setHeader( - StubRunnerCamelConfiguration.STUBRUNNER_DESTINATION_URL_HEADER_NAME, url); + exchange.getIn().setHeader(StubRunnerCamelConfiguration.STUBRUNNER_DESTINATION_URL_HEADER_NAME, url); if (log.isDebugEnabled()) { log.debug("Set stub runner destination header to [" + url + "]"); } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationConfiguration.java index ff2d35e915..500335d6e8 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationConfiguration.java @@ -48,23 +48,17 @@ import org.springframework.util.StringUtils; */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass(IntegrationFlowBuilder.class) -@ConditionalOnProperty(name = "stubrunner.integration.enabled", havingValue = "true", - matchIfMissing = true) +@ConditionalOnProperty(name = "stubrunner.integration.enabled", havingValue = "true", matchIfMissing = true) public class StubRunnerIntegrationConfiguration { @Bean @ConditionalOnMissingBean(name = "stubFlowRegistrar") - public FlowRegistrar stubFlowRegistrar(AutowireCapableBeanFactory beanFactory, - BatchStubRunner batchStubRunner) { - Map> contracts = batchStubRunner - .getContracts(); - IntegrationFlowBuilder dummyBuilder = IntegrationFlows - .from(DummyMessageHandler.CHANNEL_NAME) + public FlowRegistrar stubFlowRegistrar(AutowireCapableBeanFactory beanFactory, BatchStubRunner batchStubRunner) { + Map> contracts = batchStubRunner.getContracts(); + IntegrationFlowBuilder dummyBuilder = IntegrationFlows.from(DummyMessageHandler.CHANNEL_NAME) .handle(new DummyMessageHandler(), "handle"); - beanFactory.initializeBean(dummyBuilder.get(), - DummyMessageHandler.CHANNEL_NAME + ".flow"); - for (Entry> entry : contracts - .entrySet()) { + beanFactory.initializeBean(dummyBuilder.get(), DummyMessageHandler.CHANNEL_NAME + ".flow"); + for (Entry> entry : contracts.entrySet()) { StubConfiguration key = entry.getKey(); Collection value = entry.getValue(); String name = key.getGroupId() + "_" + key.getArtifactId(); @@ -74,29 +68,23 @@ public class StubRunnerIntegrationConfiguration { continue; } if (dsl.getInput() != null && dsl.getInput().getMessageFrom() != null - && StringUtils.hasText( - dsl.getInput().getMessageFrom().getClientValue())) { + && StringUtils.hasText(dsl.getInput().getMessageFrom().getClientValue())) { String from = dsl.getInput().getMessageFrom().getClientValue(); map.add(from, dsl); } } for (Entry> entries : map.entrySet()) { - final String flowName = name + "_" + entries.getKey() + "_" - + entries.getValue().hashCode(); - IntegrationFlowBuilder builder = IntegrationFlows - .from(entries.getKey()).filter( - new StubRunnerIntegrationMessageSelector( - entries.getValue()), + final String flowName = name + "_" + entries.getKey() + "_" + entries.getValue().hashCode(); + IntegrationFlowBuilder builder = IntegrationFlows.from(entries.getKey()) + .filter(new StubRunnerIntegrationMessageSelector(entries.getValue()), new Consumer() { @Override public void accept(FilterEndpointSpec e) { e.id(flowName + ".filter"); } }) - .transform( - new StubRunnerIntegrationTransformer(entries.getValue())) - .route(new StubRunnerIntegrationRouter(entries.getValue(), - beanFactory)); + .transform(new StubRunnerIntegrationTransformer(entries.getValue())) + .route(new StubRunnerIntegrationRouter(entries.getValue(), beanFactory)); beanFactory.initializeBean(builder.get(), flowName); beanFactory.getBean(flowName + ".filter", Lifecycle.class).start(); } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationMessageSelector.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationMessageSelector.java index c99ce1bdbc..7176576c91 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationMessageSelector.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationMessageSelector.java @@ -55,11 +55,9 @@ import org.springframework.messaging.Message; */ class StubRunnerIntegrationMessageSelector implements MessageSelector { - private static final Map CACHE = Collections - .synchronizedMap(new WeakHashMap<>()); + private static final Map CACHE = Collections.synchronizedMap(new WeakHashMap<>()); - private static final Log log = LogFactory - .getLog(StubRunnerIntegrationMessageSelector.class); + private static final Log log = LogFactory.getLog(StubRunnerIntegrationMessageSelector.class); private final List groovyDsls; @@ -107,14 +105,12 @@ class StubRunnerIntegrationMessageSelector implements MessageSelector { List unmatchedHeaders = headersMatch(message, groovyDsl); if (!unmatchedHeaders.isEmpty()) { if (log.isDebugEnabled()) { - log.debug("Contract [" + groovyDsl - + "] hasn't matched the following headers " + unmatchedHeaders); + log.debug("Contract [" + groovyDsl + "] hasn't matched the following headers " + unmatchedHeaders); } return null; } Object inputMessage = message.getPayload(); - Object dslBody = MapConverter - .getStubSideValues(groovyDsl.getInput().getMessageBody()); + Object dslBody = MapConverter.getStubSideValues(groovyDsl.getInput().getMessageBody()); if (dslBody instanceof FromFileProperty) { if (log.isDebugEnabled()) { log.debug("Will compare file content"); @@ -126,19 +122,15 @@ class StubRunnerIntegrationMessageSelector implements MessageSelector { } else if (!(inputMessage instanceof byte[])) { if (log.isDebugEnabled()) { - log.debug( - "Contract provided byte comparison, but the input message is of type [" - + inputMessage.getClass() - + "]. Can't compare the two."); + log.debug("Contract provided byte comparison, but the input message is of type [" + + inputMessage.getClass() + "]. Can't compare the two."); } return null; } else { - boolean matches = Arrays.equals(property.asBytes(), - (byte[]) inputMessage); + boolean matches = Arrays.equals(property.asBytes(), (byte[]) inputMessage); if (log.isDebugEnabled() && !matches) { - log.debug( - "Contract provided byte comparison, but the byte arrays don't match"); + log.debug("Contract provided byte comparison, but the byte arrays don't match"); } return matches ? groovyDsl : null; } @@ -149,11 +141,9 @@ class StubRunnerIntegrationMessageSelector implements MessageSelector { return null; } - private boolean matchViaContent(Contract groovyDsl, Object inputMessage, - Object dslBody) { + private boolean matchViaContent(Contract groovyDsl, Object inputMessage, Object dslBody) { boolean matches; - ContentType type = ContentUtils.getClientContentType(inputMessage, - groovyDsl.getInput().getMessageHeaders()); + ContentType type = ContentUtils.getClientContentType(inputMessage, groovyDsl.getInput().getMessageHeaders()); if (type == ContentType.JSON) { BodyMatchers matchers = groovyDsl.getInput().getBodyMatchers(); matches = matchesForJsonPayload(groovyDsl, inputMessage, matchers, dslBody); @@ -172,22 +162,19 @@ class StubRunnerIntegrationMessageSelector implements MessageSelector { private void bodyUnmatchedLog(Object dslBody, boolean matches, Object pattern) { if (log.isDebugEnabled() && !matches) { - log.debug("Body was supposed to " + unmatchedText(pattern) - + " but the value is [" + dslBody.toString() + "]"); + log.debug("Body was supposed to " + unmatchedText(pattern) + " but the value is [" + dslBody.toString() + + "]"); } } - private boolean matchesForJsonPayload(Contract groovyDsl, Object inputMessage, - BodyMatchers matchers, Object dslBody) { - Object matchingInputMessage = JsonToJsonPathsConverter - .removeMatchingJsonPaths(dslBody, matchers); + private boolean matchesForJsonPayload(Contract groovyDsl, Object inputMessage, BodyMatchers matchers, + Object dslBody) { + Object matchingInputMessage = JsonToJsonPathsConverter.removeMatchingJsonPaths(dslBody, matchers); JsonPaths jsonPaths = JsonToJsonPathsConverter - .transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck( - matchingInputMessage); + .transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck(matchingInputMessage); DocumentContext parsedJson; try { - parsedJson = JsonPath - .parse(this.objectMapper.writeValueAsString(inputMessage)); + parsedJson = JsonPath.parse(this.objectMapper.writeValueAsString(inputMessage)); } catch (JsonProcessingException e) { throw new IllegalStateException("Cannot serialize to JSON", e); @@ -199,22 +186,19 @@ class StubRunnerIntegrationMessageSelector implements MessageSelector { } if (matchers != null && matchers.hasMatchers()) { for (BodyMatcher matcher : matchers.matchers()) { - String jsonPath = JsonToJsonPathsConverter - .convertJsonPathAndRegexToAJsonPath(matcher, dslBody); + String jsonPath = JsonToJsonPathsConverter.convertJsonPathAndRegexToAJsonPath(matcher, dslBody); matches &= matchesJsonPath(unmatchedJsonPath, parsedJson, jsonPath); } } if (!unmatchedJsonPath.isEmpty()) { if (log.isDebugEnabled()) { - log.debug("Contract [" + groovyDsl + "] didn't match the body due to " - + unmatchedJsonPath); + log.debug("Contract [" + groovyDsl + "] didn't match the body due to " + unmatchedJsonPath); } } return matches; } - private boolean matchesJsonPath(List unmatchedJsonPath, - DocumentContext parsedJson, String jsonPath) { + private boolean matchesJsonPath(List unmatchedJsonPath, DocumentContext parsedJson, String jsonPath) { try { JsonAssertion.assertThat(parsedJson).matchesJsonPath(jsonPath); return true; @@ -238,14 +222,11 @@ class StubRunnerIntegrationMessageSelector implements MessageSelector { matches = pattern.matcher(valueInHeader.toString()).matches(); } else { - matches = valueInHeader != null - && valueInHeader.toString().equals(value.toString()); + matches = valueInHeader != null && valueInHeader.toString().equals(value.toString()); } if (!matches) { - unmatchedHeaders.add("Header with name [" + name + "] was supposed to " - + unmatchedText(value) + " but the value is [" - + (valueInHeader != null ? valueInHeader.toString() : "null") - + "]"); + unmatchedHeaders.add("Header with name [" + name + "] was supposed to " + unmatchedText(value) + + " but the value is [" + (valueInHeader != null ? valueInHeader.toString() : "null") + "]"); } } return unmatchedHeaders; diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationRouter.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationRouter.java index 2e90f78041..d88ce8ec24 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationRouter.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationRouter.java @@ -43,14 +43,12 @@ class StubRunnerIntegrationRouter extends AbstractMessageRouter { @Override protected Collection determineTargetChannels(Message message) { Contract dsl = this.selector.matchingContract(message); - if (dsl != null && dsl.getOutputMessage() != null - && dsl.getOutputMessage().getSentTo() != null) { + if (dsl != null && dsl.getOutputMessage() != null && dsl.getOutputMessage().getSentTo() != null) { String channelName = dsl.getOutputMessage().getSentTo().getClientValue(); - return Collections - .singleton((MessageChannel) this.beanFactory.getBean(channelName)); + return Collections.singleton((MessageChannel) this.beanFactory.getBean(channelName)); } - return Collections.singleton((MessageChannel) this.beanFactory.getBean( - StubRunnerIntegrationConfiguration.DummyMessageHandler.CHANNEL_NAME)); + return Collections.singleton((MessageChannel) this.beanFactory + .getBean(StubRunnerIntegrationConfiguration.DummyMessageHandler.CHANNEL_NAME)); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationTransformer.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationTransformer.java index 9dea182f16..120c7fc794 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationTransformer.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/integration/StubRunnerIntegrationTransformer.java @@ -50,18 +50,15 @@ class StubRunnerIntegrationTransformer { return source; } Object outputBody = outputBody(groovyDsl); - Map headers = groovyDsl.getOutputMessage().getHeaders() - .asStubSideMap(); + Map headers = groovyDsl.getOutputMessage().getHeaders().asStubSideMap(); MessageHeaders messageHeaders = new MessageHeaders(headers); - Message message = MessageBuilder.createMessage(outputBody, - messageHeaders); + Message message = MessageBuilder.createMessage(outputBody, messageHeaders); this.selector.updateCache(message, groovyDsl); return message; } private Object outputBody(Contract groovyDsl) { - Object outputBody = BodyExtractor - .extractClientValueFromBody(groovyDsl.getOutputMessage().getBody()); + Object outputBody = BodyExtractor.extractClientValueFromBody(groovyDsl.getOutputMessage().getBody()); if (outputBody instanceof FromFileProperty) { FromFileProperty property = (FromFileProperty) outputBody; return property.asBytes(); diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsConfiguration.java index 73c74df2bf..730107e5c9 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsConfiguration.java @@ -49,18 +49,15 @@ import org.springframework.util.StringUtils; */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass(JmsTemplate.class) -@ConditionalOnProperty(name = "stubrunner.jms.enabled", havingValue = "true", - matchIfMissing = true) +@ConditionalOnProperty(name = "stubrunner.jms.enabled", havingValue = "true", matchIfMissing = true) public class StubRunnerJmsConfiguration { @Bean @ConditionalOnMissingBean(name = "stubFlowRegistrar") public FlowRegistrar stubFlowRegistrar(ConfigurableListableBeanFactory beanFactory, BatchStubRunner batchStubRunner) { - Map> contracts = batchStubRunner - .getContracts(); - for (Entry> entry : contracts - .entrySet()) { + Map> contracts = batchStubRunner.getContracts(); + for (Entry> entry : contracts.entrySet()) { StubConfiguration key = entry.getKey(); Collection value = entry.getValue(); String name = key.getGroupId() + "_" + key.getArtifactId(); @@ -70,21 +67,17 @@ public class StubRunnerJmsConfiguration { continue; } if (dsl.getInput() != null && dsl.getInput().getMessageFrom() != null - && StringUtils.hasText( - dsl.getInput().getMessageFrom().getClientValue())) { + && StringUtils.hasText(dsl.getInput().getMessageFrom().getClientValue())) { String from = dsl.getInput().getMessageFrom().getClientValue(); map.add(from, dsl); } } for (Entry> entries : map.entrySet()) { List matchingContracts = entries.getValue(); - final String flowName = name + "_" + entries.getKey() + "_" - + Math.abs(matchingContracts.hashCode()); + final String flowName = name + "_" + entries.getKey() + "_" + Math.abs(matchingContracts.hashCode()); // listener - StubRunnerJmsRouter router = new StubRunnerJmsRouter(matchingContracts, - beanFactory); - StubRunnerJmsRouter listener = (StubRunnerJmsRouter) beanFactory - .initializeBean(router, flowName); + StubRunnerJmsRouter router = new StubRunnerJmsRouter(matchingContracts, beanFactory); + StubRunnerJmsRouter listener = (StubRunnerJmsRouter) beanFactory.initializeBean(router, flowName); beanFactory.registerSingleton(flowName, listener); registerContainers(beanFactory, matchingContracts, flowName, listener); } @@ -93,29 +86,25 @@ public class StubRunnerJmsConfiguration { return new FlowRegistrar(); } - private void registerContainers(ConfigurableListableBeanFactory beanFactory, - List matchingContracts, String flowName, - StubRunnerJmsRouter listener) { + private void registerContainers(ConfigurableListableBeanFactory beanFactory, List matchingContracts, + String flowName, StubRunnerJmsRouter listener) { // listener's container - ConnectionFactory connectionFactory = beanFactory - .getBean(ConnectionFactory.class); + ConnectionFactory connectionFactory = beanFactory.getBean(ConnectionFactory.class); for (Contract matchingContract : matchingContracts) { if (matchingContract.getInput() == null) { continue; } - String destination = MapConverter.getStubSideValuesForNonBody( - matchingContract.getInput().getMessageFrom()).toString(); - MessageListenerContainer container = listenerContainer(destination, - connectionFactory, listener); + String destination = MapConverter.getStubSideValuesForNonBody(matchingContract.getInput().getMessageFrom()) + .toString(); + MessageListenerContainer container = listenerContainer(destination, connectionFactory, listener); String containerName = flowName + ".container"; - Object initializedContainer = beanFactory.initializeBean(container, - containerName); + Object initializedContainer = beanFactory.initializeBean(container, containerName); beanFactory.registerSingleton(containerName, initializedContainer); } } - private MessageListenerContainer listenerContainer(String queueName, - ConnectionFactory connectionFactory, MessageListener listener) { + private MessageListenerContainer listenerContainer(String queueName, ConnectionFactory connectionFactory, + MessageListener listener) { DefaultMessageListenerContainer container = new DefaultMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.setDestinationName(queueName); diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsMessageSelector.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsMessageSelector.java index 0ec18a7bfd..c848b5a2f9 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsMessageSelector.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsMessageSelector.java @@ -55,8 +55,7 @@ import org.springframework.cloud.contract.verifier.util.MethodBufferingJsonVerif */ class StubRunnerJmsMessageSelector { - private static final Map CACHE = Collections - .synchronizedMap(new WeakHashMap<>()); + private static final Map CACHE = Collections.synchronizedMap(new WeakHashMap<>()); private static final Log log = LogFactory.getLog(StubRunnerJmsMessageSelector.class); @@ -97,14 +96,12 @@ class StubRunnerJmsMessageSelector { List unmatchedHeaders = headersMatch(message, groovyDsl); if (!unmatchedHeaders.isEmpty()) { if (log.isDebugEnabled()) { - log.debug("Contract [" + groovyDsl - + "] hasn't matched the following headers " + unmatchedHeaders); + log.debug("Contract [" + groovyDsl + "] hasn't matched the following headers " + unmatchedHeaders); } return null; } Object inputMessage = StubRunnerJmsAccessor.getBody(message); - Object dslBody = MapConverter - .getStubSideValues(groovyDsl.getInput().getMessageBody()); + Object dslBody = MapConverter.getStubSideValues(groovyDsl.getInput().getMessageBody()); if (dslBody instanceof FromFileProperty) { if (log.isDebugEnabled()) { log.debug("Will compare file content"); @@ -116,19 +113,15 @@ class StubRunnerJmsMessageSelector { } else if (!(inputMessage instanceof byte[])) { if (log.isDebugEnabled()) { - log.debug( - "Contract provided byte comparison, but the input message is of type [" - + inputMessage.getClass() - + "]. Can't compare the two."); + log.debug("Contract provided byte comparison, but the input message is of type [" + + inputMessage.getClass() + "]. Can't compare the two."); } return null; } else { - boolean matches = Arrays.equals(property.asBytes(), - (byte[]) inputMessage); + boolean matches = Arrays.equals(property.asBytes(), (byte[]) inputMessage); if (log.isDebugEnabled() && !matches) { - log.debug( - "Contract provided byte comparison, but the byte arrays don't match"); + log.debug("Contract provided byte comparison, but the byte arrays don't match"); } return matches ? groovyDsl : null; } @@ -139,11 +132,9 @@ class StubRunnerJmsMessageSelector { return null; } - private boolean matchViaContent(Contract groovyDsl, Object inputMessage, - Object dslBody) { + private boolean matchViaContent(Contract groovyDsl, Object inputMessage, Object dslBody) { boolean matches; - ContentType type = ContentUtils.getClientContentType(inputMessage, - groovyDsl.getInput().getMessageHeaders()); + ContentType type = ContentUtils.getClientContentType(inputMessage, groovyDsl.getInput().getMessageHeaders()); if (type == ContentType.JSON) { BodyMatchers matchers = groovyDsl.getInput().getBodyMatchers(); matches = matchesForJsonPayload(groovyDsl, inputMessage, matchers, dslBody); @@ -162,22 +153,19 @@ class StubRunnerJmsMessageSelector { private void bodyUnmatchedLog(Object dslBody, boolean matches, Object pattern) { if (log.isDebugEnabled() && !matches) { - log.debug("Body was supposed to " + unmatchedText(pattern) - + " but the value is [" + dslBody.toString() + "]"); + log.debug("Body was supposed to " + unmatchedText(pattern) + " but the value is [" + dslBody.toString() + + "]"); } } - private boolean matchesForJsonPayload(Contract groovyDsl, Object inputMessage, - BodyMatchers matchers, Object dslBody) { - Object matchingInputMessage = JsonToJsonPathsConverter - .removeMatchingJsonPaths(dslBody, matchers); + private boolean matchesForJsonPayload(Contract groovyDsl, Object inputMessage, BodyMatchers matchers, + Object dslBody) { + Object matchingInputMessage = JsonToJsonPathsConverter.removeMatchingJsonPaths(dslBody, matchers); JsonPaths jsonPaths = JsonToJsonPathsConverter - .transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck( - matchingInputMessage); + .transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck(matchingInputMessage); DocumentContext parsedJson; try { - parsedJson = JsonPath - .parse(this.objectMapper.writeValueAsString(inputMessage)); + parsedJson = JsonPath.parse(this.objectMapper.writeValueAsString(inputMessage)); } catch (JsonProcessingException e) { throw new IllegalStateException("Cannot serialize to JSON", e); @@ -189,22 +177,19 @@ class StubRunnerJmsMessageSelector { } if (matchers != null && matchers.hasMatchers()) { for (BodyMatcher matcher : matchers.matchers()) { - String jsonPath = JsonToJsonPathsConverter - .convertJsonPathAndRegexToAJsonPath(matcher, dslBody); + String jsonPath = JsonToJsonPathsConverter.convertJsonPathAndRegexToAJsonPath(matcher, dslBody); matches &= matchesJsonPath(unmatchedJsonPath, parsedJson, jsonPath); } } if (!unmatchedJsonPath.isEmpty()) { if (log.isDebugEnabled()) { - log.debug("Contract [" + groovyDsl + "] didn't match the body due to " - + unmatchedJsonPath); + log.debug("Contract [" + groovyDsl + "] didn't match the body due to " + unmatchedJsonPath); } } return matches; } - private boolean matchesJsonPath(List unmatchedJsonPath, - DocumentContext parsedJson, String jsonPath) { + private boolean matchesJsonPath(List unmatchedJsonPath, DocumentContext parsedJson, String jsonPath) { try { JsonAssertion.assertThat(parsedJson).matchesJsonPath(jsonPath); return true; @@ -228,14 +213,11 @@ class StubRunnerJmsMessageSelector { matches = pattern.matcher(valueInHeader.toString()).matches(); } else { - matches = valueInHeader != null - && valueInHeader.toString().equals(value.toString()); + matches = valueInHeader != null && valueInHeader.toString().equals(value.toString()); } if (!matches) { - unmatchedHeaders.add("Header with name [" + name + "] was supposed to " - + unmatchedText(value) + " but the value is [" - + (valueInHeader != null ? valueInHeader.toString() : "null") - + "]"); + unmatchedHeaders.add("Header with name [" + name + "] was supposed to " + unmatchedText(value) + + " but the value is [" + (valueInHeader != null ? valueInHeader.toString() : "null") + "]"); } } return unmatchedHeaders; diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsRouter.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsRouter.java index 21fca6c30d..8dfab70671 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsRouter.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsRouter.java @@ -49,12 +49,10 @@ class StubRunnerJmsRouter implements MessageListener { @Override public void onMessage(javax.jms.Message message) { Contract dsl = this.selector.matchingContract(message); - if (dsl != null && dsl.getOutputMessage() != null - && dsl.getOutputMessage().getSentTo() != null) { + if (dsl != null && dsl.getOutputMessage() != null && dsl.getOutputMessage().getSentTo() != null) { String destination = dsl.getOutputMessage().getSentTo().getClientValue(); jmsTemplate().send(destination, - session -> new StubRunnerJmsTransformer(this.contracts) - .transform(session, dsl)); + session -> new StubRunnerJmsTransformer(this.contracts).transform(session, dsl)); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsTransformer.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsTransformer.java index 349d7986ee..370120695b 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsTransformer.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/jms/StubRunnerJmsTransformer.java @@ -44,8 +44,7 @@ class StubRunnerJmsTransformer { public Message transform(Session session, Contract groovyDsl) { Object outputBody = outputBody(groovyDsl); - Map headers = groovyDsl.getOutputMessage().getHeaders() - .asStubSideMap(); + Map headers = groovyDsl.getOutputMessage().getHeaders().asStubSideMap(); Message newMessage = createMessage(session, outputBody); setHeaders(newMessage, headers); this.selector.updateCache(newMessage, groovyDsl); @@ -53,8 +52,7 @@ class StubRunnerJmsTransformer { } private Object outputBody(Contract groovyDsl) { - Object outputBody = BodyExtractor - .extractClientValueFromBody(groovyDsl.getOutputMessage().getBody()); + Object outputBody = BodyExtractor.extractClientValueFromBody(groovyDsl.getOutputMessage().getBody()); if (outputBody instanceof FromFileProperty) { FromFileProperty property = (FromFileProperty) outputBody; return property.asBytes(); diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaConfiguration.java index bfb593e6d1..7543e615b7 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaConfiguration.java @@ -57,8 +57,7 @@ import org.springframework.util.StringUtils; */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass({ KafkaTemplate.class, EmbeddedKafkaBroker.class }) -@ConditionalOnProperty(name = "stubrunner.kafka.enabled", havingValue = "true", - matchIfMissing = true) +@ConditionalOnProperty(name = "stubrunner.kafka.enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnBean(EmbeddedKafkaBroker.class) @AutoConfigureBefore(ContractVerifierKafkaConfiguration.class) public class StubRunnerKafkaConfiguration { @@ -67,8 +66,7 @@ public class StubRunnerKafkaConfiguration { @Bean @ConditionalOnMissingBean - @ConditionalOnProperty(name = "stubrunner.kafka.initializer.enabled", - havingValue = "true", matchIfMissing = true) + @ConditionalOnProperty(name = "stubrunner.kafka.initializer.enabled", havingValue = "true", matchIfMissing = true) KafkaStubMessagesInitializer stubRunnerKafkaStubMessagesInitializer() { if (log.isDebugEnabled()) { log.debug("Registering a noop kafka messages initializer"); @@ -80,10 +78,8 @@ public class StubRunnerKafkaConfiguration { @ConditionalOnMissingBean(name = "stubFlowRegistrar") public FlowRegistrar stubFlowRegistrar(ConfigurableListableBeanFactory beanFactory, BatchStubRunner batchStubRunner) { - Map> contracts = batchStubRunner - .getContracts(); - for (Entry> entry : contracts - .entrySet()) { + Map> contracts = batchStubRunner.getContracts(); + for (Entry> entry : contracts.entrySet()) { StubConfiguration key = entry.getKey(); Collection value = entry.getValue(); String name = key.getGroupId() + "_" + key.getArtifactId(); @@ -93,21 +89,17 @@ public class StubRunnerKafkaConfiguration { continue; } if (dsl.getInput() != null && dsl.getInput().getMessageFrom() != null - && StringUtils.hasText( - dsl.getInput().getMessageFrom().getClientValue())) { + && StringUtils.hasText(dsl.getInput().getMessageFrom().getClientValue())) { String from = dsl.getInput().getMessageFrom().getClientValue(); map.add(from, dsl); } } for (Entry> entries : map.entrySet()) { List matchingContracts = entries.getValue(); - final String flowName = name + "_" + entries.getKey() + "_" - + Math.abs(matchingContracts.hashCode()); + final String flowName = name + "_" + entries.getKey() + "_" + Math.abs(matchingContracts.hashCode()); // listener - StubRunnerKafkaRouter router = new StubRunnerKafkaRouter( - matchingContracts, beanFactory); - StubRunnerKafkaRouter listener = (StubRunnerKafkaRouter) beanFactory - .initializeBean(router, flowName); + StubRunnerKafkaRouter router = new StubRunnerKafkaRouter(matchingContracts, beanFactory); + StubRunnerKafkaRouter listener = (StubRunnerKafkaRouter) beanFactory.initializeBean(router, flowName); if (log.isDebugEnabled()) { log.debug("Initialized kafka router with name [" + flowName + "]"); } @@ -119,38 +111,32 @@ public class StubRunnerKafkaConfiguration { return new FlowRegistrar(); } - private void registerContainers(ConfigurableListableBeanFactory beanFactory, - List matchingContracts, String flowName, - StubRunnerKafkaRouter listener) { + private void registerContainers(ConfigurableListableBeanFactory beanFactory, List matchingContracts, + String flowName, StubRunnerKafkaRouter listener) { // listener's container ConsumerFactory consumerFactory = beanFactory.getBean(ConsumerFactory.class); for (Contract matchingContract : matchingContracts) { if (matchingContract.getInput() == null) { continue; } - String destination = MapConverter.getStubSideValuesForNonBody( - matchingContract.getInput().getMessageFrom()).toString(); - ContainerProperties containerProperties = new ContainerProperties( - destination); - KafkaMessageListenerContainer container = listenerContainer(consumerFactory, - containerProperties, listener); + String destination = MapConverter.getStubSideValuesForNonBody(matchingContract.getInput().getMessageFrom()) + .toString(); + ContainerProperties containerProperties = new ContainerProperties(destination); + KafkaMessageListenerContainer container = listenerContainer(consumerFactory, containerProperties, listener); String containerName = flowName + ".container"; - Object initializedContainer = beanFactory.initializeBean(container, - containerName); + Object initializedContainer = beanFactory.initializeBean(container, containerName); beanFactory.registerSingleton(containerName, initializedContainer); if (log.isDebugEnabled()) { - log.debug( - "Initialized kafka message container with name [" + containerName - + "] listening to destination [" + destination + "]"); + log.debug("Initialized kafka message container with name [" + containerName + + "] listening to destination [" + destination + "]"); } } } - private KafkaMessageListenerContainer listenerContainer( - ConsumerFactory consumerFactory, ContainerProperties containerProperties, - GenericMessageListener listener) { - KafkaMessageListenerContainer container = new KafkaMessageListenerContainer( - consumerFactory, containerProperties); + private KafkaMessageListenerContainer listenerContainer(ConsumerFactory consumerFactory, + ContainerProperties containerProperties, GenericMessageListener listener) { + KafkaMessageListenerContainer container = new KafkaMessageListenerContainer(consumerFactory, + containerProperties); container.setupMessageListener(listener); return container; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaMessageSelector.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaMessageSelector.java index 0a887e47ee..ac26117904 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaMessageSelector.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaMessageSelector.java @@ -53,11 +53,9 @@ import org.springframework.messaging.Message; */ class StubRunnerKafkaMessageSelector { - private static final Map, Contract> CACHE = Collections - .synchronizedMap(new WeakHashMap<>()); + private static final Map, Contract> CACHE = Collections.synchronizedMap(new WeakHashMap<>()); - private static final Log log = LogFactory - .getLog(StubRunnerKafkaMessageSelector.class); + private static final Log log = LogFactory.getLog(StubRunnerKafkaMessageSelector.class); private final List groovyDsls; @@ -96,14 +94,12 @@ class StubRunnerKafkaMessageSelector { List unmatchedHeaders = headersMatch(message, groovyDsl); if (!unmatchedHeaders.isEmpty()) { if (log.isDebugEnabled()) { - log.debug("Contract [" + groovyDsl - + "] hasn't matched the following headers " + unmatchedHeaders); + log.debug("Contract [" + groovyDsl + "] hasn't matched the following headers " + unmatchedHeaders); } return null; } Object inputMessage = message.getPayload(); - Object dslBody = MapConverter - .getStubSideValues(groovyDsl.getInput().getMessageBody()); + Object dslBody = MapConverter.getStubSideValues(groovyDsl.getInput().getMessageBody()); if (dslBody instanceof FromFileProperty) { if (log.isDebugEnabled()) { log.debug("Will compare file content"); @@ -115,19 +111,15 @@ class StubRunnerKafkaMessageSelector { } else if (!(inputMessage instanceof byte[])) { if (log.isDebugEnabled()) { - log.debug( - "Contract provided byte comparison, but the input message is of type [" - + inputMessage.getClass() - + "]. Can't compare the two."); + log.debug("Contract provided byte comparison, but the input message is of type [" + + inputMessage.getClass() + "]. Can't compare the two."); } return null; } else { - boolean matches = Arrays.equals(property.asBytes(), - (byte[]) inputMessage); + boolean matches = Arrays.equals(property.asBytes(), (byte[]) inputMessage); if (log.isDebugEnabled() && !matches) { - log.debug( - "Contract provided byte comparison, but the byte arrays don't match"); + log.debug("Contract provided byte comparison, but the byte arrays don't match"); } return matches ? groovyDsl : null; } @@ -138,11 +130,9 @@ class StubRunnerKafkaMessageSelector { return null; } - private boolean matchViaContent(Contract groovyDsl, Object inputMessage, - Object dslBody) { + private boolean matchViaContent(Contract groovyDsl, Object inputMessage, Object dslBody) { boolean matches; - ContentType type = ContentUtils.getClientContentType(inputMessage, - groovyDsl.getInput().getMessageHeaders()); + ContentType type = ContentUtils.getClientContentType(inputMessage, groovyDsl.getInput().getMessageHeaders()); if (type == ContentType.JSON) { BodyMatchers matchers = groovyDsl.getInput().getBodyMatchers(); matches = matchesForJsonPayload(groovyDsl, inputMessage, matchers, dslBody); @@ -161,22 +151,19 @@ class StubRunnerKafkaMessageSelector { private void bodyUnmatchedLog(Object dslBody, boolean matches, Object pattern) { if (log.isDebugEnabled() && !matches) { - log.debug("Body was supposed to " + unmatchedText(pattern) - + " but the value is [" + dslBody.toString() + "]"); + log.debug("Body was supposed to " + unmatchedText(pattern) + " but the value is [" + dslBody.toString() + + "]"); } } - private boolean matchesForJsonPayload(Contract groovyDsl, Object inputMessage, - BodyMatchers matchers, Object dslBody) { - Object matchingInputMessage = JsonToJsonPathsConverter - .removeMatchingJsonPaths(dslBody, matchers); + private boolean matchesForJsonPayload(Contract groovyDsl, Object inputMessage, BodyMatchers matchers, + Object dslBody) { + Object matchingInputMessage = JsonToJsonPathsConverter.removeMatchingJsonPaths(dslBody, matchers); JsonPaths jsonPaths = JsonToJsonPathsConverter - .transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck( - matchingInputMessage); + .transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck(matchingInputMessage); DocumentContext parsedJson; try { - parsedJson = JsonPath - .parse(this.objectMapper.writeValueAsString(inputMessage)); + parsedJson = JsonPath.parse(this.objectMapper.writeValueAsString(inputMessage)); } catch (JsonProcessingException e) { throw new IllegalStateException("Cannot serialize to JSON", e); @@ -188,22 +175,19 @@ class StubRunnerKafkaMessageSelector { } if (matchers != null && matchers.hasMatchers()) { for (BodyMatcher matcher : matchers.matchers()) { - String jsonPath = JsonToJsonPathsConverter - .convertJsonPathAndRegexToAJsonPath(matcher, dslBody); + String jsonPath = JsonToJsonPathsConverter.convertJsonPathAndRegexToAJsonPath(matcher, dslBody); matches &= matchesJsonPath(unmatchedJsonPath, parsedJson, jsonPath); } } if (!unmatchedJsonPath.isEmpty()) { if (log.isDebugEnabled()) { - log.debug("Contract [" + groovyDsl + "] didn't match the body due to " - + unmatchedJsonPath); + log.debug("Contract [" + groovyDsl + "] didn't match the body due to " + unmatchedJsonPath); } } return matches; } - private boolean matchesJsonPath(List unmatchedJsonPath, - DocumentContext parsedJson, String jsonPath) { + private boolean matchesJsonPath(List unmatchedJsonPath, DocumentContext parsedJson, String jsonPath) { try { JsonAssertion.assertThat(parsedJson).matchesJsonPath(jsonPath); return true; @@ -221,22 +205,18 @@ class StubRunnerKafkaMessageSelector { String name = it.getName(); Object value = it.getClientValue(); Object valueInHeader = headers.get(name); - valueInHeader = valueInHeader instanceof byte[] - ? fromByte((byte[]) valueInHeader) : valueInHeader; + valueInHeader = valueInHeader instanceof byte[] ? fromByte((byte[]) valueInHeader) : valueInHeader; boolean matches; if (value instanceof RegexProperty) { Pattern pattern = ((RegexProperty) value).getPattern(); matches = pattern.matcher(valueInHeader.toString()).matches(); } else { - matches = valueInHeader != null - && valueInHeader.toString().equals(value.toString()); + matches = valueInHeader != null && valueInHeader.toString().equals(value.toString()); } if (!matches) { - unmatchedHeaders.add("Header with name [" + name + "] was supposed to " - + unmatchedText(value) + " but the value is [" - + (valueInHeader != null ? valueInHeader.toString() : "null") - + "]"); + unmatchedHeaders.add("Header with name [" + name + "] was supposed to " + unmatchedText(value) + + " but the value is [" + (valueInHeader != null ? valueInHeader.toString() : "null") + "]"); } } return unmatchedHeaders; diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaRouter.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaRouter.java index 2f972bfd2c..42f137d42d 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaRouter.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaRouter.java @@ -69,19 +69,15 @@ class StubRunnerKafkaRouter implements MessageListener { if (log.isDebugEnabled()) { log.debug("Received message [" + data + "]"); } - Message message = MessageBuilder.createMessage(data.value(), - headers(data.headers())); + Message message = MessageBuilder.createMessage(data.value(), headers(data.headers())); Contract dsl = this.selector.matchingContract(message); - if (dsl != null && dsl.getOutputMessage() != null - && dsl.getOutputMessage().getSentTo() != null) { + if (dsl != null && dsl.getOutputMessage() != null && dsl.getOutputMessage().getSentTo() != null) { String destination = dsl.getOutputMessage().getSentTo().getClientValue(); if (log.isDebugEnabled()) { - log.debug( - "Found a matching contract with an output message. Will send it to the [" - + destination + "] destination"); + log.debug("Found a matching contract with an output message. Will send it to the [" + destination + + "] destination"); } - Message transform = new StubRunnerKafkaTransformer(this.contracts) - .transform(dsl); + Message transform = new StubRunnerKafkaTransformer(this.contracts).transform(dsl); String defaultTopic = kafkaTemplate().getDefaultTopic(); try { kafkaTemplate().setDefaultTopic(destination); @@ -102,8 +98,7 @@ class StubRunnerKafkaRouter implements MessageListener { } @Override - public void onMessage(ConsumerRecord data, - Acknowledgment acknowledgment) { + public void onMessage(ConsumerRecord data, Acknowledgment acknowledgment) { onMessage(data); } @@ -113,8 +108,7 @@ class StubRunnerKafkaRouter implements MessageListener { } @Override - public void onMessage(ConsumerRecord data, - Acknowledgment acknowledgment, Consumer consumer) { + public void onMessage(ConsumerRecord data, Acknowledgment acknowledgment, Consumer consumer) { onMessage(data); } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaTransformer.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaTransformer.java index 20859d42dc..232a1d7d7c 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaTransformer.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/kafka/StubRunnerKafkaTransformer.java @@ -41,17 +41,14 @@ class StubRunnerKafkaTransformer { public Message transform(Contract groovyDsl) { Object outputBody = outputBody(groovyDsl); - Map headers = groovyDsl.getOutputMessage().getHeaders() - .asStubSideMap(); - Message newMessage = MessageBuilder.createMessage(outputBody, - new MessageHeaders(headers)); + Map headers = groovyDsl.getOutputMessage().getHeaders().asStubSideMap(); + Message newMessage = MessageBuilder.createMessage(outputBody, new MessageHeaders(headers)); this.selector.updateCache(newMessage, groovyDsl); return newMessage; } private Object outputBody(Contract groovyDsl) { - Object outputBody = BodyExtractor - .extractClientValueFromBody(groovyDsl.getOutputMessage().getBody()); + Object outputBody = BodyExtractor.extractClientValueFromBody(groovyDsl.getOutputMessage().getBody()); if (outputBody instanceof FromFileProperty) { FromFileProperty property = (FromFileProperty) outputBody; return property.asBytes(); diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerMessageRouter.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerMessageRouter.java index 9ff0d4cc3a..aa575a3dd1 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerMessageRouter.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerMessageRouter.java @@ -43,16 +43,12 @@ class StubRunnerMessageRouter extends AbstractMessageRouter { @Override protected Collection determineTargetChannels(Message message) { Contract dsl = this.selector.matchingContract(message); - if (dsl != null && dsl.getOutputMessage() != null - && dsl.getOutputMessage().getSentTo() != null) { - String channelName = StubRunnerStreamConfiguration.resolvedDestination( - this.beanFactory, + if (dsl != null && dsl.getOutputMessage() != null && dsl.getOutputMessage().getSentTo() != null) { + String channelName = StubRunnerStreamConfiguration.resolvedDestination(this.beanFactory, dsl.getOutputMessage().getSentTo().getClientValue()); - return Collections - .singleton((MessageChannel) this.beanFactory.getBean(channelName)); + return Collections.singleton((MessageChannel) this.beanFactory.getBean(channelName)); } - return Collections - .singleton((MessageChannel) this.beanFactory.getBean("nullChannel")); + return Collections.singleton((MessageChannel) this.beanFactory.getBean("nullChannel")); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamConfiguration.java index 4387b3c233..2f594802fb 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamConfiguration.java @@ -57,8 +57,7 @@ import org.springframework.util.StringUtils; */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass({ IntegrationFlows.class, InputDestination.class }) -@ConditionalOnProperty(name = "stubrunner.stream.enabled", havingValue = "true", - matchIfMissing = true) +@ConditionalOnProperty(name = "stubrunner.stream.enabled", havingValue = "true", matchIfMissing = true) @AutoConfigureBefore(StubRunnerIntegrationConfiguration.class) public class StubRunnerStreamConfiguration { @@ -69,8 +68,7 @@ public class StubRunnerStreamConfiguration { for (Map.Entry entry : bindings.entrySet()) { if (destination.equals(entry.getValue().getDestination())) { if (log.isDebugEnabled()) { - log.debug("Found a channel named [" + entry.getKey() - + "] with destination [" + destination + "]"); + log.debug("Found a channel named [" + entry.getKey() + "] with destination [" + destination + "]"); } return entry.getKey(); } @@ -89,12 +87,9 @@ public class StubRunnerStreamConfiguration { @Bean @ConditionalOnMissingBean(name = "stubFlowRegistrar") @ConditionalOnBean(BindingServiceProperties.class) - public FlowRegistrar stubFlowRegistrar(AutowireCapableBeanFactory beanFactory, - BatchStubRunner batchStubRunner) { - Map> contracts = batchStubRunner - .getContracts(); - for (Entry> entry : contracts - .entrySet()) { + public FlowRegistrar stubFlowRegistrar(AutowireCapableBeanFactory beanFactory, BatchStubRunner batchStubRunner) { + Map> contracts = batchStubRunner.getContracts(); + for (Entry> entry : contracts.entrySet()) { StubConfiguration key = entry.getKey(); Collection value = entry.getValue(); String name = key.getGroupId() + "_" + key.getArtifactId(); @@ -104,16 +99,13 @@ public class StubRunnerStreamConfiguration { continue; } if (dsl.getInput() != null && dsl.getInput().getMessageFrom() != null - && StringUtils.hasText( - dsl.getInput().getMessageFrom().getClientValue())) { - String from = resolvedDestination(beanFactory, - dsl.getInput().getMessageFrom().getClientValue()); + && StringUtils.hasText(dsl.getInput().getMessageFrom().getClientValue())) { + String from = resolvedDestination(beanFactory, dsl.getInput().getMessageFrom().getClientValue()); map.add(from, dsl); } } for (Entry> entries : map.entrySet()) { - final String flowName = name + "_" + entries.getKey() + "_" - + entries.getValue().hashCode(); + final String flowName = name + "_" + entries.getKey() + "_" + entries.getValue().hashCode(); IntegrationFlowBuilder builder = IntegrationFlows.from(entries.getKey()) .filter(new StubRunnerStreamMessageSelector(entries.getValue()), new Consumer() { @@ -123,8 +115,7 @@ public class StubRunnerStreamConfiguration { } }) .transform(new StubRunnerStreamTransformer(entries.getValue())) - .route(new StubRunnerMessageRouter(entries.getValue(), - beanFactory)); + .route(new StubRunnerMessageRouter(entries.getValue(), beanFactory)); beanFactory.initializeBean(builder.get(), flowName); beanFactory.getBean(flowName + ".filter", Lifecycle.class).start(); } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamMessageSelector.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamMessageSelector.java index 73c4be3961..3c5508ad71 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamMessageSelector.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamMessageSelector.java @@ -55,11 +55,9 @@ import org.springframework.messaging.Message; */ class StubRunnerStreamMessageSelector implements MessageSelector { - private static final Map CACHE = Collections - .synchronizedMap(new WeakHashMap<>()); + private static final Map CACHE = Collections.synchronizedMap(new WeakHashMap<>()); - private static final Log log = LogFactory - .getLog(StubRunnerStreamMessageSelector.class); + private static final Log log = LogFactory.getLog(StubRunnerStreamMessageSelector.class); private final List groovyDsls; @@ -107,14 +105,12 @@ class StubRunnerStreamMessageSelector implements MessageSelector { List unmatchedHeaders = headersMatch(message, groovyDsl); if (!unmatchedHeaders.isEmpty()) { if (log.isDebugEnabled()) { - log.debug("Contract [" + groovyDsl - + "] hasn't matched the following headers " + unmatchedHeaders); + log.debug("Contract [" + groovyDsl + "] hasn't matched the following headers " + unmatchedHeaders); } return null; } Object inputMessage = message.getPayload(); - Object dslBody = MapConverter - .getStubSideValues(groovyDsl.getInput().getMessageBody()); + Object dslBody = MapConverter.getStubSideValues(groovyDsl.getInput().getMessageBody()); if (dslBody instanceof FromFileProperty) { if (log.isDebugEnabled()) { log.debug("Will compare file content"); @@ -126,19 +122,15 @@ class StubRunnerStreamMessageSelector implements MessageSelector { } else if (!(inputMessage instanceof byte[])) { if (log.isDebugEnabled()) { - log.debug( - "Contract provided byte comparison, but the input message is of type [" - + inputMessage.getClass() - + "]. Can't compare the two."); + log.debug("Contract provided byte comparison, but the input message is of type [" + + inputMessage.getClass() + "]. Can't compare the two."); } return null; } else { - boolean matches = Arrays.equals(property.asBytes(), - (byte[]) inputMessage); + boolean matches = Arrays.equals(property.asBytes(), (byte[]) inputMessage); if (log.isDebugEnabled() && !matches) { - log.debug( - "Contract provided byte comparison, but the byte arrays don't match"); + log.debug("Contract provided byte comparison, but the byte arrays don't match"); } return matches ? groovyDsl : null; } @@ -149,17 +141,14 @@ class StubRunnerStreamMessageSelector implements MessageSelector { return null; } - private boolean matchViaContent(Contract groovyDsl, Object inputMessage, - Object dslBody) { + private boolean matchViaContent(Contract groovyDsl, Object inputMessage, Object dslBody) { boolean matches; - ContentType type = ContentUtils.getClientContentType(inputMessage, - groovyDsl.getInput().getMessageHeaders()); + ContentType type = ContentUtils.getClientContentType(inputMessage, groovyDsl.getInput().getMessageHeaders()); if (type == ContentType.JSON) { BodyMatchers matchers = groovyDsl.getInput().getBodyMatchers(); matches = matchesForJsonPayload(groovyDsl, inputMessage, matchers, dslBody); } - else if ((dslBody instanceof RegexProperty || dslBody instanceof Pattern) - && inputMessage instanceof String) { + else if ((dslBody instanceof RegexProperty || dslBody instanceof Pattern) && inputMessage instanceof String) { Pattern pattern = new RegexProperty(dslBody).getPattern(); matches = pattern.matcher((String) inputMessage).matches(); bodyUnmatchedLog(dslBody, matches, pattern); @@ -173,22 +162,19 @@ class StubRunnerStreamMessageSelector implements MessageSelector { private void bodyUnmatchedLog(Object dslBody, boolean matches, Object pattern) { if (log.isDebugEnabled() && !matches) { - log.debug("Body was supposed to " + unmatchedText(pattern) - + " but the value is [" + dslBody.toString() + "]"); + log.debug("Body was supposed to " + unmatchedText(pattern) + " but the value is [" + dslBody.toString() + + "]"); } } - private boolean matchesForJsonPayload(Contract groovyDsl, Object inputMessage, - BodyMatchers matchers, Object dslBody) { - Object matchingInputMessage = JsonToJsonPathsConverter - .removeMatchingJsonPaths(dslBody, matchers); + private boolean matchesForJsonPayload(Contract groovyDsl, Object inputMessage, BodyMatchers matchers, + Object dslBody) { + Object matchingInputMessage = JsonToJsonPathsConverter.removeMatchingJsonPaths(dslBody, matchers); JsonPaths jsonPaths = JsonToJsonPathsConverter - .transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck( - matchingInputMessage); + .transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck(matchingInputMessage); DocumentContext parsedJson; try { - parsedJson = JsonPath - .parse(this.objectMapper.writeValueAsString(inputMessage)); + parsedJson = JsonPath.parse(this.objectMapper.writeValueAsString(inputMessage)); } catch (JsonProcessingException e) { throw new IllegalStateException("Cannot serialize to JSON", e); @@ -200,22 +186,19 @@ class StubRunnerStreamMessageSelector implements MessageSelector { } if (matchers != null && matchers.hasMatchers()) { for (BodyMatcher matcher : matchers.matchers()) { - String jsonPath = JsonToJsonPathsConverter - .convertJsonPathAndRegexToAJsonPath(matcher, dslBody); + String jsonPath = JsonToJsonPathsConverter.convertJsonPathAndRegexToAJsonPath(matcher, dslBody); matches &= matchesJsonPath(unmatchedJsonPath, parsedJson, jsonPath); } } if (!unmatchedJsonPath.isEmpty()) { if (log.isDebugEnabled()) { - log.debug("Contract [" + groovyDsl + "] didn't match the body due to " - + unmatchedJsonPath); + log.debug("Contract [" + groovyDsl + "] didn't match the body due to " + unmatchedJsonPath); } } return matches; } - private boolean matchesJsonPath(List unmatchedJsonPath, - DocumentContext parsedJson, String jsonPath) { + private boolean matchesJsonPath(List unmatchedJsonPath, DocumentContext parsedJson, String jsonPath) { try { JsonAssertion.assertThat(parsedJson).matchesJsonPath(jsonPath); return true; @@ -239,14 +222,11 @@ class StubRunnerStreamMessageSelector implements MessageSelector { matches = pattern.matcher(valueInHeader.toString()).matches(); } else { - matches = valueInHeader != null - && valueInHeader.toString().equals(value.toString()); + matches = valueInHeader != null && valueInHeader.toString().equals(value.toString()); } if (!matches) { - unmatchedHeaders.add("Header with name [" + name + "] was supposed to " - + unmatchedText(value) + " but the value is [" - + (valueInHeader != null ? valueInHeader.toString() : "null") - + "]"); + unmatchedHeaders.add("Header with name [" + name + "] was supposed to " + unmatchedText(value) + + " but the value is [" + (valueInHeader != null ? valueInHeader.toString() : "null") + "]"); } } return unmatchedHeaders; diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamTransformer.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamTransformer.java index ec13dc4dd9..4d17eaf86d 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamTransformer.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamTransformer.java @@ -50,18 +50,15 @@ class StubRunnerStreamTransformer { return source; } byte[] outputBody = outputBodyAsBytes(groovyDsl); - Map headers = groovyDsl.getOutputMessage().getHeaders() - .asStubSideMap(); + Map headers = groovyDsl.getOutputMessage().getHeaders().asStubSideMap(); MessageHeaders messageHeaders = new MessageHeaders(headers); - Message message = MessageBuilder.createMessage(outputBody, - messageHeaders); + Message message = MessageBuilder.createMessage(outputBody, messageHeaders); this.selector.updateCache(message, groovyDsl); return message; } private byte[] outputBodyAsBytes(Contract groovyDsl) { - Object outputBody = BodyExtractor - .extractClientValueFromBody(groovyDsl.getOutputMessage().getBody()); + Object outputBody = BodyExtractor.extractClientValueFromBody(groovyDsl.getOutputMessage().getBody()); if (outputBody instanceof FromFileProperty) { FromFileProperty property = (FromFileProperty) outputBody; return property.asBytes(); diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/StubRunnerWireMockTestExecutionListener.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/StubRunnerWireMockTestExecutionListener.java index b3b8eab6b1..ddfd8f6911 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/StubRunnerWireMockTestExecutionListener.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/StubRunnerWireMockTestExecutionListener.java @@ -30,32 +30,28 @@ import org.springframework.test.context.support.AbstractTestExecutionListener; * @author Marcin Grzejszczak * @since 1.2.6 */ -public final class StubRunnerWireMockTestExecutionListener - extends AbstractTestExecutionListener { +public final class StubRunnerWireMockTestExecutionListener extends AbstractTestExecutionListener { - private static final Log log = LogFactory - .getLog(StubRunnerWireMockTestExecutionListener.class); + private static final Log log = LogFactory.getLog(StubRunnerWireMockTestExecutionListener.class); @Override public void afterTestClass(TestContext testContext) { - if (testContext.getTestClass() - .getAnnotationsByType(AutoConfigureStubRunner.class).length == 0) { + if (testContext.getTestClass().getAnnotationsByType(AutoConfigureStubRunner.class).length == 0) { if (log.isDebugEnabled()) { - log.debug("No @AutoConfigureStubRunner annotation found on [" - + testContext.getTestClass() + "]. Skipping"); + log.debug("No @AutoConfigureStubRunner annotation found on [" + testContext.getTestClass() + + "]. Skipping"); } return; } - if (!WireMockHttpServerStub.SERVERS.isEmpty() && WireMockHttpServerStub.SERVERS - .values().stream().noneMatch(p -> p.random)) { + if (!WireMockHttpServerStub.SERVERS.isEmpty() + && WireMockHttpServerStub.SERVERS.values().stream().noneMatch(p -> p.random)) { if (log.isWarnEnabled()) { log.warn("You've used fixed ports for WireMock setup - " + "will mark context as dirty. Please use random ports, as much " + "as possible. Your tests will be faster and more reliable and this " + "warning will go away"); } - testContext - .markApplicationContextDirty(DirtiesContext.HierarchyMode.EXHAUSTIVE); + testContext.markApplicationContextDirty(DirtiesContext.HierarchyMode.EXHAUSTIVE); } // potential race condition WireMockHttpServerStub.SERVERS.clear(); diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/WireMockHttpServerStub.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/WireMockHttpServerStub.java index af41e9b572..67ea1f4323 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/WireMockHttpServerStub.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/WireMockHttpServerStub.java @@ -77,16 +77,15 @@ public class WireMockHttpServerStub implements HttpServerStub { private WireMockConfiguration wireMockConfiguration; private WireMockConfiguration config() { - if (ClassUtils.isPresent( - "org.springframework.cloud.contract.wiremock.WireMockSpring", null)) { + if (ClassUtils.isPresent("org.springframework.cloud.contract.wiremock.WireMockSpring", null)) { return WireMockSpring.options().extensions(responseTransformers()); } return new WireMockConfiguration().extensions(responseTransformers()); } private Extension[] responseTransformers() { - List wireMockExtensions = SpringFactoriesLoader - .loadFactories(WireMockExtensions.class, null); + List wireMockExtensions = SpringFactoriesLoader.loadFactories(WireMockExtensions.class, + null); List extensions = new ArrayList<>(); if (!wireMockExtensions.isEmpty()) { for (WireMockExtensions wireMockExtension : wireMockExtensions) { @@ -94,9 +93,8 @@ public class WireMockHttpServerStub implements HttpServerStub { } } else { - extensions.addAll( - Arrays.asList(new DefaultResponseTransformer(false, helpers()), - new SpringCloudContractRequestMatcher())); + extensions.addAll(Arrays.asList(new DefaultResponseTransformer(false, helpers()), + new SpringCloudContractRequestMatcher())); } return extensions.toArray(new Extension[extensions.size()]); } @@ -117,8 +115,7 @@ public class WireMockHttpServerStub implements HttpServerStub { @Override public int port() { - return isRunning() ? (this.https ? this.wireMockServer.httpsPort() - : this.wireMockServer.port()) : INVALID_PORT; + return isRunning() ? (this.https ? this.wireMockServer.httpsPort() : this.wireMockServer.port()) : INVALID_PORT; } @Override @@ -141,15 +138,13 @@ public class WireMockHttpServerStub implements HttpServerStub { } private HttpServerStubConfiguration defaultConfiguration(int port) { - return new HttpServerStubConfiguration( - HttpServerStubConfigurer.NoOpHttpServerStubConfigurer.INSTANCE, null, + return new HttpServerStubConfiguration(HttpServerStubConfigurer.NoOpHttpServerStubConfigurer.INSTANCE, null, null, port); } private HttpServerStubConfiguration defaultConfiguration() { int port = SocketUtils.findAvailableTcpPort(); - return new HttpServerStubConfiguration( - HttpServerStubConfigurer.NoOpHttpServerStubConfigurer.INSTANCE, null, + return new HttpServerStubConfiguration(HttpServerStubConfigurer.NoOpHttpServerStubConfigurer.INSTANCE, null, null, port, true); } @@ -167,24 +162,20 @@ public class WireMockHttpServerStub implements HttpServerStub { return this; } int port = configuration.port; - WireMockConfiguration wireMockConfiguration = config().port(port) - .notifier(new Slf4jNotifier(true)); + WireMockConfiguration wireMockConfiguration = config().port(port).notifier(new Slf4jNotifier(true)); if (configuration.configurer.isAccepted(wireMockConfiguration)) { @SuppressWarnings("unchecked") HttpServerStubConfigurer configurer = configuration.configurer; - wireMockConfiguration = configurer.configure(wireMockConfiguration, - configuration); + wireMockConfiguration = configurer.configure(wireMockConfiguration, configuration); } this.wireMockConfiguration = wireMockConfiguration; this.https = wireMockConfiguration.httpsSettings().enabled(); - port = this.https ? wireMockConfiguration.httpsSettings().port() - : wireMockConfiguration.portNumber(); + port = this.https ? wireMockConfiguration.httpsSettings().port() : wireMockConfiguration.portNumber(); this.wireMockServer = new WireMockServer(wireMockConfiguration); this.wireMockServer.start(); if (log.isDebugEnabled()) { - log.debug("For " + configuration.toColonSeparatedDependencyNotation() - + " Started WireMock at [" + (this.https ? "https" : "http") - + "] port [" + port + "]"); + log.debug("For " + configuration.toColonSeparatedDependencyNotation() + " Started WireMock at [" + + (this.https ? "https" : "http") + "] port [" + port + "]"); } cacheStubServer(configuration.randomPort, port); return this; @@ -246,8 +237,7 @@ public class WireMockHttpServerStub implements HttpServerStub { StubMapping getMapping(File file) { try (InputStream stream = Files.newInputStream(file.toPath())) { - return StubMapping.buildFrom( - StreamUtils.copyToString(stream, Charset.forName("UTF-8"))); + return StubMapping.buildFrom(StreamUtils.copyToString(stream, Charset.forName("UTF-8"))); } catch (IOException e) { throw new IllegalStateException("Cannot read file", e); @@ -269,8 +259,7 @@ public class WireMockHttpServerStub implements HttpServerStub { String proxyHost = this.wireMockConfiguration.proxyHostHeader(); int proxyPort = this.wireMockConfiguration.proxyVia().port(); ClientAuthenticator authenticator = NoClientAuthenticator.noClientAuthenticator(); - return new WireMock(scheme, host, port, urlPathPrefix, hostHeader, proxyHost, - proxyPort, authenticator); + return new WireMock(scheme, host, port, urlPathPrefix, hostHeader, proxyHost, proxyPort, authenticator); } private void registerDefaultHealthChecks(WireMock wireMock) { @@ -284,20 +273,17 @@ public class WireMockHttpServerStub implements HttpServerStub { try { stubMappings.add(registerDescriptor(wireMock, mappingDescriptor)); if (log.isDebugEnabled()) { - log.debug( - "Registered stub mappings from [" + mappingDescriptor + "]"); + log.debug("Registered stub mappings from [" + mappingDescriptor + "]"); } } catch (Exception e) { if (log.isDebugEnabled()) { - log.debug("Failed to register the stub mapping [" + mappingDescriptor - + "]", e); + log.debug("Failed to register the stub mapping [" + mappingDescriptor + "]", e); } } } PortAndMappings portAndMappings = SERVERS.get(this); - SERVERS.put(this, new PortAndMappings(portAndMappings.random, - portAndMappings.port, stubMappings)); + SERVERS.put(this, new PortAndMappings(portAndMappings.random, portAndMappings.port, stubMappings)); } private StubMapping registerDescriptor(WireMock wireMock, File mappingDescriptor) { @@ -311,8 +297,8 @@ public class WireMockHttpServerStub implements HttpServerStub { } private void registerHealthCheck(WireMock wireMock, String url, String body) { - wireMock.register(WireMock.get(WireMock.urlEqualTo(url)) - .willReturn(WireMock.aResponse().withBody(body).withStatus(200))); + wireMock.register( + WireMock.get(WireMock.urlEqualTo(url)).willReturn(WireMock.aResponse().withBody(body).withStatus(200))); } } @@ -333,8 +319,8 @@ class PortAndMappings { @Override public String toString() { - return "PortAndMappings{" + "random=" + this.random + ", port=" + this.port - + ", mappings=" + this.mappings + '}'; + return "PortAndMappings{" + "random=" + this.random + ", port=" + this.port + ", mappings=" + this.mappings + + '}'; } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/WireMockHttpServerStubConfigurer.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/WireMockHttpServerStubConfigurer.java index 20439b96af..3fe9e0af1f 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/WireMockHttpServerStubConfigurer.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/WireMockHttpServerStubConfigurer.java @@ -27,8 +27,7 @@ import org.springframework.cloud.contract.stubrunner.HttpServerStubConfigurer; * @author Marcin Grzejszczak * @since 2.1.0 */ -public class WireMockHttpServerStubConfigurer - implements HttpServerStubConfigurer { +public class WireMockHttpServerStubConfigurer implements HttpServerStubConfigurer { @Override public boolean isAccepted(Object httpStubConfiguration) { diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/EnableStubRunnerServer.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/EnableStubRunnerServer.java index 3a229f5fe1..ea97c7ca49 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/EnableStubRunnerServer.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/EnableStubRunnerServer.java @@ -35,8 +35,7 @@ import org.springframework.context.annotation.Import; @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited -@Import({ HttpStubsController.class, StubRunnerConfiguration.class, - StubRunnerServerConfiguration.class }) +@Import({ HttpStubsController.class, StubRunnerConfiguration.class, StubRunnerServerConfiguration.class }) public @interface EnableStubRunnerServer { } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerServerConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerServerConfiguration.java index e539c5d331..1bca861356 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerServerConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerServerConfiguration.java @@ -28,8 +28,7 @@ import org.springframework.context.annotation.Import; @Configuration(proxyBeanMethods = false) class StubRunnerServerConfiguration { - @ConditionalOnProperty(name = "stubrunner.messaging.enabled", havingValue = "true", - matchIfMissing = true) + @ConditionalOnProperty(name = "stubrunner.messaging.enabled", havingValue = "true", matchIfMissing = true) @AutoConfigureMessageVerifier @Import({ TriggerController.class }) static class StubRunnerMessagingAutoConfiguration { diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/TriggerController.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/TriggerController.java index ac3e5478c4..aeb1dadf42 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/TriggerController.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/TriggerController.java @@ -45,32 +45,27 @@ public class TriggerController { } @PostMapping("/{label:.*}") - public ResponseEntity>> trigger( - @PathVariable String label) { + public ResponseEntity>> trigger(@PathVariable String label) { try { this.stubFinder.trigger(label); - return ResponseEntity.ok() - .body(Collections.>emptyMap()); + return ResponseEntity.ok().body(Collections.>emptyMap()); } catch (Exception e) { - throw new RuntimeException("Exception occurred while trying to return [" - + label + "] label. \n\nAvailable labels are [" - + this.stubFinder.labels() + " ]", e); + throw new RuntimeException("Exception occurred while trying to return [" + label + + "] label. \n\nAvailable labels are [" + this.stubFinder.labels() + " ]", e); } } @PostMapping("/{ivyNotation:.*}/{label:.*}") - public ResponseEntity>> triggerByArtifact( - @PathVariable String ivyNotation, @PathVariable String label) { + public ResponseEntity>> triggerByArtifact(@PathVariable String ivyNotation, + @PathVariable String label) { try { this.stubFinder.trigger(ivyNotation, label); - return ResponseEntity.ok() - .body(Collections.>emptyMap()); + return ResponseEntity.ok().body(Collections.>emptyMap()); } catch (Exception e) { - throw new RuntimeException("Exception occurred while trying to return [" - + label + "] label. \n\nAvailable labels are [" - + this.stubFinder.labels() + " ]", e); + throw new RuntimeException("Exception occurred while trying to return [" + label + + "] label. \n\nAvailable labels are [" + this.stubFinder.labels() + " ]", e); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.java index 4116a2ad46..e22050cf05 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.java @@ -55,8 +55,7 @@ import org.springframework.util.StringUtils; */ @Configuration(proxyBeanMethods = false) @EnableConfigurationProperties(StubRunnerProperties.class) -@ConditionalOnMissingBean( - type = "org.springframework.cloud.contract.wiremock.WiremockServerConfiguration") +@ConditionalOnMissingBean(type = "org.springframework.cloud.contract.wiremock.WiremockServerConfiguration") @Import(StubRunnerPortBeanPostProcessor.class) public class StubRunnerConfiguration { @@ -83,8 +82,7 @@ public class StubRunnerConfiguration { } StubRunnerOptions stubRunnerOptions = stubRunnerOptions(builder); BatchStubRunner batchStubRunner = new BatchStubRunnerFactory(stubRunnerOptions, - this.provider.get(stubRunnerOptions), - new LazyMessageVerifier(beanFactory)).buildBatchStubRunner(); + this.provider.get(stubRunnerOptions), new LazyMessageVerifier(beanFactory)).buildBatchStubRunner(); // TODO: Consider running it in a separate thread RunningStubs runningStubs = batchStubRunner.runStubs(); registerPort(runningStubs); @@ -103,28 +101,19 @@ public class StubRunnerConfiguration { private StubRunnerOptionsBuilder builder(StubRunnerProperties props) { return new StubRunnerOptionsBuilder() - .withMinMaxPort( - Integer.valueOf(resolvePlaceholder(props.getMinPort(), - props.getMinPort())), - Integer.valueOf(resolvePlaceholder(props.getMaxPort(), - props.getMaxPort()))) + .withMinMaxPort(Integer.valueOf(resolvePlaceholder(props.getMinPort(), props.getMinPort())), + Integer.valueOf(resolvePlaceholder(props.getMaxPort(), props.getMaxPort()))) .withStubRepositoryRoot(props.getRepositoryRoot()) .withStubsMode(resolvePlaceholder(props.getStubsMode())) .withStubsClassifier(resolvePlaceholder(props.getClassifier())) - .withStubs(resolvePlaceholder(props.getIds())) - .withUsername(resolvePlaceholder(props.getUsername())) + .withStubs(resolvePlaceholder(props.getIds())).withUsername(resolvePlaceholder(props.getUsername())) .withPassword(resolvePlaceholder(props.getPassword())) - .withStubPerConsumer(Boolean - .parseBoolean(resolvePlaceholder(props.isStubsPerConsumer()))) + .withStubPerConsumer(Boolean.parseBoolean(resolvePlaceholder(props.isStubsPerConsumer()))) .withConsumerName(consumerName(props)) - .withMappingsOutputFolder( - resolvePlaceholder(props.getMappingsOutputFolder())) - .withDeleteStubsAfterTest(Boolean - .parseBoolean(resolvePlaceholder(props.isDeleteStubsAfterTest()))) - .withGenerateStubs( - Boolean.parseBoolean(resolvePlaceholder(props.isGenerateStubs()))) - .withProperties(props.getProperties()) - .withHttpServerStubConfigurer(props.getHttpServerStubConfigurer()) + .withMappingsOutputFolder(resolvePlaceholder(props.getMappingsOutputFolder())) + .withDeleteStubsAfterTest(Boolean.parseBoolean(resolvePlaceholder(props.isDeleteStubsAfterTest()))) + .withGenerateStubs(Boolean.parseBoolean(resolvePlaceholder(props.isGenerateStubs()))) + .withProperties(props.getProperties()).withHttpServerStubConfigurer(props.getHttpServerStubConfigurer()) .withServerId(resolvePlaceholder(props.getServerId())); } @@ -153,19 +142,15 @@ public class StubRunnerConfiguration { private void registerPort(RunningStubs runStubs) { MutablePropertySources propertySources = this.environment.getPropertySources(); if (!propertySources.contains(STUBRUNNER_PREFIX)) { - propertySources - .addFirst(new MapPropertySource(STUBRUNNER_PREFIX, new HashMap<>())); + propertySources.addFirst(new MapPropertySource(STUBRUNNER_PREFIX, new HashMap<>())); } - Map source = ((MapPropertySource) propertySources - .get(STUBRUNNER_PREFIX)).getSource(); - for (Map.Entry entry : runStubs.validNamesAndPorts() - .entrySet()) { - source.put(STUBRUNNER_PREFIX + "." + entry.getKey().getArtifactId() + ".port", - entry.getValue()); + Map source = ((MapPropertySource) propertySources.get(STUBRUNNER_PREFIX)).getSource(); + for (Map.Entry entry : runStubs.validNamesAndPorts().entrySet()) { + source.put(STUBRUNNER_PREFIX + "." + entry.getKey().getArtifactId() + ".port", entry.getValue()); // there are projects where artifact id is the same, what differs is the group // id - source.put(STUBRUNNER_PREFIX + "." + entry.getKey().getGroupId() + "." - + entry.getKey().getArtifactId() + ".port", entry.getValue()); + source.put(STUBRUNNER_PREFIX + "." + entry.getKey().getGroupId() + "." + entry.getKey().getArtifactId() + + ".port", entry.getValue()); } } @@ -199,8 +184,7 @@ class LazyMessageVerifier implements MessageVerifier { } @Override - public Object receive(String destination, long timeout, TimeUnit timeUnit, - YamlContract contract) { + public Object receive(String destination, long timeout, TimeUnit timeUnit, YamlContract contract) { return messageVerifier().receive(destination, timeout, timeUnit, contract); } @@ -210,8 +194,7 @@ class LazyMessageVerifier implements MessageVerifier { } @Override - public void send(Object payload, Map headers, String destination, - YamlContract contract) { + public void send(Object payload, Map headers, String destination, YamlContract contract) { messageVerifier().send(payload, headers, destination, contract); } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerPortBeanPostProcessor.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerPortBeanPostProcessor.java index e618a45aaf..70d01fb32b 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerPortBeanPostProcessor.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerPortBeanPostProcessor.java @@ -38,16 +38,14 @@ class StubRunnerPortBeanPostProcessor implements BeanPostProcessor { } @Override - public Object postProcessAfterInitialization(Object bean, String beanName) - throws BeansException { + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { injectStubRunnerPort(bean); return bean; } private void injectStubRunnerPort(Object bean) { Class clazz = bean.getClass(); - ReflectionUtils.FieldCallback fieldCallback = new StubRunnerPortFieldCallback( - this.environment, bean); + ReflectionUtils.FieldCallback fieldCallback = new StubRunnerPortFieldCallback(this.environment, bean); ReflectionUtils.doWithFields(clazz, fieldCallback); } @@ -65,16 +63,14 @@ class StubRunnerPortFieldCallback implements ReflectionUtils.FieldCallback { } @Override - public void doWith(Field field) - throws IllegalArgumentException, IllegalAccessException { + public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException { if (!field.isAnnotationPresent(StubRunnerPort.class)) { return; } ReflectionUtils.makeAccessible(field); String stub = field.getDeclaredAnnotation(StubRunnerPort.class).value(); - Integer port = this.environment - .getProperty(StubRunnerConfiguration.STUBRUNNER_PREFIX + "." - + stub.replace(":", ".") + ".port", Integer.class); + Integer port = this.environment.getProperty( + StubRunnerConfiguration.STUBRUNNER_PREFIX + "." + stub.replace(":", ".") + ".port", Integer.class); if (port != null) { field.set(this.bean, port); } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerProperties.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerProperties.java index f93e825105..5571903351 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerProperties.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerProperties.java @@ -253,8 +253,7 @@ public class StubRunnerProperties { } public void setProperties(String[] properties) { - Properties elements = StringUtils.splitArrayElementsIntoProperties(properties, - "="); + Properties elements = StringUtils.splitArrayElementsIntoProperties(properties, "="); if (elements == null) { return; } @@ -297,12 +296,10 @@ public class StubRunnerProperties { @Override public String toString() { - return "StubRunnerProperties{" + "minPort=" + this.minPort + ", maxPort=" - + this.maxPort + ", repositoryRoot=" + this.repositoryRoot + ", ids=" - + Arrays.toString(this.ids) + ", classifier='" + this.classifier + '\'' - + ", setStubsPerConsumer='" + this.stubsPerConsumer + "', consumerName='" - + this.consumerName + '\'' + ", stubsMode='" + this.stubsMode + '\'' - + ", size of properties=" + this.properties.size() + '}'; + return "StubRunnerProperties{" + "minPort=" + this.minPort + ", maxPort=" + this.maxPort + ", repositoryRoot=" + + this.repositoryRoot + ", ids=" + Arrays.toString(this.ids) + ", classifier='" + this.classifier + '\'' + + ", setStubsPerConsumer='" + this.stubsPerConsumer + "', consumerName='" + this.consumerName + '\'' + + ", stubsMode='" + this.stubsMode + '\'' + ", size of properties=" + this.properties.size() + '}'; } /** diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/ConditionalOnStubbedDiscoveryDisabled.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/ConditionalOnStubbedDiscoveryDisabled.java index 3c693e37e0..ffa4c82c6a 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/ConditionalOnStubbedDiscoveryDisabled.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/ConditionalOnStubbedDiscoveryDisabled.java @@ -34,8 +34,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE, ElementType.METHOD }) @Documented -@ConditionalOnProperty(value = "stubrunner.cloud.stubbed.discovery.enabled", - havingValue = "false") +@ConditionalOnProperty(value = "stubrunner.cloud.stubbed.discovery.enabled", havingValue = "false") public @interface ConditionalOnStubbedDiscoveryDisabled { } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/ConditionalOnStubbedDiscoveryEnabled.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/ConditionalOnStubbedDiscoveryEnabled.java index 0e4dfec70d..05472175b4 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/ConditionalOnStubbedDiscoveryEnabled.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/ConditionalOnStubbedDiscoveryEnabled.java @@ -35,8 +35,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE, ElementType.METHOD }) @Documented -@ConditionalOnProperty(value = "stubrunner.cloud.stubbed.discovery.enabled", - havingValue = "true", matchIfMissing = true) +@ConditionalOnProperty(value = "stubrunner.cloud.stubbed.discovery.enabled", havingValue = "true", + matchIfMissing = true) public @interface ConditionalOnStubbedDiscoveryEnabled { } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubMapperProperties.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubMapperProperties.java index c7a8f3900f..886435be85 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubMapperProperties.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubMapperProperties.java @@ -62,8 +62,8 @@ public class StubMapperProperties { if (StringUtils.hasText(id)) { return id; } - String groupAndArtifact = this.idsToServiceIds.get( - stubConfiguration.getGroupId() + ":" + stubConfiguration.getArtifactId()); + String groupAndArtifact = this.idsToServiceIds + .get(stubConfiguration.getGroupId() + ":" + stubConfiguration.getArtifactId()); if (StringUtils.hasText(groupAndArtifact)) { return groupAndArtifact; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerDiscoveryClient.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerDiscoveryClient.java index 458340ab8a..4794beda3f 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerDiscoveryClient.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerDiscoveryClient.java @@ -50,22 +50,18 @@ class StubRunnerDiscoveryClient implements DiscoveryClient { StubRunnerDiscoveryClient(DiscoveryClient delegate, StubFinder stubFinder, StubMapperProperties stubMapperProperties) { - this.delegate = delegate instanceof StubRunnerDiscoveryClient - ? noOpDiscoveryClient() : delegate; + this.delegate = delegate instanceof StubRunnerDiscoveryClient ? noOpDiscoveryClient() : delegate; if (log.isDebugEnabled()) { - log.debug("Will delegate calls to discovery service [" + this.delegate - + "] if a stub is not found"); + log.debug("Will delegate calls to discovery service [" + this.delegate + "] if a stub is not found"); } this.stubFinder = stubFinder; this.stubMapperProperties = stubMapperProperties; } - StubRunnerDiscoveryClient(StubFinder stubFinder, - StubMapperProperties stubMapperProperties) { + StubRunnerDiscoveryClient(StubFinder stubFinder, StubMapperProperties stubMapperProperties) { this.delegate = noOpDiscoveryClient(); if (log.isDebugEnabled()) { - log.debug("Will delegate calls to discovery service [" + this.delegate - + "] if a stub is not found"); + log.debug("Will delegate calls to discovery service [" + this.delegate + "] if a stub is not found"); } this.stubFinder = stubFinder; this.stubMapperProperties = stubMapperProperties; @@ -90,18 +86,16 @@ class StubRunnerDiscoveryClient implements DiscoveryClient { @Override public List getInstances(String serviceId) { - String ivyNotation = this.stubMapperProperties - .fromServiceIdToIvyNotation(serviceId); + String ivyNotation = this.stubMapperProperties.fromServiceIdToIvyNotation(serviceId); String serviceToFind = StringUtils.hasText(ivyNotation) ? ivyNotation : serviceId; URL stubUrl = this.stubFinder.findStubUrl(serviceToFind); - log.info("Resolved from ivy [" + ivyNotation + "] service to find [" - + serviceToFind + "]. Found stub is available under URL [" + stubUrl - + "]"); + log.info("Resolved from ivy [" + ivyNotation + "] service to find [" + serviceToFind + + "]. Found stub is available under URL [" + stubUrl + "]"); if (stubUrl == null) { return getInstancesFromDelegate(serviceId); } - return Collections.singletonList(new StubRunnerServiceInstance(serviceId, - stubUrl.getHost(), stubUrl.getPort(), toUri(stubUrl))); + return Collections.singletonList( + new StubRunnerServiceInstance(serviceId, stubUrl.getHost(), stubUrl.getPort(), toUri(stubUrl))); } private List getInstancesFromDelegate(String serviceId) { diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerReactiveDiscoveryClient.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerReactiveDiscoveryClient.java index bc0326e83d..ce3b1e5e7a 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerReactiveDiscoveryClient.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerReactiveDiscoveryClient.java @@ -34,8 +34,7 @@ import org.springframework.cloud.contract.stubrunner.StubFinder; */ class StubRunnerReactiveDiscoveryClient implements ReactiveDiscoveryClient { - private static final Log log = LogFactory - .getLog(StubRunnerReactiveDiscoveryClient.class); + private static final Log log = LogFactory.getLog(StubRunnerReactiveDiscoveryClient.class); private final ReactiveDiscoveryClient delegate; @@ -43,24 +42,20 @@ class StubRunnerReactiveDiscoveryClient implements ReactiveDiscoveryClient { private final StubMapperProperties stubMapperProperties; - StubRunnerReactiveDiscoveryClient(ReactiveDiscoveryClient delegate, - StubFinder stubFinder, StubMapperProperties stubMapperProperties) { - this.delegate = delegate instanceof StubRunnerDiscoveryClient - ? noOpDiscoveryClient() : delegate; + StubRunnerReactiveDiscoveryClient(ReactiveDiscoveryClient delegate, StubFinder stubFinder, + StubMapperProperties stubMapperProperties) { + this.delegate = delegate instanceof StubRunnerDiscoveryClient ? noOpDiscoveryClient() : delegate; if (log.isDebugEnabled()) { - log.debug("Will delegate calls to discovery service [" + this.delegate - + "] if a stub is not found"); + log.debug("Will delegate calls to discovery service [" + this.delegate + "] if a stub is not found"); } this.stubFinder = stubFinder; this.stubMapperProperties = stubMapperProperties; } - StubRunnerReactiveDiscoveryClient(StubFinder stubFinder, - StubMapperProperties stubMapperProperties) { + StubRunnerReactiveDiscoveryClient(StubFinder stubFinder, StubMapperProperties stubMapperProperties) { this.delegate = noOpDiscoveryClient(); if (log.isDebugEnabled()) { - log.debug("Will delegate calls to discovery service [" + this.delegate - + "] if a stub is not found"); + log.debug("Will delegate calls to discovery service [" + this.delegate + "] if a stub is not found"); } this.stubFinder = stubFinder; this.stubMapperProperties = stubMapperProperties; @@ -94,8 +89,7 @@ class StubRunnerReactiveDiscoveryClient implements ReactiveDiscoveryClient { @Override public Flux getServices() { - return Flux.just(client()) - .flatMapIterable(StubRunnerDiscoveryClient::getServices); + return Flux.just(client()).flatMapIterable(StubRunnerDiscoveryClient::getServices); } @Override diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerSpringCloudAutoConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerSpringCloudAutoConfiguration.java index afacd1a12f..9cba4ad152 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerSpringCloudAutoConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerSpringCloudAutoConfiguration.java @@ -44,16 +44,14 @@ import org.springframework.core.env.Environment; public class StubRunnerSpringCloudAutoConfiguration { @Bean - public StubRunnerDiscoveryClientWrapper stubRunnerDiscoveryClientWrapper( - BeanFactory beanFactory) { + public StubRunnerDiscoveryClientWrapper stubRunnerDiscoveryClientWrapper(BeanFactory beanFactory) { return new StubRunnerDiscoveryClientWrapper(beanFactory); } @Bean @ConditionalOnMissingBean(DiscoveryClient.class) @ConditionalOnStubbedDiscoveryEnabled - @ConditionalOnProperty(value = "stubrunner.cloud.delegate.enabled", - havingValue = "false", matchIfMissing = true) + @ConditionalOnProperty(value = "stubrunner.cloud.delegate.enabled", havingValue = "false", matchIfMissing = true) public DiscoveryClient noOpStubRunnerDiscoveryClient(StubFinder stubFinder, StubMapperProperties stubMapperProperties) { return new StubRunnerDiscoveryClient(stubFinder, stubMapperProperties); @@ -62,10 +60,9 @@ public class StubRunnerSpringCloudAutoConfiguration { @Bean @ConditionalOnMissingBean(ReactiveDiscoveryClient.class) @ConditionalOnStubbedDiscoveryEnabled - @ConditionalOnProperty(value = "stubrunner.cloud.delegate.enabled", - havingValue = "false", matchIfMissing = true) - public ReactiveDiscoveryClient noOpStubRunnerReactiveDiscoveryClient( - StubFinder stubFinder, StubMapperProperties stubMapperProperties) { + @ConditionalOnProperty(value = "stubrunner.cloud.delegate.enabled", havingValue = "false", matchIfMissing = true) + public ReactiveDiscoveryClient noOpStubRunnerReactiveDiscoveryClient(StubFinder stubFinder, + StubMapperProperties stubMapperProperties) { return new StubRunnerReactiveDiscoveryClient(stubFinder, stubMapperProperties); } @@ -90,22 +87,18 @@ class StubRunnerDiscoveryClientWrapper implements BeanPostProcessor { } @Override - public Object postProcessBeforeInitialization(Object bean, String beanName) - throws BeansException { + public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } @Override - public Object postProcessAfterInitialization(Object bean, String beanName) - throws BeansException { - if (bean instanceof DiscoveryClient - && !(bean instanceof StubRunnerDiscoveryClient)) { + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof DiscoveryClient && !(bean instanceof StubRunnerDiscoveryClient)) { if (!isStubbedDiscoveryEnabled()) { return bean; } if (isCloudDelegateEnabled()) { - return new StubRunnerDiscoveryClient((DiscoveryClient) bean, stubFinder(), - stubMapperProperties()); + return new StubRunnerDiscoveryClient((DiscoveryClient) bean, stubFinder(), stubMapperProperties()); } return new StubRunnerDiscoveryClient(stubFinder(), stubMapperProperties()); } @@ -121,26 +114,23 @@ class StubRunnerDiscoveryClientWrapper implements BeanPostProcessor { StubMapperProperties stubMapperProperties() { if (this.stubMapperProperties == null) { - this.stubMapperProperties = this.beanFactory - .getBean(StubMapperProperties.class); + this.stubMapperProperties = this.beanFactory.getBean(StubMapperProperties.class); } return this.stubMapperProperties; } boolean isStubbedDiscoveryEnabled() { if (this.stubbedDiscoveryEnabled == null) { - this.stubbedDiscoveryEnabled = Boolean - .valueOf(this.beanFactory.getBean(Environment.class).getProperty( - "stubrunner.cloud.stubbed.discovery.enabled", "true")); + this.stubbedDiscoveryEnabled = Boolean.valueOf(this.beanFactory.getBean(Environment.class) + .getProperty("stubrunner.cloud.stubbed.discovery.enabled", "true")); } return this.stubbedDiscoveryEnabled; } boolean isCloudDelegateEnabled() { if (this.cloudDelegateEnabled == null) { - this.cloudDelegateEnabled = Boolean - .valueOf(this.beanFactory.getBean(Environment.class) - .getProperty("stubrunner.cloud.delegate.enabled", "false")); + this.cloudDelegateEnabled = Boolean.valueOf(this.beanFactory.getBean(Environment.class) + .getProperty("stubrunner.cloud.delegate.enabled", "false")); } return this.cloudDelegateEnabled; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/consul/ConsulStubsRegistrar.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/consul/ConsulStubsRegistrar.java index ecd465513d..d84e53f636 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/consul/ConsulStubsRegistrar.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/consul/ConsulStubsRegistrar.java @@ -42,8 +42,7 @@ import org.springframework.util.StringUtils; */ public class ConsulStubsRegistrar implements StubsRegistrar { - private static final Log log = LogFactory - .getLog(MethodHandles.lookup().lookupClass()); + private static final Log log = LogFactory.getLog(MethodHandles.lookup().lookupClass()); private final StubRunning stubRunning; @@ -58,8 +57,8 @@ public class ConsulStubsRegistrar implements StubsRegistrar { private final List services = new LinkedList<>(); public ConsulStubsRegistrar(StubRunning stubRunning, ConsulClient consulClient, - StubMapperProperties stubMapperProperties, - ConsulDiscoveryProperties consulDiscoveryProperties, InetUtils inetUtils) { + StubMapperProperties stubMapperProperties, ConsulDiscoveryProperties consulDiscoveryProperties, + InetUtils inetUtils) { this.stubRunning = stubRunning; this.consulClient = consulClient; this.stubMapperProperties = stubMapperProperties; @@ -69,33 +68,29 @@ public class ConsulStubsRegistrar implements StubsRegistrar { @Override public void registerStubs() { - Map activeStubs = this.stubRunning.runStubs() - .validNamesAndPorts(); + Map activeStubs = this.stubRunning.runStubs().validNamesAndPorts(); for (Map.Entry entry : activeStubs.entrySet()) { NewService newService = newService(entry.getKey(), entry.getValue()); this.services.add(newService); try { this.consulClient.agentServiceRegister(newService); if (log.isDebugEnabled()) { - log.debug("Successfully registered stub [" - + entry.getKey().toColonSeparatedDependencyNotation() + log.debug("Successfully registered stub [" + entry.getKey().toColonSeparatedDependencyNotation() + "] in Service Discovery"); } } catch (Exception e) { log.warn("Exception occurred while trying to register a stub [" - + entry.getKey().toColonSeparatedDependencyNotation() - + "] in Service Discovery", e); + + entry.getKey().toColonSeparatedDependencyNotation() + "] in Service Discovery", e); } } } protected NewService newService(StubConfiguration stubConfiguration, Integer port) { NewService newService = new NewService(); - newService.setAddress( - StringUtils.hasText(this.consulDiscoveryProperties.getHostname()) - ? this.consulDiscoveryProperties.getHostname() - : this.inetUtils.findFirstNonLoopbackAddress().getHostName()); + newService.setAddress(StringUtils.hasText(this.consulDiscoveryProperties.getHostname()) + ? this.consulDiscoveryProperties.getHostname() + : this.inetUtils.findFirstNonLoopbackAddress().getHostName()); newService.setId(stubConfiguration.getArtifactId()); newService.setName(name(stubConfiguration)); newService.setPort(port); @@ -103,8 +98,8 @@ public class ConsulStubsRegistrar implements StubsRegistrar { } protected String name(StubConfiguration stubConfiguration) { - String resolvedName = this.stubMapperProperties.fromIvyNotationToId( - stubConfiguration.toColonSeparatedDependencyNotation()); + String resolvedName = this.stubMapperProperties + .fromIvyNotationToId(stubConfiguration.toColonSeparatedDependencyNotation()); if (StringUtils.hasText(resolvedName)) { return resolvedName; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/consul/StubRunnerSpringCloudConsulAutoConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/consul/StubRunnerSpringCloudConsulAutoConfiguration.java index 1a48de243c..2569e18fb0 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/consul/StubRunnerSpringCloudConsulAutoConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/consul/StubRunnerSpringCloudConsulAutoConfiguration.java @@ -39,19 +39,18 @@ import org.springframework.context.annotation.Configuration; * @since 1.0.0 */ @Configuration(proxyBeanMethods = false) -@AutoConfigureAfter({ StubRunnerConfiguration.class, - ConsulServiceRegistryAutoConfiguration.class }) +@AutoConfigureAfter({ StubRunnerConfiguration.class, ConsulServiceRegistryAutoConfiguration.class }) @ConditionalOnClass(ConsulClient.class) @ConditionalOnStubbedDiscoveryDisabled @ConditionalOnProperty(value = "stubrunner.cloud.consul.enabled", matchIfMissing = true) public class StubRunnerSpringCloudConsulAutoConfiguration { @Bean(initMethod = "registerStubs") - public StubsRegistrar stubsRegistrar(StubRunning stubRunning, - ConsulClient consulClient, StubMapperProperties stubMapperProperties, - ConsulDiscoveryProperties consulDiscoveryProperties, InetUtils inetUtils) { - return new ConsulStubsRegistrar(stubRunning, consulClient, stubMapperProperties, - consulDiscoveryProperties, inetUtils); + public StubsRegistrar stubsRegistrar(StubRunning stubRunning, ConsulClient consulClient, + StubMapperProperties stubMapperProperties, ConsulDiscoveryProperties consulDiscoveryProperties, + InetUtils inetUtils) { + return new ConsulStubsRegistrar(stubRunning, consulClient, stubMapperProperties, consulDiscoveryProperties, + inetUtils); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/ConditionalOnEurekaEnabled.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/ConditionalOnEurekaEnabled.java index 9d049f579b..2ad62d3eb5 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/ConditionalOnEurekaEnabled.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/ConditionalOnEurekaEnabled.java @@ -34,8 +34,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE, ElementType.METHOD }) @Documented -@ConditionalOnProperty(value = "eureka.client.enabled", havingValue = "true", - matchIfMissing = true) +@ConditionalOnProperty(value = "eureka.client.enabled", havingValue = "true", matchIfMissing = true) @interface ConditionalOnEurekaEnabled { } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/EurekaStubsRegistrar.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/EurekaStubsRegistrar.java index dccc8b70d9..ad13b2e6c0 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/EurekaStubsRegistrar.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/EurekaStubsRegistrar.java @@ -52,8 +52,7 @@ import org.springframework.util.StringUtils; */ public class EurekaStubsRegistrar implements StubsRegistrar { - private static final Log log = LogFactory - .getLog(MethodHandles.lookup().lookupClass()); + private static final Log log = LogFactory.getLog(MethodHandles.lookup().lookupClass()); private final StubRunning stubRunning; @@ -71,11 +70,10 @@ public class EurekaStubsRegistrar implements StubsRegistrar { private final ApplicationContext context; - public EurekaStubsRegistrar(StubRunning stubRunning, - ServiceRegistry serviceRegistry, + public EurekaStubsRegistrar(StubRunning stubRunning, ServiceRegistry serviceRegistry, StubMapperProperties stubMapperProperties, InetUtils inetUtils, - EurekaInstanceConfigBean eurekaInstanceConfigBean, - EurekaClientConfigBean eurekaClientConfigBean, ApplicationContext context) { + EurekaInstanceConfigBean eurekaInstanceConfigBean, EurekaClientConfigBean eurekaClientConfigBean, + ApplicationContext context) { this.stubRunning = stubRunning; this.stubMapperProperties = stubMapperProperties; this.serviceRegistry = serviceRegistry; @@ -87,32 +85,27 @@ public class EurekaStubsRegistrar implements StubsRegistrar { @Override public void registerStubs() { - Map activeStubs = this.stubRunning.runStubs() - .validNamesAndPorts(); + Map activeStubs = this.stubRunning.runStubs().validNamesAndPorts(); for (Map.Entry entry : activeStubs.entrySet()) { EurekaInstanceConfigBean instance = registration(entry); - log.info("Will register stub in Eureka " + "[" + instance.getAppname() + ", " - + instance.getHostname() + ", " + instance.getNonSecurePort() + ", " - + instance.getInstanceId() + "]"); + log.info("Will register stub in Eureka " + "[" + instance.getAppname() + ", " + instance.getHostname() + + ", " + instance.getNonSecurePort() + ", " + instance.getInstanceId() + "]"); InstanceInfo instanceInfo = new InstanceInfoFactory().create(instance); - ApplicationInfoManager applicationInfoManager = new ApplicationInfoManager( - instance, instanceInfo); + ApplicationInfoManager applicationInfoManager = new ApplicationInfoManager(instance, instanceInfo); AbstractDiscoveryClientOptionalArgs args = args(); - EurekaClient client = new CloudEurekaClient(applicationInfoManager, - this.eurekaClientConfigBean, args, this.context); + EurekaClient client = new CloudEurekaClient(applicationInfoManager, this.eurekaClientConfigBean, args, + this.context); EurekaRegistration registration = EurekaRegistration.builder(instance) .with(this.eurekaClientConfigBean, this.context).with(client).build(); this.registrations.add(registration); try { this.serviceRegistry.register(registration); - log.info("Successfully registered stub " + "[" - + entry.getKey().toColonSeparatedDependencyNotation() + log.info("Successfully registered stub " + "[" + entry.getKey().toColonSeparatedDependencyNotation() + "] in Service Discovery"); } catch (Exception e) { log.warn("Exception occurred while trying to register a stub [" - + entry.getKey().toColonSeparatedDependencyNotation() - + "] in Service Discovery", e); + + entry.getKey().toColonSeparatedDependencyNotation() + "] in Service Discovery", e); } } } @@ -126,22 +119,19 @@ public class EurekaStubsRegistrar implements StubsRegistrar { } } - private EurekaInstanceConfigBean registration( - Map.Entry entry) { + private EurekaInstanceConfigBean registration(Map.Entry entry) { EurekaInstanceConfigBean config = new EurekaInstanceConfigBean(this.inetUtils); String appName = name(entry.getKey()); config.setInstanceEnabledOnit(true); InetAddress address = this.inetUtils.findFirstNonLoopbackAddress(); config.setIpAddress(address.getHostAddress()); - config.setHostname(StringUtils.hasText(hostName(entry)) ? hostName(entry) - : address.getHostName()); + config.setHostname(StringUtils.hasText(hostName(entry)) ? hostName(entry) : address.getHostName()); config.setAppname(appName); config.setVirtualHostName(appName); config.setSecureVirtualHostName(appName); int port = port(entry); config.setNonSecurePort(port); - config.setInstanceId(address.getHostAddress() + ":" - + entry.getKey().getArtifactId() + ":" + port); + config.setInstanceId(address.getHostAddress() + ":" + entry.getKey().getArtifactId() + ":" + port); config.setLeaseRenewalIntervalInSeconds(1); return config; } @@ -155,8 +145,8 @@ public class EurekaStubsRegistrar implements StubsRegistrar { } private String name(StubConfiguration stubConfiguration) { - String resolvedName = this.stubMapperProperties.fromIvyNotationToId( - stubConfiguration.toColonSeparatedDependencyNotation()); + String resolvedName = this.stubMapperProperties + .fromIvyNotationToId(stubConfiguration.toColonSeparatedDependencyNotation()); if (StringUtils.hasText(resolvedName)) { return resolvedName; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/StubRunnerSpringCloudEurekaAutoConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/StubRunnerSpringCloudEurekaAutoConfiguration.java index cbcad61254..2b40a56d20 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/StubRunnerSpringCloudEurekaAutoConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/StubRunnerSpringCloudEurekaAutoConfiguration.java @@ -51,8 +51,7 @@ import org.springframework.core.env.Environment; * @since 1.0.0 */ @Configuration(proxyBeanMethods = false) -@AutoConfigureAfter({ StubRunnerConfiguration.class, - EurekaClientAutoConfiguration.class }) +@AutoConfigureAfter({ StubRunnerConfiguration.class, EurekaClientAutoConfiguration.class }) @ConditionalOnClass(CloudEurekaClient.class) @ConditionalOnStubbedDiscoveryDisabled @ConditionalOnEurekaEnabled @@ -65,13 +64,11 @@ public class StubRunnerSpringCloudEurekaAutoConfiguration { @Bean(initMethod = "registerStubs") public StubsRegistrar stubsRegistrar(StubRunning stubRunning, - ServiceRegistry serviceRegistry, - ApplicationContext context, StubMapperProperties stubMapperProperties, - InetUtils inetUtils, EurekaInstanceConfigBean eurekaInstanceConfigBean, - EurekaClientConfigBean eurekaClientConfigBean) { - return new EurekaStubsRegistrar(stubRunning, serviceRegistry, - stubMapperProperties, inetUtils, eurekaInstanceConfigBean, - eurekaClientConfigBean, context); + ServiceRegistry serviceRegistry, ApplicationContext context, + StubMapperProperties stubMapperProperties, InetUtils inetUtils, + EurekaInstanceConfigBean eurekaInstanceConfigBean, EurekaClientConfigBean eurekaClientConfigBean) { + return new EurekaStubsRegistrar(stubRunning, serviceRegistry, stubMapperProperties, inetUtils, + eurekaInstanceConfigBean, eurekaClientConfigBean, context); } } @@ -89,21 +86,17 @@ public class StubRunnerSpringCloudEurekaAutoConfiguration { @Bean(initMethod = "registerStubs") public StubsRegistrar stubsRegistrar(StubRunning stubRunning, - ServiceRegistry serviceRegistry, - ApplicationContext context, StubMapperProperties stubMapperProperties, - InetUtils inetUtils, EurekaInstanceConfigBean eurekaInstanceConfigBean, - EurekaClientConfigBean eurekaClientConfigBean) { - return new EurekaStubsRegistrar(stubRunning, serviceRegistry, - stubMapperProperties, inetUtils, eurekaInstanceConfigBean, - eurekaClientConfigBean, context) { + ServiceRegistry serviceRegistry, ApplicationContext context, + StubMapperProperties stubMapperProperties, InetUtils inetUtils, + EurekaInstanceConfigBean eurekaInstanceConfigBean, EurekaClientConfigBean eurekaClientConfigBean) { + return new EurekaStubsRegistrar(stubRunning, serviceRegistry, stubMapperProperties, inetUtils, + eurekaInstanceConfigBean, eurekaClientConfigBean, context) { @Override protected String hostName(Map.Entry entry) { - String hostname = CloudConfig.this.environment - .getProperty("application.hostname") + "-" + entry.getValue() - + "." + CloudConfig.this.environment - .getProperty("application.domain"); - log.info("Registering stub [" + entry.getKey().getArtifactId() - + "] with hostname [" + hostname + "]"); + String hostname = CloudConfig.this.environment.getProperty("application.hostname") + "-" + + entry.getValue() + "." + CloudConfig.this.environment.getProperty("application.domain"); + log.info("Registering stub [" + entry.getKey().getArtifactId() + "] with hostname [" + hostname + + "]"); return hostname; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/loadbalancer/SpringCloudLoadBalancerAutoConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/loadbalancer/SpringCloudLoadBalancerAutoConfiguration.java index 21870752c8..052adbd7d2 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/loadbalancer/SpringCloudLoadBalancerAutoConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/loadbalancer/SpringCloudLoadBalancerAutoConfiguration.java @@ -62,26 +62,22 @@ import org.springframework.util.StringUtils; */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass({ LoadBalancerClient.class, LoadBalancerClientFactory.class }) -@ConditionalOnProperty(value = "stubrunner.cloud.loadbalancer.enabled", - matchIfMissing = true) +@ConditionalOnProperty(value = "stubrunner.cloud.loadbalancer.enabled", matchIfMissing = true) @ConditionalOnBean(StubMapperProperties.class) @AutoConfigureBefore(LoadBalancerAutoConfiguration.class) -@AutoConfigureAfter({ LoadBalancerClientConfiguration.class, - StubRunnerSpringCloudAutoConfiguration.class }) +@AutoConfigureAfter({ LoadBalancerClientConfiguration.class, StubRunnerSpringCloudAutoConfiguration.class }) @ConditionalOnStubbedDiscoveryEnabled public class SpringCloudLoadBalancerAutoConfiguration { @Bean @Primary - LoadBalancerClientFactory stubRunnerLoadBalancerClientFactory( - BeanFactory beanFactory) { + LoadBalancerClientFactory stubRunnerLoadBalancerClientFactory(BeanFactory beanFactory) { return new StubRunnerLoadBalancerClientFactory(beanFactory); } } -class StubRunnerLoadBalancerClientFactory extends LoadBalancerClientFactory - implements Closeable { +class StubRunnerLoadBalancerClientFactory extends LoadBalancerClientFactory implements Closeable { private final BeanFactory beanFactory; @@ -91,8 +87,7 @@ class StubRunnerLoadBalancerClientFactory extends LoadBalancerClientFactory @Override public ReactiveLoadBalancer getInstance(String serviceId) { - return new ContractReactorServiceInstanceLoadBalancer(this.beanFactory, - serviceId); + return new ContractReactorServiceInstanceLoadBalancer(this.beanFactory, serviceId); } @Override @@ -138,8 +133,7 @@ class StubbedServiceInstance implements ServiceInstance { static final Map> CACHE = new ConcurrentHashMap<>(); - StubbedServiceInstance(StubFinder stubFinder, - StubMapperProperties stubMapperProperties, String serviceId) { + StubbedServiceInstance(StubFinder stubFinder, StubMapperProperties stubMapperProperties, String serviceId) { this.stubFinder = stubFinder; this.stubMapperProperties = stubMapperProperties; this.serviceId = serviceId; @@ -151,11 +145,9 @@ class StubbedServiceInstance implements ServiceInstance { return entry; } RunningStubs runningStubs = this.stubFinder.findAllRunningStubs(); - String mappedServiceName = StringUtils.hasText( - this.stubMapperProperties.fromServiceIdToIvyNotation(this.serviceId)) - ? this.stubMapperProperties.fromServiceIdToIvyNotation( - this.serviceId) - : this.serviceId; + String mappedServiceName = StringUtils + .hasText(this.stubMapperProperties.fromServiceIdToIvyNotation(this.serviceId)) + ? this.stubMapperProperties.fromServiceIdToIvyNotation(this.serviceId) : this.serviceId; entry = runningStubs.getEntry(mappedServiceName); CACHE.put(this.serviceId, entry); return entry; @@ -188,8 +180,7 @@ class StubbedServiceInstance implements ServiceInstance { @Override public URI getUri() { - return URI.create( - (isSecure() ? "https://" : "http://") + getHost() + ":" + getPort()); + return URI.create((isSecure() ? "https://" : "http://") + getHost() + ":" + getPort()); } @Override @@ -199,8 +190,7 @@ class StubbedServiceInstance implements ServiceInstance { } -class ContractReactorServiceInstanceLoadBalancer - implements ReactorServiceInstanceLoadBalancer, LoadBalancerLifecycle { +class ContractReactorServiceInstanceLoadBalancer implements ReactorServiceInstanceLoadBalancer, LoadBalancerLifecycle { private final BeanFactory beanFactory; @@ -210,8 +200,7 @@ class ContractReactorServiceInstanceLoadBalancer private StubMapperProperties stubMapperProperties; - ContractReactorServiceInstanceLoadBalancer(BeanFactory beanFactory, - String serviceId) { + ContractReactorServiceInstanceLoadBalancer(BeanFactory beanFactory, String serviceId) { this.beanFactory = beanFactory; this.serviceId = serviceId; } @@ -228,8 +217,8 @@ class ContractReactorServiceInstanceLoadBalancer @Override public Mono> choose(Request request) { - return Mono.just(new DefaultResponse(new StubbedServiceInstance(stubFinder(), - stubMapperProperties(), this.serviceId))); + return Mono.just( + new DefaultResponse(new StubbedServiceInstance(stubFinder(), stubMapperProperties(), this.serviceId))); } private StubFinder stubFinder() { @@ -241,8 +230,7 @@ class ContractReactorServiceInstanceLoadBalancer private StubMapperProperties stubMapperProperties() { if (this.stubMapperProperties == null) { - this.stubMapperProperties = this.beanFactory - .getBean(StubMapperProperties.class); + this.stubMapperProperties = this.beanFactory.getBean(StubMapperProperties.class); } return this.stubMapperProperties; } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/zookeeper/StubRunnerSpringCloudZookeeperAutoConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/zookeeper/StubRunnerSpringCloudZookeeperAutoConfiguration.java index 24f773838c..2f40bf8ca5 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/zookeeper/StubRunnerSpringCloudZookeeperAutoConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/zookeeper/StubRunnerSpringCloudZookeeperAutoConfiguration.java @@ -39,21 +39,18 @@ import org.springframework.context.annotation.Configuration; * @since 1.0.0 */ @Configuration(proxyBeanMethods = false) -@AutoConfigureAfter({ StubRunnerConfiguration.class, - CuratorServiceDiscoveryAutoConfiguration.class }) +@AutoConfigureAfter({ StubRunnerConfiguration.class, CuratorServiceDiscoveryAutoConfiguration.class }) @ConditionalOnClass(org.apache.curator.x.discovery.ServiceInstance.class) @ConditionalOnStubbedDiscoveryDisabled @ConditionalOnZookeeperDiscoveryEnabled -@ConditionalOnProperty(value = "stubrunner.cloud.zookeeper.enabled", - matchIfMissing = true) +@ConditionalOnProperty(value = "stubrunner.cloud.zookeeper.enabled", matchIfMissing = true) public class StubRunnerSpringCloudZookeeperAutoConfiguration { @Bean(initMethod = "registerStubs") - public StubsRegistrar stubsRegistrar(StubRunning stubRunning, - CuratorFramework curatorFramework, StubMapperProperties stubMapperProperties, - ZookeeperDiscoveryProperties zookeeperDiscoveryProperties) { - return new ZookeeperStubsRegistrar(stubRunning, curatorFramework, - stubMapperProperties, zookeeperDiscoveryProperties); + public StubsRegistrar stubsRegistrar(StubRunning stubRunning, CuratorFramework curatorFramework, + StubMapperProperties stubMapperProperties, ZookeeperDiscoveryProperties zookeeperDiscoveryProperties) { + return new ZookeeperStubsRegistrar(stubRunning, curatorFramework, stubMapperProperties, + zookeeperDiscoveryProperties); } } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/zookeeper/ZookeeperStubsRegistrar.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/zookeeper/ZookeeperStubsRegistrar.java index 615bb1d414..0d697c56a8 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/zookeeper/ZookeeperStubsRegistrar.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/zookeeper/ZookeeperStubsRegistrar.java @@ -44,8 +44,7 @@ import org.springframework.util.StringUtils; */ public class ZookeeperStubsRegistrar implements StubsRegistrar { - private static final Log log = LogFactory - .getLog(MethodHandles.lookup().lookupClass()); + private static final Log log = LogFactory.getLog(MethodHandles.lookup().lookupClass()); private final StubRunning stubRunning; @@ -57,9 +56,8 @@ public class ZookeeperStubsRegistrar implements StubsRegistrar { private final List discoveryList = new LinkedList<>(); - public ZookeeperStubsRegistrar(StubRunning stubRunning, - CuratorFramework curatorFramework, StubMapperProperties stubMapperProperties, - ZookeeperDiscoveryProperties zookeeperDiscoveryProperties) { + public ZookeeperStubsRegistrar(StubRunning stubRunning, CuratorFramework curatorFramework, + StubMapperProperties stubMapperProperties, ZookeeperDiscoveryProperties zookeeperDiscoveryProperties) { this.stubRunning = stubRunning; this.curatorFramework = curatorFramework; this.stubMapperProperties = stubMapperProperties; @@ -68,36 +66,29 @@ public class ZookeeperStubsRegistrar implements StubsRegistrar { @Override public void registerStubs() { - Map activeStubs = this.stubRunning.runStubs() - .validNamesAndPorts(); + Map activeStubs = this.stubRunning.runStubs().validNamesAndPorts(); for (Map.Entry entry : activeStubs.entrySet()) { - ServiceInstance serviceInstance = serviceInstance(entry.getKey(), - entry.getValue()); + ServiceInstance serviceInstance = serviceInstance(entry.getKey(), entry.getValue()); ServiceDiscovery serviceDiscovery = serviceDiscovery(serviceInstance); this.discoveryList.add(serviceDiscovery); try { serviceDiscovery.start(); if (log.isDebugEnabled()) { - log.debug("Successfully registered stub [" - + entry.getKey().toColonSeparatedDependencyNotation() + log.debug("Successfully registered stub [" + entry.getKey().toColonSeparatedDependencyNotation() + "] in Service Discovery"); } } catch (Exception e) { log.warn("Exception occurred while trying to register a stub [" - + entry.getKey().toColonSeparatedDependencyNotation() - + "] in Service Discovery", e); + + entry.getKey().toColonSeparatedDependencyNotation() + "] in Service Discovery", e); } } } - protected ServiceInstance serviceInstance(StubConfiguration stubConfiguration, - int port) { + protected ServiceInstance serviceInstance(StubConfiguration stubConfiguration, int port) { try { - return ServiceInstance.builder() - .uriSpec(new UriSpec(this.zookeeperDiscoveryProperties.getUriSpec())) - .address("localhost").port(port).name(name(stubConfiguration)) - .build(); + return ServiceInstance.builder().uriSpec(new UriSpec(this.zookeeperDiscoveryProperties.getUriSpec())) + .address("localhost").port(port).name(name(stubConfiguration)).build(); } catch (Exception e) { throw new IllegalStateException(e); @@ -105,8 +96,8 @@ public class ZookeeperStubsRegistrar implements StubsRegistrar { } private String name(StubConfiguration stubConfiguration) { - String resolvedName = this.stubMapperProperties.fromIvyNotationToId( - stubConfiguration.toColonSeparatedDependencyNotation()); + String resolvedName = this.stubMapperProperties + .fromIvyNotationToId(stubConfiguration.toColonSeparatedDependencyNotation()); if (StringUtils.hasText(resolvedName)) { return resolvedName; } @@ -114,8 +105,7 @@ public class ZookeeperStubsRegistrar implements StubsRegistrar { } protected ServiceDiscovery serviceDiscovery(ServiceInstance serviceInstance) { - return ServiceDiscoveryBuilder.builder(Void.class) - .basePath(this.zookeeperDiscoveryProperties.getRoot()) + return ServiceDiscoveryBuilder.builder(Void.class).basePath(this.zookeeperDiscoveryProperties.getRoot()) .client(this.curatorFramework).thisInstance(serviceInstance).build(); } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/util/StubsParser.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/util/StubsParser.java index 7c138a0682..f7bbe3cbc0 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/util/StubsParser.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/util/StubsParser.java @@ -56,8 +56,7 @@ public final class StubsParser { * @param defaultClassifier default classifier to append if one is missing * @return parsed stub configurations */ - public static List fromString(Collection collection, - String defaultClassifier) { + public static List fromString(Collection collection, String defaultClassifier) { List stubs = new ArrayList<>(); for (String config : collection) { if (StringUtils.hasText(config)) { @@ -72,8 +71,7 @@ public final class StubsParser { * @return mapping of parsed stub configurations to ports on which the stub is running */ public static Map fromStringWithPort(String notation) { - StubSpecification stub = StubSpecification.parse(notation, - StubConfiguration.DEFAULT_CLASSIFIER); + StubSpecification stub = StubSpecification.parse(notation, StubConfiguration.DEFAULT_CLASSIFIER); if (!stub.hasPort()) { return Collections.emptyMap(); } @@ -86,8 +84,7 @@ public final class StubsParser { * present */ public static String ivyFromStringWithPort(String notation) { - StubSpecification stub = StubSpecification.parse(notation, - StubConfiguration.DEFAULT_CLASSIFIER); + StubSpecification stub = StubSpecification.parse(notation, StubConfiguration.DEFAULT_CLASSIFIER); if (!stub.hasPort()) { return ""; } @@ -129,8 +126,7 @@ public final class StubsParser { } catch (NumberFormatException e) { } - return new StubSpecification(new StubConfiguration(id, defaultClassifier), - port); + return new StubSpecification(new StubConfiguration(id, defaultClassifier), port); } public boolean hasPort() { diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/util/ZipCategory.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/util/ZipCategory.java index 1a190f8ea8..dde85eaa75 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/util/ZipCategory.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/util/ZipCategory.java @@ -63,8 +63,7 @@ public final class ZipCategory { List unzippedFiles = new ArrayList<>(); try (InputStream fileInputStream = Files.newInputStream(self.toPath())) { try (ZipInputStream zipInput = new ZipInputStream(fileInputStream)) { - for (ZipEntry entry = zipInput - .getNextEntry(); entry != null; entry = zipInput.getNextEntry()) { + for (ZipEntry entry = zipInput.getNextEntry(); entry != null; entry = zipInput.getNextEntry()) { if (!entry.isDirectory()) { final File file = new File(destination, entry.getName()); if (file.getParentFile() != null) { diff --git a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleCustomPortJUnitTest.java b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleCustomPortJUnitTest.java index 6648a726b7..d20b2de646 100644 --- a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleCustomPortJUnitTest.java +++ b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleCustomPortJUnitTest.java @@ -39,10 +39,8 @@ public class StubRunnerRuleCustomPortJUnitTest { @ClassRule public static StubRunnerRule rule = new StubRunnerRule().repoRoot(repoRoot()) .stubsMode(StubRunnerProperties.StubsMode.REMOTE) - .downloadStub("org.springframework.cloud.contract.verifier.stubs", - "loanIssuance") - .withPort(12345).downloadStub( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer:12346"); + .downloadStub("org.springframework.cloud.contract.verifier.stubs", "loanIssuance").withPort(12345) + .downloadStub("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer:12346"); @BeforeClass @AfterClass @@ -55,8 +53,7 @@ public class StubRunnerRuleCustomPortJUnitTest { private static String repoRoot() { try { - return StubRunnerRuleCustomPortJUnitTest.class - .getResource("/m2repo/repository/").toURI().toString(); + return StubRunnerRuleCustomPortJUnitTest.class.getResource("/m2repo/repository/").toURI().toString(); } catch (Exception e) { return ""; @@ -66,33 +63,24 @@ public class StubRunnerRuleCustomPortJUnitTest { @Test public void should_start_wiremock_servers() throws Exception { // expect: 'WireMocks are running' - then(rule.findStubUrl("org.springframework.cloud.contract.verifier.stubs", - "loanIssuance")).isNotNull(); + then(rule.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")).isNotNull(); then(rule.findStubUrl("loanIssuance")).isNotNull(); - then(rule.findStubUrl("loanIssuance")).isEqualTo(rule.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs", "loanIssuance")); - then(rule.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")) - .isNotNull(); + then(rule.findStubUrl("loanIssuance")) + .isEqualTo(rule.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")); + then(rule.findStubUrl("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")).isNotNull(); // and: then(rule.findAllRunningStubs().isPresent("loanIssuance")).isTrue(); - then(rule.findAllRunningStubs().isPresent( - "org.springframework.cloud.contract.verifier.stubs", + then(rule.findAllRunningStubs().isPresent("org.springframework.cloud.contract.verifier.stubs", "fraudDetectionServer")).isTrue(); - then(rule.findAllRunningStubs().isPresent( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")) - .isTrue(); + then(rule.findAllRunningStubs() + .isPresent("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")).isTrue(); // and: 'Stubs were registered' - then(httpGet(rule.findStubUrl("loanIssuance").toString() + "/name")) - .isEqualTo("loanIssuance"); - then(httpGet(rule.findStubUrl("fraudDetectionServer").toString() + "/name")) - .isEqualTo("fraudDetectionServer"); + then(httpGet(rule.findStubUrl("loanIssuance").toString() + "/name")).isEqualTo("loanIssuance"); + then(httpGet(rule.findStubUrl("fraudDetectionServer").toString() + "/name")).isEqualTo("fraudDetectionServer"); // and: 'The port is fixed' // tag::test_with_port[] - then(rule.findStubUrl("loanIssuance")) - .isEqualTo(URI.create("http://localhost:12345").toURL()); - then(rule.findStubUrl("fraudDetectionServer")) - .isEqualTo(URI.create("http://localhost:12346").toURL()); + then(rule.findStubUrl("loanIssuance")).isEqualTo(URI.create("http://localhost:12345").toURL()); + then(rule.findStubUrl("fraudDetectionServer")).isEqualTo(URI.create("http://localhost:12346").toURL()); // end::test_with_port[] } diff --git a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleJUnitTest.java b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleJUnitTest.java index d319fbef8a..1b9b815f45 100644 --- a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleJUnitTest.java +++ b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit/StubRunnerRuleJUnitTest.java @@ -39,10 +39,8 @@ public class StubRunnerRuleJUnitTest { @ClassRule public static StubRunnerRule rule = new StubRunnerRule().repoRoot(repoRoot()) .stubsMode(StubRunnerProperties.StubsMode.REMOTE) - .downloadStub("org.springframework.cloud.contract.verifier.stubs", - "loanIssuance") - .downloadStub( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer"); + .downloadStub("org.springframework.cloud.contract.verifier.stubs", "loanIssuance") + .downloadStub("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer"); @BeforeClass @AfterClass @@ -55,8 +53,7 @@ public class StubRunnerRuleJUnitTest { private static String repoRoot() { try { - return StubRunnerRuleJUnitTest.class.getResource("/m2repo/repository/") - .toURI().toString(); + return StubRunnerRuleJUnitTest.class.getResource("/m2repo/repository/").toURI().toString(); } catch (Exception e) { return ""; @@ -67,27 +64,20 @@ public class StubRunnerRuleJUnitTest { @Test public void should_start_wiremock_servers() throws Exception { // expect: 'WireMocks are running' - then(rule.findStubUrl("org.springframework.cloud.contract.verifier.stubs", - "loanIssuance")).isNotNull(); + then(rule.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")).isNotNull(); then(rule.findStubUrl("loanIssuance")).isNotNull(); - then(rule.findStubUrl("loanIssuance")).isEqualTo(rule.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs", "loanIssuance")); - then(rule.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")) - .isNotNull(); + then(rule.findStubUrl("loanIssuance")) + .isEqualTo(rule.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")); + then(rule.findStubUrl("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")).isNotNull(); // and: then(rule.findAllRunningStubs().isPresent("loanIssuance")).isTrue(); - then(rule.findAllRunningStubs().isPresent( - "org.springframework.cloud.contract.verifier.stubs", + then(rule.findAllRunningStubs().isPresent("org.springframework.cloud.contract.verifier.stubs", "fraudDetectionServer")).isTrue(); - then(rule.findAllRunningStubs().isPresent( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")) - .isTrue(); + then(rule.findAllRunningStubs() + .isPresent("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")).isTrue(); // and: 'Stubs were registered' - then(httpGet(rule.findStubUrl("loanIssuance").toString() + "/name")) - .isEqualTo("loanIssuance"); - then(httpGet(rule.findStubUrl("fraudDetectionServer").toString() + "/name")) - .isEqualTo("fraudDetectionServer"); + then(httpGet(rule.findStubUrl("loanIssuance").toString() + "/name")).isEqualTo("loanIssuance"); + then(httpGet(rule.findStubUrl("fraudDetectionServer").toString() + "/name")).isEqualTo("fraudDetectionServer"); } // end::test[] diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/AbstractGitTest.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/AbstractGitTest.java index fc54929673..25bbe6ac97 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/AbstractGitTest.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/AbstractGitTest.java @@ -74,8 +74,7 @@ public abstract class AbstractGitTest { command.call(); StoredConfig config = git.getRepository().getConfig(); RemoteConfig originConfig = new RemoteConfig(config, "origin"); - originConfig - .addFetchRefSpec(new RefSpec("+refs/heads/*:refs/remotes/origin/*")); + originConfig.addFetchRefSpec(new RefSpec("+refs/heads/*:refs/remotes/origin/*")); originConfig.update(config); config.save(); } diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/ClasspathStubProviderTest.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/ClasspathStubProviderTest.java index 7706b41226..a44c36ccec 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/ClasspathStubProviderTest.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/ClasspathStubProviderTest.java @@ -30,8 +30,7 @@ public class ClasspathStubProviderTest { @Test public void should_return_null_if_stub_mode_is_not_classpath() { StubDownloader stubDownloader = new ClasspathStubProvider() - .build(new StubRunnerOptionsBuilder() - .withStubsMode(StubRunnerProperties.StubsMode.REMOTE).build()); + .build(new StubRunnerOptionsBuilder().withStubsMode(StubRunnerProperties.StubsMode.REMOTE).build()); then(stubDownloader).isNull(); } diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/CompositeStubDownloaderBuilderTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/CompositeStubDownloaderBuilderTests.java index 46ee1fc259..798a536b8a 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/CompositeStubDownloaderBuilderTests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/CompositeStubDownloaderBuilderTests.java @@ -35,14 +35,12 @@ public class CompositeStubDownloaderBuilderTests { public void should_delegate_work_to_other_stub_downloaders() { EmptyStubDownloaderBuilder emptyStubDownloaderBuilder = new EmptyStubDownloaderBuilder(); ImpossibleToBuildStubDownloaderBuilder impossible = new ImpossibleToBuildStubDownloaderBuilder(); - List builders = Arrays.asList(emptyStubDownloaderBuilder, - impossible, new SomeStubDownloaderBuilder()); - CompositeStubDownloaderBuilder builder = new CompositeStubDownloaderBuilder( - builders); + List builders = Arrays.asList(emptyStubDownloaderBuilder, impossible, + new SomeStubDownloaderBuilder()); + CompositeStubDownloaderBuilder builder = new CompositeStubDownloaderBuilder(builders); StubDownloader downloader = builder.build(new StubRunnerOptionsBuilder().build()); - Map.Entry entry = downloader - .downloadAndUnpackStubJar(new StubConfiguration("a:b:v")); + Map.Entry entry = downloader.downloadAndUnpackStubJar(new StubConfiguration("a:b:v")); BDDAssertions.then(entry).isNotNull(); BDDAssertions.then(emptyStubDownloaderBuilder.downloaderCalled()).isTrue(); @@ -63,11 +61,9 @@ public class CompositeStubDownloaderBuilderTests { EmptyStubDownloaderBuilder emptyStubDownloaderBuilder = new EmptyStubDownloaderBuilder(); CompositeStubDownloaderBuilder builder = new CompositeStubDownloaderBuilder( Collections.singletonList(emptyStubDownloaderBuilder)); - StubDownloader downloader = builder - .build(new StubRunnerOptionsBuilder().withFailOnNoStubs(false).build()); + StubDownloader downloader = builder.build(new StubRunnerOptionsBuilder().withFailOnNoStubs(false).build()); - Map.Entry entry = downloader - .downloadAndUnpackStubJar(new StubConfiguration("a:b:v")); + Map.Entry entry = downloader.downloadAndUnpackStubJar(new StubConfiguration("a:b:v")); BDDAssertions.then(entry).isNull(); } @@ -77,11 +73,9 @@ public class CompositeStubDownloaderBuilderTests { EmptyStubDownloaderBuilder emptyStubDownloaderBuilder = new EmptyStubDownloaderBuilder(); CompositeStubDownloaderBuilder builder = new CompositeStubDownloaderBuilder( Collections.singletonList(emptyStubDownloaderBuilder)); - StubDownloader downloader = builder - .build(new StubRunnerOptionsBuilder().withFailOnNoStubs(true).build()); + StubDownloader downloader = builder.build(new StubRunnerOptionsBuilder().withFailOnNoStubs(true).build()); - BDDAssertions.thenThrownBy( - () -> downloader.downloadAndUnpackStubJar(new StubConfiguration("a:b:v"))) + BDDAssertions.thenThrownBy(() -> downloader.downloadAndUnpackStubJar(new StubConfiguration("a:b:v"))) .isInstanceOf(IllegalArgumentException.class); } @@ -120,8 +114,7 @@ class EmptyStubDownloader implements StubDownloader { boolean called; @Override - public Map.Entry downloadAndUnpackStubJar( - StubConfiguration stubConfiguration) { + public Map.Entry downloadAndUnpackStubJar(StubConfiguration stubConfiguration) { this.called = true; return null; } @@ -140,8 +133,7 @@ class SomeStubDownloaderBuilder implements StubDownloaderBuilder { class SomeStubDownloader implements StubDownloader { @Override - public Map.Entry downloadAndUnpackStubJar( - StubConfiguration stubConfiguration) { + public Map.Entry downloadAndUnpackStubJar(StubConfiguration stubConfiguration) { return new AbstractMap.SimpleEntry<>(stubConfiguration, new File(".")); } diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/ContractProjectUpdaterTest.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/ContractProjectUpdaterTest.java index 3f2ee2d3bc..1d9615dbf6 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/ContractProjectUpdaterTest.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/ContractProjectUpdaterTest.java @@ -53,8 +53,7 @@ public class ContractProjectUpdaterTest extends AbstractGitTest { @Before public void setup() throws Exception { GitContractsRepo.CACHED_LOCATIONS.clear(); - this.originalProject = new File( - GitRepoTests.class.getResource("/git_samples/contract-git").toURI()); + this.originalProject = new File(GitRepoTests.class.getResource("/git_samples/contract-git").toURI()); TestUtils.prepareLocalRepo(); this.gitRepo = new GitRepo(this.tmpFolder); this.origin = clonedProject(this.tmp.newFolder(), this.originalProject); @@ -69,91 +68,76 @@ public class ContractProjectUpdaterTest extends AbstractGitTest { @Test public void should_push_changes_to_current_branch() throws Exception { - File stubs = new File( - GitRepoTests.class.getResource("/git_samples/sample_stubs").toURI()); + File stubs = new File(GitRepoTests.class.getResource("/git_samples/sample_stubs").toURI()); this.updater.updateContractProject("hello-world", stubs.toPath()); // project, not origin, cause we're making one more clone of the local copy try (Git git = openGitProject(this.project)) { RevCommit revCommit = git.log().call().iterator().next(); - then(revCommit.getShortMessage()) - .isEqualTo("Updating project [hello-world] with stubs"); + then(revCommit.getShortMessage()).isEqualTo("Updating project [hello-world] with stubs"); // I have no idea but the file gets deleted after pushing git.reset().setMode(ResetCommand.ResetType.HARD).call(); } - BDDAssertions.then(new File(this.project, - "META-INF/com.example/hello-world/0.0.2/mappings/someMapping.json")) + BDDAssertions.then(new File(this.project, "META-INF/com.example/hello-world/0.0.2/mappings/someMapping.json")) .exists(); BDDAssertions.then(this.gitRepo.gitFactory.provider).isNull(); - BDDAssertions.then(this.outputCapture.toString()) - .contains("No custom credentials provider will be set"); + BDDAssertions.then(this.outputCapture.toString()).contains("No custom credentials provider will be set"); } @Test - public void should_push_changes_to_current_branch_using_credentials() - throws Exception { + public void should_push_changes_to_current_branch_using_credentials() throws Exception { StubRunnerOptions options = new StubRunnerOptionsBuilder() .withStubRepositoryRoot("file://" + this.project.getAbsolutePath() + "/") - .withStubsMode(StubRunnerProperties.StubsMode.REMOTE) - .withProperties(new HashMap() { + .withStubsMode(StubRunnerProperties.StubsMode.REMOTE).withProperties(new HashMap() { { put("git.username", "foo"); put("git.password", "bar"); } }).build(); ContractProjectUpdater updater = new ContractProjectUpdater(options); - File stubs = new File( - GitRepoTests.class.getResource("/git_samples/sample_stubs").toURI()); + File stubs = new File(GitRepoTests.class.getResource("/git_samples/sample_stubs").toURI()); updater.updateContractProject("hello-world", stubs.toPath()); // project, not origin, cause we're making one more clone of the local copy try (Git git = openGitProject(this.project)) { RevCommit revCommit = git.log().call().iterator().next(); - then(revCommit.getShortMessage()) - .isEqualTo("Updating project [hello-world] with stubs"); + then(revCommit.getShortMessage()).isEqualTo("Updating project [hello-world] with stubs"); // I have no idea but the file gets deleted after pushing git.reset().setMode(ResetCommand.ResetType.HARD).call(); } - BDDAssertions.then(new File(this.project, - "META-INF/com.example/hello-world/0.0.2/mappings/someMapping.json")) + BDDAssertions.then(new File(this.project, "META-INF/com.example/hello-world/0.0.2/mappings/someMapping.json")) .exists(); - BDDAssertions.then(this.outputCapture.toString()).contains( - "Passed username and password - will set a custom credentials provider"); + BDDAssertions.then(this.outputCapture.toString()) + .contains("Passed username and password - will set a custom credentials provider"); } @Test - public void should_push_changes_to_current_branch_using_root_credentials() - throws Exception { + public void should_push_changes_to_current_branch_using_root_credentials() throws Exception { StubRunnerOptions options = new StubRunnerOptionsBuilder() .withStubRepositoryRoot("file://" + this.project.getAbsolutePath() + "/") - .withStubsMode(StubRunnerProperties.StubsMode.REMOTE).withUsername("foo") - .withPassword("bar").build(); + .withStubsMode(StubRunnerProperties.StubsMode.REMOTE).withUsername("foo").withPassword("bar").build(); ContractProjectUpdater updater = new ContractProjectUpdater(options); - File stubs = new File( - GitRepoTests.class.getResource("/git_samples/sample_stubs").toURI()); + File stubs = new File(GitRepoTests.class.getResource("/git_samples/sample_stubs").toURI()); updater.updateContractProject("hello-world", stubs.toPath()); // project, not origin, cause we're making one more clone of the local copy try (Git git = openGitProject(this.project)) { RevCommit revCommit = git.log().call().iterator().next(); - then(revCommit.getShortMessage()) - .isEqualTo("Updating project [hello-world] with stubs"); + then(revCommit.getShortMessage()).isEqualTo("Updating project [hello-world] with stubs"); // I have no idea but the file gets deleted after pushing git.reset().setMode(ResetCommand.ResetType.HARD).call(); } - BDDAssertions.then(new File(this.project, - "META-INF/com.example/hello-world/0.0.2/mappings/someMapping.json")) + BDDAssertions.then(new File(this.project, "META-INF/com.example/hello-world/0.0.2/mappings/someMapping.json")) .exists(); - BDDAssertions.then(this.outputCapture.toString()).contains( - "Passed username and password - will set a custom credentials provider"); + BDDAssertions.then(this.outputCapture.toString()) + .contains("Passed username and password - will set a custom credentials provider"); } @Test - public void should_not_push_changes_to_current_branch_when_no_changes_were_made() - throws Exception { + public void should_not_push_changes_to_current_branch_when_no_changes_were_made() throws Exception { String initialCommit; try (Git git = openGitProject(this.origin)) { RevCommit revCommit = git.log().call().iterator().next(); @@ -166,8 +150,7 @@ public class ContractProjectUpdaterTest extends AbstractGitTest { RevCommit revCommit = git.log().call().iterator().next(); then(revCommit.getShortMessage()).isEqualTo(initialCommit); } - BDDAssertions.then(new File(this.project, - "META-INF/com.example/hello-world/0.0.2/mappings/someMapping.json")) + BDDAssertions.then(new File(this.project, "META-INF/com.example/hello-world/0.0.2/mappings/someMapping.json")) .doesNotExist(); } diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/FileStubDownloaderTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/FileStubDownloaderTests.java index 2281d2b730..48da145b99 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/FileStubDownloaderTests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/FileStubDownloaderTests.java @@ -30,17 +30,14 @@ public class FileStubDownloaderTests { public void resolve() { final FileStubDownloader fileStubDownloader = new FileStubDownloader(); Resource expectedUnixResource = new StubsResource("stubs://file:///User/A/B/C"); - Resource expectedWindowsResource = new StubsResource( - "stubs://file:///C:/Users/A/B/C"); + Resource expectedWindowsResource = new StubsResource("stubs://file:///C:/Users/A/B/C"); String unixFileFormat = "stubs://file:///User/A/B/C"; String windowsFileFormat = "stubs://file://C:\\Users\\A\\B\\C"; String windowsFileFormatCorrectPathStart = "stubs://file:///C:\\Users\\A\\B\\C"; - Assertions.assertThat(expectedUnixResource) - .isEqualTo(fileStubDownloader.resolve(unixFileFormat, null)); + Assertions.assertThat(expectedUnixResource).isEqualTo(fileStubDownloader.resolve(unixFileFormat, null)); + Assertions.assertThat(expectedWindowsResource).isEqualTo(fileStubDownloader.resolve(windowsFileFormat, null)); Assertions.assertThat(expectedWindowsResource) - .isEqualTo(fileStubDownloader.resolve(windowsFileFormat, null)); - Assertions.assertThat(expectedWindowsResource).isEqualTo( - fileStubDownloader.resolve(windowsFileFormatCorrectPathStart, null)); + .isEqualTo(fileStubDownloader.resolve(windowsFileFormatCorrectPathStart, null)); } } diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/GitRepoTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/GitRepoTests.java index addf14d270..0fbfdd7080 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/GitRepoTests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/GitRepoTests.java @@ -42,8 +42,7 @@ public class GitRepoTests extends AbstractGitTest { @Before public void setup() throws IOException, URISyntaxException { - this.project = new File( - GitRepoTests.class.getResource("/git_samples/contract-git").toURI()); + this.project = new File(GitRepoTests.class.getResource("/git_samples/contract-git").toURI()); TestUtils.prepareLocalRepo(); this.gitRepo = new GitRepo(this.tmpFolder); } @@ -56,20 +55,16 @@ public class GitRepoTests extends AbstractGitTest { } @Test - public void should_throw_exception_when_there_is_no_repo() - throws IOException, URISyntaxException { - thenThrownBy(() -> this.gitRepo - .cloneProject(GitRepoTests.class.getResource("/git_samples/").toURI())) - .isInstanceOf(IllegalStateException.class) - .hasMessageContaining("Exception occurred while cloning repo"); + public void should_throw_exception_when_there_is_no_repo() throws IOException, URISyntaxException { + thenThrownBy(() -> this.gitRepo.cloneProject(GitRepoTests.class.getResource("/git_samples/").toURI())) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("Exception occurred while cloning repo"); } @Test - public void should_throw_an_exception_when_failed_to_initialize_the_repo() - throws IOException { + public void should_throw_an_exception_when_failed_to_initialize_the_repo() throws IOException { thenThrownBy(() -> new GitRepo(this.tmpFolder, new ExceptionThrowingJGitFactory()) - .cloneProject(this.project.toURI())) - .isInstanceOf(IllegalStateException.class) + .cloneProject(this.project.toURI())).isInstanceOf(IllegalStateException.class) .hasMessageContaining("Exception occurred while cloning repo") .hasCauseInstanceOf(CustomException.class); } @@ -84,8 +79,7 @@ public class GitRepoTests extends AbstractGitTest { } @Test - public void should_throw_an_exception_when_checking_out_nonexisting_branch() - throws IOException { + public void should_throw_an_exception_when_checking_out_nonexisting_branch() throws IOException { File project = this.gitRepo.cloneProject(this.project.toURI()); try { this.gitRepo.checkout(project, "nonExistingBranch"); diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/GitStubDownloaderTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/GitStubDownloaderTests.java index 3171f82d57..9703bab87a 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/GitStubDownloaderTests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/GitStubDownloaderTests.java @@ -49,10 +49,8 @@ public class GitStubDownloaderTests { public void should_return_a_null_downloader_for_a_classptath_mode() { StubDownloaderBuilder stubDownloaderBuilder = new ScmStubDownloaderBuilder(); - StubDownloader stubDownloader = stubDownloaderBuilder - .build(new StubRunnerOptionsBuilder() - .withStubsMode(StubRunnerProperties.StubsMode.CLASSPATH) - .withProperties(props()).build()); + StubDownloader stubDownloader = stubDownloaderBuilder.build(new StubRunnerOptionsBuilder() + .withStubsMode(StubRunnerProperties.StubsMode.CLASSPATH).withProperties(props()).build()); then(stubDownloader).isNull(); } @@ -61,10 +59,8 @@ public class GitStubDownloaderTests { public void should_return_a_null_downloader_for_a_empty_repo() { StubDownloaderBuilder stubDownloaderBuilder = new ScmStubDownloaderBuilder(); - StubDownloader stubDownloader = stubDownloaderBuilder - .build(new StubRunnerOptionsBuilder() - .withStubsMode(StubRunnerProperties.StubsMode.REMOTE) - .withProperties(props()).build()); + StubDownloader stubDownloader = stubDownloaderBuilder.build(new StubRunnerOptionsBuilder() + .withStubsMode(StubRunnerProperties.StubsMode.REMOTE).withProperties(props()).build()); then(stubDownloader).isNull(); } @@ -74,190 +70,161 @@ public class GitStubDownloaderTests { StubDownloaderBuilder stubDownloaderBuilder = new ScmStubDownloaderBuilder(); StubDownloader stubDownloader = stubDownloaderBuilder - .build(new StubRunnerOptionsBuilder() - .withStubsMode(StubRunnerProperties.StubsMode.REMOTE) - .withStubRepositoryRoot("http://www.foo.com/") - .withProperties(props()).build()); + .build(new StubRunnerOptionsBuilder().withStubsMode(StubRunnerProperties.StubsMode.REMOTE) + .withStubRepositoryRoot("http://www.foo.com/").withProperties(props()).build()); then(stubDownloader).isNull(); } @Test - public void should_pick_stubs_for_group_and_artifact_with_version_from_a_git_repo() - throws Exception { + public void should_pick_stubs_for_group_and_artifact_with_version_from_a_git_repo() throws Exception { StubDownloaderBuilder stubDownloaderBuilder = new ScmStubDownloaderBuilder(); - String contractFolderLocation = (file("/git_samples/contract-git/") - .getAbsolutePath() + "/").replace(File.separator, "/"); + String contractFolderLocation = (file("/git_samples/contract-git/").getAbsolutePath() + "/") + .replace(File.separator, "/"); StubDownloader stubDownloader = stubDownloaderBuilder - .build(new StubRunnerOptionsBuilder() - .withStubsMode(StubRunnerProperties.StubsMode.REMOTE) - .withStubRepositoryRoot("git://" + contractFolderLocation) - .withProperties(props()).build()); + .build(new StubRunnerOptionsBuilder().withStubsMode(StubRunnerProperties.StubsMode.REMOTE) + .withStubRepositoryRoot("git://" + contractFolderLocation).withProperties(props()).build()); Map.Entry entry = stubDownloader - .downloadAndUnpackStubJar( - new StubConfiguration("foo.bar:bazService:0.0.1-SNAPSHOT")); + .downloadAndUnpackStubJar(new StubConfiguration("foo.bar:bazService:0.0.1-SNAPSHOT")); then(entry).isNotNull(); - then(entry.getValue().getAbsolutePath()).contains("foo.bar" + File.separator - + "bazService" + File.separator + "0.0.1-SNAPSHOT"); + then(entry.getValue().getAbsolutePath()) + .contains("foo.bar" + File.separator + "bazService" + File.separator + "0.0.1-SNAPSHOT"); } @Test - public void should_pick_latest_build_snapshot_stubs_when_latest_version_set() - throws URISyntaxException { + public void should_pick_latest_build_snapshot_stubs_when_latest_version_set() throws URISyntaxException { StubDownloaderBuilder stubDownloaderBuilder = new ScmStubDownloaderBuilder(); - String contractFolderLocation = (file("/git_samples/contract-git/") - .getAbsolutePath() + "/").replace(File.separator, "/"); + String contractFolderLocation = (file("/git_samples/contract-git/").getAbsolutePath() + "/") + .replace(File.separator, "/"); StubDownloader stubDownloader = stubDownloaderBuilder - .build(new StubRunnerOptionsBuilder() - .withStubsMode(StubRunnerProperties.StubsMode.REMOTE) - .withStubRepositoryRoot("git://" + contractFolderLocation) - .withProperties(props()).build()); + .build(new StubRunnerOptionsBuilder().withStubsMode(StubRunnerProperties.StubsMode.REMOTE) + .withStubRepositoryRoot("git://" + contractFolderLocation).withProperties(props()).build()); Map.Entry entry = stubDownloader - .downloadAndUnpackStubJar(new StubConfiguration( - "com.example:beer-api-producer-external:+")); + .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:+")); then(entry).isNotNull(); - then(entry.getValue().getAbsolutePath()).contains("com.example" + File.separator - + "beer-api-producer-external" + File.separator + "1.0.0.BUILD-SNAPSHOT"); + then(entry.getValue().getAbsolutePath()).contains("com.example" + File.separator + "beer-api-producer-external" + + File.separator + "1.0.0.BUILD-SNAPSHOT"); - entry = stubDownloader.downloadAndUnpackStubJar( - new StubConfiguration("com.example:beer-api-producer-external:latest")); + entry = stubDownloader + .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:latest")); then(entry).isNotNull(); - then(entry.getValue().getAbsolutePath()).contains("com.example" + File.separator - + "beer-api-producer-external" + File.separator + "1.0.0.BUILD-SNAPSHOT"); + then(entry.getValue().getAbsolutePath()).contains("com.example" + File.separator + "beer-api-producer-external" + + File.separator + "1.0.0.BUILD-SNAPSHOT"); - entry = stubDownloader.downloadAndUnpackStubJar( - new StubConfiguration("com.example:beer-api-producer-external:LATEST")); + entry = stubDownloader + .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:LATEST")); then(entry).isNotNull(); - then(entry.getValue().getAbsolutePath()).contains("com.example" + File.separator - + "beer-api-producer-external" + File.separator + "1.0.0.BUILD-SNAPSHOT"); + then(entry.getValue().getAbsolutePath()).contains("com.example" + File.separator + "beer-api-producer-external" + + File.separator + "1.0.0.BUILD-SNAPSHOT"); - entry = stubDownloader.downloadAndUnpackStubJar( - new StubConfiguration("com.issue1305:beer-api-producer-external:+")); + entry = stubDownloader + .downloadAndUnpackStubJar(new StubConfiguration("com.issue1305:beer-api-producer-external:+")); then(entry).isNotNull(); - then(entry.getValue().getAbsolutePath()).contains("com.issue1305" + File.separator - + "beer-api-producer-external" + File.separator + "0.0.11-SNAPSHOT"); + then(entry.getValue().getAbsolutePath()).contains( + "com.issue1305" + File.separator + "beer-api-producer-external" + File.separator + "0.0.11-SNAPSHOT"); } @Test - public void should_pick_latest_release_stubs_when_release_version_set() - throws URISyntaxException { + public void should_pick_latest_release_stubs_when_release_version_set() throws URISyntaxException { StubDownloaderBuilder stubDownloaderBuilder = new ScmStubDownloaderBuilder(); - String contractFolderLocation = (file("/git_samples/contract-git/") - .getAbsolutePath() + "/").replace(File.separator, "/"); + String contractFolderLocation = (file("/git_samples/contract-git/").getAbsolutePath() + "/") + .replace(File.separator, "/"); StubDownloader stubDownloader = stubDownloaderBuilder - .build(new StubRunnerOptionsBuilder() - .withStubsMode(StubRunnerProperties.StubsMode.REMOTE) - .withStubRepositoryRoot("git://" + contractFolderLocation) - .withProperties(props()).build()); + .build(new StubRunnerOptionsBuilder().withStubsMode(StubRunnerProperties.StubsMode.REMOTE) + .withStubRepositoryRoot("git://" + contractFolderLocation).withProperties(props()).build()); Map.Entry entry = stubDownloader - .downloadAndUnpackStubJar(new StubConfiguration( - "com.example:beer-api-producer-external:release")); + .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:release")); then(entry).isNotNull(); - then(entry.getValue().getAbsolutePath()).contains("com.example" + File.separator - + "beer-api-producer-external" + File.separator + "1.0.0.RELEASE"); + then(entry.getValue().getAbsolutePath()).contains( + "com.example" + File.separator + "beer-api-producer-external" + File.separator + "1.0.0.RELEASE"); - entry = stubDownloader.downloadAndUnpackStubJar( - new StubConfiguration("com.example:beer-api-producer-external:RELEASE")); + entry = stubDownloader + .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:RELEASE")); then(entry).isNotNull(); - then(entry.getValue().getAbsolutePath()).contains("com.example" + File.separator - + "beer-api-producer-external" + File.separator + "1.0.0.RELEASE"); + then(entry.getValue().getAbsolutePath()).contains( + "com.example" + File.separator + "beer-api-producer-external" + File.separator + "1.0.0.RELEASE"); } @Test public void should_pick_latest_build_snapshot_stubs_when_latest_version_set_and_latest_folder_exists() throws URISyntaxException { StubDownloaderBuilder stubDownloaderBuilder = new ScmStubDownloaderBuilder(); - String contractFolderLocation = (file( - "/git_samples/contract-predefined-names-git/").getAbsolutePath() - .replace("/", File.separator) - + "/").replace(File.separator, "/"); + String contractFolderLocation = (file("/git_samples/contract-predefined-names-git/").getAbsolutePath() + .replace("/", File.separator) + "/").replace(File.separator, "/"); StubDownloader stubDownloader = stubDownloaderBuilder - .build(new StubRunnerOptionsBuilder() - .withStubsMode(StubRunnerProperties.StubsMode.REMOTE) - .withStubRepositoryRoot("git://" + contractFolderLocation) - .withProperties(props()).build()); + .build(new StubRunnerOptionsBuilder().withStubsMode(StubRunnerProperties.StubsMode.REMOTE) + .withStubRepositoryRoot("git://" + contractFolderLocation).withProperties(props()).build()); Map.Entry entry = stubDownloader - .downloadAndUnpackStubJar(new StubConfiguration( - "com.example:beer-api-producer-external:+")); + .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:+")); then(entry).isNotNull(); - then(entry.getValue().getAbsolutePath()).contains("com.example" + File.separator - + "beer-api-producer-external" + File.separator + "latest"); + then(entry.getValue().getAbsolutePath()) + .contains("com.example" + File.separator + "beer-api-producer-external" + File.separator + "latest"); - entry = stubDownloader.downloadAndUnpackStubJar( - new StubConfiguration("com.example:beer-api-producer-external:latest")); + entry = stubDownloader + .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:latest")); then(entry).isNotNull(); - then(entry.getValue().getAbsolutePath()).contains("com.example" + File.separator - + "beer-api-producer-external" + File.separator + "latest"); + then(entry.getValue().getAbsolutePath()) + .contains("com.example" + File.separator + "beer-api-producer-external" + File.separator + "latest"); - entry = stubDownloader.downloadAndUnpackStubJar( - new StubConfiguration("com.example:beer-api-producer-external:LATEST")); + entry = stubDownloader + .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:LATEST")); then(entry).isNotNull(); - then(entry.getValue().getAbsolutePath()).contains("com.example" + File.separator - + "beer-api-producer-external" + File.separator + "latest"); + then(entry.getValue().getAbsolutePath()) + .contains("com.example" + File.separator + "beer-api-producer-external" + File.separator + "latest"); } @Test - public void should_pick_release_folder_when_release_version_set() - throws URISyntaxException { + public void should_pick_release_folder_when_release_version_set() throws URISyntaxException { StubDownloaderBuilder stubDownloaderBuilder = new ScmStubDownloaderBuilder(); - String contractFolderLocation = (file( - "/git_samples/contract-predefined-names-git/").getAbsolutePath() + "/") - .replace(File.separator, "/"); + String contractFolderLocation = (file("/git_samples/contract-predefined-names-git/").getAbsolutePath() + "/") + .replace(File.separator, "/"); StubDownloader stubDownloader = stubDownloaderBuilder - .build(new StubRunnerOptionsBuilder() - .withStubsMode(StubRunnerProperties.StubsMode.REMOTE) - .withStubRepositoryRoot("git://" + contractFolderLocation) - .withProperties(props()).build()); + .build(new StubRunnerOptionsBuilder().withStubsMode(StubRunnerProperties.StubsMode.REMOTE) + .withStubRepositoryRoot("git://" + contractFolderLocation).withProperties(props()).build()); Map.Entry entry = stubDownloader - .downloadAndUnpackStubJar(new StubConfiguration( - "com.example:beer-api-producer-external:release")); + .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:release")); then(entry).isNotNull(); - then(entry.getValue().getAbsolutePath()).contains("com.example" + File.separator - + "beer-api-producer-external" + File.separator + "release"); + then(entry.getValue().getAbsolutePath()) + .contains("com.example" + File.separator + "beer-api-producer-external" + File.separator + "release"); - entry = stubDownloader.downloadAndUnpackStubJar( - new StubConfiguration("com.example:beer-api-producer-external:RELEASE")); + entry = stubDownloader + .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:RELEASE")); then(entry).isNotNull(); - then(entry.getValue().getAbsolutePath()).contains("com.example" + File.separator - + "beer-api-producer-external" + File.separator + "release"); + then(entry.getValue().getAbsolutePath()) + .contains("com.example" + File.separator + "beer-api-producer-external" + File.separator + "release"); } @Test - public void should_fail_to_fetch_stubs_when_concrete_version_was_not_specified() - throws URISyntaxException { + public void should_fail_to_fetch_stubs_when_concrete_version_was_not_specified() throws URISyntaxException { StubDownloaderBuilder stubDownloaderBuilder = new ScmStubDownloaderBuilder(); - String contractFolderLocation = (file("/git_samples/contract-git/") - .getAbsolutePath() + "/").replace(File.separator, "/"); + String contractFolderLocation = (file("/git_samples/contract-git/").getAbsolutePath() + "/") + .replace(File.separator, "/"); StubDownloader stubDownloader = stubDownloaderBuilder - .build(new StubRunnerOptionsBuilder() - .withStubsMode(StubRunnerProperties.StubsMode.REMOTE) - .withStubRepositoryRoot("git://" + contractFolderLocation) - .withProperties(props()).build()); + .build(new StubRunnerOptionsBuilder().withStubsMode(StubRunnerProperties.StubsMode.REMOTE) + .withStubRepositoryRoot("git://" + contractFolderLocation).withProperties(props()).build()); try { - stubDownloader.downloadAndUnpackStubJar( - new StubConfiguration("foo.bar", "bazService", "")); + stubDownloader.downloadAndUnpackStubJar(new StubConfiguration("foo.bar", "bazService", "")); } catch (IllegalStateException e) { - then(e).hasMessageContaining( - "Concrete version wasn't passed for [foo.bar:bazService::stubs]"); + then(e).hasMessageContaining("Concrete version wasn't passed for [foo.bar:bazService::stubs]"); } } diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubDownloaderBuilderProviderTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubDownloaderBuilderProviderTests.java index 584934bb25..d78ec49fd5 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubDownloaderBuilderProviderTests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubDownloaderBuilderProviderTests.java @@ -46,15 +46,12 @@ public class StubDownloaderBuilderProviderTests { Collections.singletonList(this.one)) { @Override List defaultStubDownloaderBuilders() { - return Collections - .singletonList(StubDownloaderBuilderProviderTests.this.two); + return Collections.singletonList(StubDownloaderBuilderProviderTests.this.two); } }; - StubRunnerOptions options = new StubRunnerOptionsBuilder() - .withFailOnNoStubs(false).build(); + StubRunnerOptions options = new StubRunnerOptionsBuilder().withFailOnNoStubs(false).build(); - provider.get(options, this.three) - .downloadAndUnpackStubJar(new StubConfiguration("a:b:c")); + provider.get(options, this.three).downloadAndUnpackStubJar(new StubConfiguration("a:b:c")); BDDMockito.then(this.one).should().build(options); BDDMockito.then(this.two).should().build(options); diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubRepositoryTest.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubRepositoryTest.java index 8f10e31353..09f4c66b4a 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubRepositoryTest.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubRepositoryTest.java @@ -30,14 +30,13 @@ import org.springframework.cloud.contract.spec.Contract; */ public class StubRepositoryTest { - private static final File YAML_REPOSITORY_LOCATION = new File( - "src/test/resources/customYamlRepository"); + private static final File YAML_REPOSITORY_LOCATION = new File("src/test/resources/customYamlRepository"); @Test public void should_prefer_custom_yaml_converter_over_standard() { // given: - StubRepository repository = new StubRepository(YAML_REPOSITORY_LOCATION, - new ArrayList<>(), new StubRunnerOptionsBuilder().build()); + StubRepository repository = new StubRepository(YAML_REPOSITORY_LOCATION, new ArrayList<>(), + new StubRunnerOptionsBuilder().build()); int expectedDescriptorsSize = 1; // when: diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubRunnerSliceTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubRunnerSliceTests.java index 944aec22db..cd161a3fc1 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubRunnerSliceTests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubRunnerSliceTests.java @@ -38,9 +38,9 @@ import static org.assertj.core.api.Assertions.assertThat; */ @RunWith(SpringRunner.class) @WebMvcTest -@AutoConfigureStubRunner(ids = { - "org.springframework.cloud.contract.verifier.stubs:loanIssuance:+:stubs", - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer:+:stubs" }, +@AutoConfigureStubRunner( + ids = { "org.springframework.cloud.contract.verifier.stubs:loanIssuance:+:stubs", + "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer:+:stubs" }, minPort = 10001, maxPort = 10020, mappingsOutputFolder = "target/outputmappings/", properties = { "hello=world", "foo=bar" }) @ActiveProfiles("test") @@ -64,25 +64,21 @@ public class StubRunnerSliceTests { assertThat(this.fraudDetectionServerPort).isBetween(10001, 10020); assertThat(this.loanIssuancePort).isBetween(10001, 10020); - assertThat(this.stubFinder.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs", "loanIssuance")) - .isNotNull(); + assertThat(this.stubFinder.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")) + .isNotNull(); assertThat(this.stubFinder.findStubUrl("loanIssuance")).isNotNull(); - assertThat(this.stubFinder.findStubUrl("loanIssuance")).isEqualTo(this.stubFinder - .findStubUrl("org.springframework.cloud.contract.verifier.stubs", - "loanIssuance")); - assertThat(this.stubFinder.findStubUrl("loanIssuance")) - .isEqualTo(this.stubFinder.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs:loanIssuance")); - assertThat(this.stubFinder.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs:loanIssuance:0.0.1-SNAPSHOT")) + assertThat(this.stubFinder.findStubUrl("loanIssuance")).isEqualTo( + this.stubFinder.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")); + assertThat(this.stubFinder.findStubUrl("loanIssuance")).isEqualTo( + this.stubFinder.findStubUrl("org.springframework.cloud.contract.verifier.stubs:loanIssuance")); + assertThat(this.stubFinder + .findStubUrl("org.springframework.cloud.contract.verifier.stubs:loanIssuance:0.0.1-SNAPSHOT")) .isEqualTo(this.stubFinder.findStubUrl( "org.springframework.cloud.contract.verifier.stubs:loanIssuance:0.0.1-SNAPSHOT:stubs")); - assertThat(this.stubFinder.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")) + assertThat( + this.stubFinder.findStubUrl("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")) .isNotNull(); - assertThat(this.properties.getProperties()).containsEntry("hello", "world") - .containsEntry("foo", "bar"); + assertThat(this.properties.getProperties()).containsEntry("hello", "world").containsEntry("foo", "bar"); } @SpringBootConfiguration diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubsStubDownloaderTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubsStubDownloaderTests.java index d906d6942f..a0b192f158 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubsStubDownloaderTests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/StubsStubDownloaderTests.java @@ -31,8 +31,8 @@ public class StubsStubDownloaderTests { @Test public void should_pick_stubs_from_a_given_location() { String path = url.getPath(); - StubRunnerOptions options = new StubRunnerOptionsBuilder() - .withStubRepositoryRoot("stubs://file://" + path).build(); + StubRunnerOptions options = new StubRunnerOptionsBuilder().withStubRepositoryRoot("stubs://file://" + path) + .build(); StubsStubDownloader downloader = new StubsStubDownloader(options); Map.Entry entry = downloader @@ -40,17 +40,14 @@ public class StubsStubDownloaderTests { BDDAssertions.then(entry).isNotNull(); BDDAssertions.then(entry.getValue()).exists(); - BDDAssertions.then(new File(entry.getValue(), "pl/spring/cloud/bye/pl_bye.json")) - .exists(); - BDDAssertions.then(new File(entry.getValue(), "lv/spring/cloud/bye/lv_bye.json")) - .exists(); + BDDAssertions.then(new File(entry.getValue(), "pl/spring/cloud/bye/pl_bye.json")).exists(); + BDDAssertions.then(new File(entry.getValue(), "lv/spring/cloud/bye/lv_bye.json")).exists(); } @Test public void should_pick_stubs_from_a_given_location_for_a_find_producer_with_ga() { String path = url.getPath(); - StubRunnerOptions options = new StubRunnerOptionsBuilder() - .withStubRepositoryRoot("stubs://file://" + path) + StubRunnerOptions options = new StubRunnerOptionsBuilder().withStubRepositoryRoot("stubs://file://" + path) .withProperties(propsWithFindProducer()).build(); StubsStubDownloader downloader = new StubsStubDownloader(options); @@ -58,16 +55,14 @@ public class StubsStubDownloaderTests { .downloadAndUnpackStubJar(new StubConfiguration("lv.spring.cloud:bye")); BDDAssertions.then(entry).isNotNull(); - File stub = new File(entry.getValue().getPath(), - "lv/spring/cloud/bye/lv_bye.json"); + File stub = new File(entry.getValue().getPath(), "lv/spring/cloud/bye/lv_bye.json"); BDDAssertions.then(stub).exists(); } @Test public void should_pick_stubs_from_a_given_location_for_a_find_producer_with_gav() { String path = url.getPath(); - StubRunnerOptions options = new StubRunnerOptionsBuilder() - .withStubRepositoryRoot("stubs://file://" + path) + StubRunnerOptions options = new StubRunnerOptionsBuilder().withStubRepositoryRoot("stubs://file://" + path) .withProperties(propsWithFindProducer()).build(); StubsStubDownloader downloader = new StubsStubDownloader(options); @@ -75,8 +70,7 @@ public class StubsStubDownloaderTests { .downloadAndUnpackStubJar(new StubConfiguration("lv.spring:cloud:bye")); BDDAssertions.then(entry).isNotNull(); - File stub = new File(entry.getValue().getPath(), - "lv/spring/cloud/bye/lv_bye.json"); + File stub = new File(entry.getValue().getPath(), "lv/spring/cloud/bye/lv_bye.json"); BDDAssertions.then(stub).exists(); } diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/TestUtils.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/TestUtils.java index a93b53287b..7faa54e995 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/TestUtils.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/TestUtils.java @@ -25,12 +25,10 @@ class TestUtils { public static void prepareLocalRepo() throws IOException { prepareLocalRepo("target/test-classes/git_samples/", "contract-git"); - prepareLocalRepo("target/test-classes/git_samples/", - "contract-predefined-names-git"); + prepareLocalRepo("target/test-classes/git_samples/", "contract-predefined-names-git"); } - private static void prepareLocalRepo(String buildDir, String repoPath) - throws IOException { + private static void prepareLocalRepo(String buildDir, String repoPath) throws IOException { File dotGit = new File(buildDir + repoPath + "/.git"); File git = new File(buildDir + repoPath + "/git"); if (git.exists()) { diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/issue1225/Issue1225Tests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/issue1225/Issue1225Tests.java index f3bf1e59d6..82b6989137 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/issue1225/Issue1225Tests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/issue1225/Issue1225Tests.java @@ -39,10 +39,8 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Biju Kunjummen */ @RunWith(SpringRunner.class) -@SpringBootTest(properties = { - "ping.url=http://localhost:${stubrunner.runningstubs.loanIssuance.port}" }) -@AutoConfigureStubRunner(ids = { - "org.springframework.cloud.contract.verifier.stubs:loanIssuance:+:stubs", +@SpringBootTest(properties = { "ping.url=http://localhost:${stubrunner.runningstubs.loanIssuance.port}" }) +@AutoConfigureStubRunner(ids = { "org.springframework.cloud.contract.verifier.stubs:loanIssuance:+:stubs", "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer:+:stubs" }) @ActiveProfiles("test") public class Issue1225Tests { @@ -56,8 +54,7 @@ public class Issue1225Tests { @Test public void shouldInjectTheStubPortsAsEarlyAsPossible() { assertThat(this.stubRunnerLoanIssuancePort).isPositive(); - assertThat(this.pingProxyController.pingUrl) - .contains(":" + this.stubRunnerLoanIssuancePort); + assertThat(this.pingProxyController.pingUrl).contains(":" + this.stubRunnerLoanIssuancePort); } @ComponentScan diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionCustomMessageVerifierTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionCustomMessageVerifierTests.java index 3a14f09e85..87e74ada09 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionCustomMessageVerifierTests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionCustomMessageVerifierTests.java @@ -41,8 +41,7 @@ class StubRunnerJUnit5ExtensionCustomMessageVerifierTests { @RegisterExtension static StubRunnerExtension stubRunnerExtension = new StubRunnerExtension() .stubsMode(StubRunnerProperties.StubsMode.REMOTE).repoRoot(repoRoot()) - .downloadStub("org.springframework.cloud.contract.verifier.stubs", - "bootService") + .downloadStub("org.springframework.cloud.contract.verifier.stubs", "bootService") .messageVerifier(new MyMessageVerifier()); @BeforeAll @@ -54,8 +53,7 @@ class StubRunnerJUnit5ExtensionCustomMessageVerifierTests { private static String repoRoot() { try { - return StubRunnerRuleCustomPortJUnitTest.class - .getResource("/m2repo/repository/").toURI().toString(); + return StubRunnerRuleCustomPortJUnitTest.class.getResource("/m2repo/repository/").toURI().toString(); } catch (Exception e) { return ""; @@ -64,20 +62,15 @@ class StubRunnerJUnit5ExtensionCustomMessageVerifierTests { @Test void should_use_provided_message_verifier_in_junit5_extension() { - IllegalStateException emptyTriggerException = assertThrows( - IllegalStateException.class, () -> stubRunnerExtension.trigger()); - assertThat(emptyTriggerException.getMessage()) - .contains("Failed to send a message with headers"); - IllegalStateException wrongLabelException = assertThrows( - IllegalStateException.class, + IllegalStateException emptyTriggerException = assertThrows(IllegalStateException.class, + () -> stubRunnerExtension.trigger()); + assertThat(emptyTriggerException.getMessage()).contains("Failed to send a message with headers"); + IllegalStateException wrongLabelException = assertThrows(IllegalStateException.class, () -> stubRunnerExtension.trigger("return_book_1")); - assertThat(wrongLabelException.getMessage()) - .contains("Failed to send a message with headers"); - IllegalStateException wrongLabelWithIvyNotation = assertThrows( - IllegalStateException.class, + assertThat(wrongLabelException.getMessage()).contains("Failed to send a message with headers"); + IllegalStateException wrongLabelWithIvyNotation = assertThrows(IllegalStateException.class, () -> stubRunnerExtension.trigger("bootService", "return_book_1")); - assertThat(wrongLabelWithIvyNotation.getMessage()) - .contains("Failed to send a message with headers"); + assertThat(wrongLabelWithIvyNotation.getMessage()).contains("Failed to send a message with headers"); } static class MyMessageVerifier implements MessageVerifier { @@ -88,8 +81,7 @@ class StubRunnerJUnit5ExtensionCustomMessageVerifierTests { } @Override - public Object receive(String destination, long timeout, TimeUnit timeUnit, - YamlContract contract) { + public Object receive(String destination, long timeout, TimeUnit timeUnit, YamlContract contract) { throw new IllegalStateException("Failed to receive a message with timeout"); } @@ -99,8 +91,7 @@ class StubRunnerJUnit5ExtensionCustomMessageVerifierTests { } @Override - public void send(Object payload, Map headers, String destination, - YamlContract contract) { + public void send(Object payload, Map headers, String destination, YamlContract contract) { throw new IllegalStateException("Failed to send a message with headers"); } diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionCustomPortTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionCustomPortTests.java index 0aa67ae61f..314e11e4eb 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionCustomPortTests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionCustomPortTests.java @@ -37,12 +37,10 @@ import static org.assertj.core.api.BDDAssertions.then; class StubRunnerJUnit5ExtensionCustomPortTests { @RegisterExtension - static StubRunnerExtension stubRunnerExtension = new StubRunnerExtension() - .repoRoot(repoRoot()).stubsMode(StubRunnerProperties.StubsMode.REMOTE) - .downloadStub("org.springframework.cloud.contract.verifier.stubs", - "loanIssuance") - .withPort(22345).downloadStub( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer:22346"); + static StubRunnerExtension stubRunnerExtension = new StubRunnerExtension().repoRoot(repoRoot()) + .stubsMode(StubRunnerProperties.StubsMode.REMOTE) + .downloadStub("org.springframework.cloud.contract.verifier.stubs", "loanIssuance").withPort(22345) + .downloadStub("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer:22346"); @BeforeAll @AfterAll @@ -53,8 +51,7 @@ class StubRunnerJUnit5ExtensionCustomPortTests { private static String repoRoot() { try { - return StubRunnerJUnit5ExtensionCustomPortTests.class - .getResource("/m2repo/repository/").toURI().toString(); + return StubRunnerJUnit5ExtensionCustomPortTests.class.getResource("/m2repo/repository/").toURI().toString(); } catch (Exception e) { return ""; @@ -63,32 +60,22 @@ class StubRunnerJUnit5ExtensionCustomPortTests { @Test void should_start_wiremock_servers() throws Exception { - then(stubRunnerExtension.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs", "loanIssuance")) - .isNotNull(); + then(stubRunnerExtension.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")) + .isNotNull(); then(stubRunnerExtension.findStubUrl("loanIssuance")).isNotNull(); - then(stubRunnerExtension.findStubUrl("loanIssuance")) - .isEqualTo(stubRunnerExtension.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs", - "loanIssuance")); - then(stubRunnerExtension.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")) - .isNotNull(); - then(stubRunnerExtension.findAllRunningStubs().isPresent("loanIssuance")) - .isTrue(); - then(stubRunnerExtension.findAllRunningStubs().isPresent( - "org.springframework.cloud.contract.verifier.stubs", + then(stubRunnerExtension.findStubUrl("loanIssuance")).isEqualTo( + stubRunnerExtension.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")); + then(stubRunnerExtension.findStubUrl("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")) + .isNotNull(); + then(stubRunnerExtension.findAllRunningStubs().isPresent("loanIssuance")).isTrue(); + then(stubRunnerExtension.findAllRunningStubs().isPresent("org.springframework.cloud.contract.verifier.stubs", "fraudDetectionServer")).isTrue(); - then(stubRunnerExtension.findAllRunningStubs().isPresent( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")) - .isTrue(); - then(httpGet( - stubRunnerExtension.findStubUrl("loanIssuance").toString() + "/name")) - .isEqualTo("loanIssuance"); - then(httpGet(stubRunnerExtension.findStubUrl("fraudDetectionServer").toString() - + "/name")).isEqualTo("fraudDetectionServer"); - then(stubRunnerExtension.findStubUrl("loanIssuance")) - .isEqualTo(URI.create("http://localhost:22345").toURL()); + then(stubRunnerExtension.findAllRunningStubs() + .isPresent("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")).isTrue(); + then(httpGet(stubRunnerExtension.findStubUrl("loanIssuance").toString() + "/name")).isEqualTo("loanIssuance"); + then(httpGet(stubRunnerExtension.findStubUrl("fraudDetectionServer").toString() + "/name")) + .isEqualTo("fraudDetectionServer"); + then(stubRunnerExtension.findStubUrl("loanIssuance")).isEqualTo(URI.create("http://localhost:22345").toURL()); then(stubRunnerExtension.findStubUrl("fraudDetectionServer")) .isEqualTo(URI.create("http://localhost:22346").toURL()); } diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionExceptionThrowingTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionExceptionThrowingTests.java index b0869c23cf..913884e019 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionExceptionThrowingTests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionExceptionThrowingTests.java @@ -34,8 +34,7 @@ public class StubRunnerJUnit5ExtensionExceptionThrowingTests { @RegisterExtension static StubRunnerExtension stubRunnerExtension = new StubRunnerExtension() .stubsMode(StubRunnerProperties.StubsMode.REMOTE).repoRoot(repoRoot()) - .downloadStub("org.springframework.cloud.contract.verifier.stubs", - "bootService"); + .downloadStub("org.springframework.cloud.contract.verifier.stubs", "bootService"); @BeforeAll @AfterAll @@ -46,8 +45,7 @@ public class StubRunnerJUnit5ExtensionExceptionThrowingTests { private static String repoRoot() { try { - return StubRunnerRuleCustomPortJUnitTest.class - .getResource("/m2repo/repository/").toURI().toString(); + return StubRunnerRuleCustomPortJUnitTest.class.getResource("/m2repo/repository/").toURI().toString(); } catch (Exception e) { return ""; @@ -56,13 +54,11 @@ public class StubRunnerJUnit5ExtensionExceptionThrowingTests { @Test void should_throw_exception_when_no_message_verifier_was_passed_and_message_related_method_was_triggered() { - UnsupportedOperationException emptyTriggerException = assertThrows( - UnsupportedOperationException.class, () -> stubRunnerExtension.trigger()); - UnsupportedOperationException wrongLabelException = assertThrows( - UnsupportedOperationException.class, + UnsupportedOperationException emptyTriggerException = assertThrows(UnsupportedOperationException.class, + () -> stubRunnerExtension.trigger()); + UnsupportedOperationException wrongLabelException = assertThrows(UnsupportedOperationException.class, () -> stubRunnerExtension.trigger("return_book_1")); - UnsupportedOperationException wrongLabelWithIvyNotation = assertThrows( - UnsupportedOperationException.class, + UnsupportedOperationException wrongLabelWithIvyNotation = assertThrows(UnsupportedOperationException.class, () -> stubRunnerExtension.trigger("bootService", "return_book_1")); } diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionTests.java index 59aa87bcb0..97037f473e 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionTests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5ExtensionTests.java @@ -37,12 +37,10 @@ class StubRunnerJUnit5ExtensionTests { // tag::extension[] // Visible for Junit @RegisterExtension - static StubRunnerExtension stubRunnerExtension = new StubRunnerExtension() - .repoRoot(repoRoot()).stubsMode(StubRunnerProperties.StubsMode.REMOTE) - .downloadStub("org.springframework.cloud.contract.verifier.stubs", - "loanIssuance") - .downloadStub( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer") + static StubRunnerExtension stubRunnerExtension = new StubRunnerExtension().repoRoot(repoRoot()) + .stubsMode(StubRunnerProperties.StubsMode.REMOTE) + .downloadStub("org.springframework.cloud.contract.verifier.stubs", "loanIssuance") + .downloadStub("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer") .withMappingsOutputFolder("target/outputmappingsforrule"); @BeforeAll @@ -54,8 +52,7 @@ class StubRunnerJUnit5ExtensionTests { private static String repoRoot() { try { - return StubRunnerRuleJUnitTest.class.getResource("/m2repo/repository/") - .toURI().toString(); + return StubRunnerRuleJUnitTest.class.getResource("/m2repo/repository/").toURI().toString(); } catch (Exception e) { return ""; @@ -65,17 +62,13 @@ class StubRunnerJUnit5ExtensionTests { @Test void should_start_WireMock_servers() { - assertThat(stubRunnerExtension.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs", "loanIssuance")) - .isNotNull(); + assertThat(stubRunnerExtension.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")) + .isNotNull(); assertThat(stubRunnerExtension.findStubUrl("loanIssuance")).isNotNull(); - assertThat(stubRunnerExtension.findStubUrl("loanIssuance")) - .isEqualTo(stubRunnerExtension.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs", - "loanIssuance")); - assertThat(stubRunnerExtension.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")) - .isNotNull(); + assertThat(stubRunnerExtension.findStubUrl("loanIssuance")).isEqualTo( + stubRunnerExtension.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")); + assertThat(stubRunnerExtension + .findStubUrl("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")).isNotNull(); } @Test @@ -84,8 +77,7 @@ class StubRunnerJUnit5ExtensionTests { URL url = stubRunnerExtension.findStubUrl("fraudDetectionServer"); // then - assertThat(new File("target/outputmappingsforrule", - "fraudDetectionServer_" + url.getPort())).exists(); + assertThat(new File("target/outputmappingsforrule", "fraudDetectionServer_" + url.getPort())).exists(); } } diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5MethodExtensionTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5MethodExtensionTests.java index 90a9d2f10d..d9326fa7c7 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5MethodExtensionTests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/junit/StubRunnerJUnit5MethodExtensionTests.java @@ -37,12 +37,10 @@ class StubRunnerJUnit5MethodExtensionTests { // tag::extension[] // Visible for Junit @RegisterExtension - StubRunnerExtension stubRunnerExtension = new StubRunnerExtension() - .repoRoot(repoRoot()).stubsMode(StubRunnerProperties.StubsMode.REMOTE) - .downloadStub("org.springframework.cloud.contract.verifier.stubs", - "loanIssuance") - .downloadStub( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer") + StubRunnerExtension stubRunnerExtension = new StubRunnerExtension().repoRoot(repoRoot()) + .stubsMode(StubRunnerProperties.StubsMode.REMOTE) + .downloadStub("org.springframework.cloud.contract.verifier.stubs", "loanIssuance") + .downloadStub("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer") .withMappingsOutputFolder("target/outputmappingsforrule"); @BeforeEach @@ -54,8 +52,7 @@ class StubRunnerJUnit5MethodExtensionTests { private static String repoRoot() { try { - return StubRunnerRuleJUnitTest.class.getResource("/m2repo/repository/") - .toURI().toString(); + return StubRunnerRuleJUnitTest.class.getResource("/m2repo/repository/").toURI().toString(); } catch (Exception e) { return ""; @@ -65,17 +62,13 @@ class StubRunnerJUnit5MethodExtensionTests { @Test void should_start_WireMock_servers() { - assertThat(stubRunnerExtension.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs", "loanIssuance")) - .isNotNull(); + assertThat(stubRunnerExtension.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")) + .isNotNull(); assertThat(stubRunnerExtension.findStubUrl("loanIssuance")).isNotNull(); - assertThat(stubRunnerExtension.findStubUrl("loanIssuance")) - .isEqualTo(stubRunnerExtension.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs", - "loanIssuance")); - assertThat(stubRunnerExtension.findStubUrl( - "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")) - .isNotNull(); + assertThat(stubRunnerExtension.findStubUrl("loanIssuance")).isEqualTo( + stubRunnerExtension.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")); + assertThat(stubRunnerExtension + .findStubUrl("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")).isNotNull(); } @Test @@ -84,8 +77,7 @@ class StubRunnerJUnit5MethodExtensionTests { URL url = stubRunnerExtension.findStubUrl("fraudDetectionServer"); // then - assertThat(new File("target/outputmappingsforrule", - "fraudDetectionServer_" + url.getPort())).exists(); + assertThat(new File("target/outputmappingsforrule", "fraudDetectionServer_" + url.getPort())).exists(); } } diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerServerConfigurationTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerServerConfigurationTests.java index 29bb0ee939..ecb35bc633 100644 --- a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerServerConfigurationTests.java +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerServerConfigurationTests.java @@ -30,39 +30,31 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class StubRunnerServerConfigurationTests { - private ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(StubRunnerConfiguration.class, - StubRunnerServerConfiguration.class)); + private ApplicationContextRunner contextRunner = new ApplicationContextRunner().withConfiguration( + AutoConfigurations.of(StubRunnerConfiguration.class, StubRunnerServerConfiguration.class)); @Test public void shouldCreateBeansByDefault() { this.contextRunner.run((context) -> { - assertThat(context.getBeansOfType(ContractVerifierMessaging.class)) - .hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierMessaging.class)).hasSize(1); assertThat(context.getBeansOfType(TriggerController.class)).hasSize(1); }); } @Test public void shouldNotCreateBeansWhenDisabled() { - this.contextRunner.withPropertyValues("stubrunner.messaging.enabled=false") - .run((context) -> { - assertThat(context.getBeansOfType(ContractVerifierMessaging.class)) - .hasSize(0); - assertThat(context.getBeansOfType(TriggerController.class)) - .hasSize(0); - }); + this.contextRunner.withPropertyValues("stubrunner.messaging.enabled=false").run((context) -> { + assertThat(context.getBeansOfType(ContractVerifierMessaging.class)).hasSize(0); + assertThat(context.getBeansOfType(TriggerController.class)).hasSize(0); + }); } @Test public void shouldCreateBeansWhenExplicitlyEnabled() { - this.contextRunner.withPropertyValues("stubrunner.messaging.enabled=true") - .run((context) -> { - assertThat(context.getBeansOfType(ContractVerifierMessaging.class)) - .hasSize(1); - assertThat(context.getBeansOfType(TriggerController.class)) - .hasSize(1); - }); + this.contextRunner.withPropertyValues("stubrunner.messaging.enabled=true").run((context) -> { + assertThat(context.getBeansOfType(ContractVerifierMessaging.class)).hasSize(1); + assertThat(context.getBeansOfType(TriggerController.class)).hasSize(1); + }); } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/RecursiveFilesConverter.java b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/RecursiveFilesConverter.java index ebf9b739cd..954049e4cd 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/RecursiveFilesConverter.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/RecursiveFilesConverter.java @@ -66,37 +66,32 @@ public class RecursiveFilesConverter { private final boolean excludeBuildFolders; @Deprecated - public RecursiveFilesConverter(ContractVerifierConfigProperties props, - StubGeneratorProvider holder) { - this(props.getStubsOutputDir(), props.getContractsDslDir(), - props.getExcludedFiles(), props.getIncludedContracts(), - props.getExcludeBuildFolders(), holder); + public RecursiveFilesConverter(ContractVerifierConfigProperties props, StubGeneratorProvider holder) { + this(props.getStubsOutputDir(), props.getContractsDslDir(), props.getExcludedFiles(), + props.getIncludedContracts(), props.getExcludeBuildFolders(), holder); } @Deprecated public RecursiveFilesConverter(ContractVerifierConfigProperties props) { - this(props.getStubsOutputDir(), props.getContractsDslDir(), - props.getExcludedFiles(), props.getIncludedContracts(), - props.getExcludeBuildFolders(), null); - } - - @Deprecated - public RecursiveFilesConverter(ContractVerifierConfigProperties props, - File stubsOutputDir) { - this(stubsOutputDir, props.getContractsDslDir(), props.getExcludedFiles(), + this(props.getStubsOutputDir(), props.getContractsDslDir(), props.getExcludedFiles(), props.getIncludedContracts(), props.getExcludeBuildFolders(), null); } @Deprecated - public RecursiveFilesConverter(ContractVerifierConfigProperties props, - File stubsOutputDir, StubGeneratorProvider holder) { - this(stubsOutputDir, props.getContractsDslDir(), props.getExcludedFiles(), - props.getIncludedContracts(), props.getExcludeBuildFolders(), holder); + public RecursiveFilesConverter(ContractVerifierConfigProperties props, File stubsOutputDir) { + this(stubsOutputDir, props.getContractsDslDir(), props.getExcludedFiles(), props.getIncludedContracts(), + props.getExcludeBuildFolders(), null); } - public RecursiveFilesConverter(File stubsOutputDir, File contractsDslDir, - List excludedFiles, String includedContracts, - boolean excludeBuildFolders, StubGeneratorProvider holder) { + @Deprecated + public RecursiveFilesConverter(ContractVerifierConfigProperties props, File stubsOutputDir, + StubGeneratorProvider holder) { + this(stubsOutputDir, props.getContractsDslDir(), props.getExcludedFiles(), props.getIncludedContracts(), + props.getExcludeBuildFolders(), holder); + } + + public RecursiveFilesConverter(File stubsOutputDir, File contractsDslDir, List excludedFiles, + String includedContracts, boolean excludeBuildFolders, StubGeneratorProvider holder) { this.outMappingsDir = stubsOutputDir; this.contractsDslDir = contractsDslDir; this.excludedFiles = excludedFiles; @@ -105,20 +100,16 @@ public class RecursiveFilesConverter { this.holder = holder == null ? new StubGeneratorProvider() : holder; } - public RecursiveFilesConverter(File stubsOutputDir, File contractsDslDir, - List excludedFiles, String includedContracts, - boolean excludeBuildFolders) { - this(stubsOutputDir, contractsDslDir, excludedFiles, includedContracts, - excludeBuildFolders, null); + public RecursiveFilesConverter(File stubsOutputDir, File contractsDslDir, List excludedFiles, + String includedContracts, boolean excludeBuildFolders) { + this(stubsOutputDir, contractsDslDir, excludedFiles, includedContracts, excludeBuildFolders, null); } public void processFiles() { - ContractFileScanner scanner = new ContractFileScannerBuilder() - .baseDir(contractsDslDir).excluded(new HashSet<>(excludedFiles)) - .ignored(new HashSet<>()).included(new HashSet<>()) + ContractFileScanner scanner = new ContractFileScannerBuilder().baseDir(contractsDslDir) + .excluded(new HashSet<>(excludedFiles)).ignored(new HashSet<>()).included(new HashSet<>()) .includeMatcher(includedContracts).build(); - MultiValueMap contracts = scanner - .findContractsRecursively(); + MultiValueMap contracts = scanner.findContractsRecursively(); if (log.isDebugEnabled()) { log.debug("Found the following contracts " + contracts); } @@ -128,14 +119,12 @@ public class RecursiveFilesConverter { log.debug("Will create a stub for contract [" + contract + "]"); } File sourceFile = contract.getPath().toFile(); - Collection stubGenerators = contract - .getConvertedContract() != null - ? holder.allOrDefault(new DslToWireMockClientConverter()) - : holder.converterForName(sourceFile.getName()); + Collection stubGenerators = contract.getConvertedContract() != null + ? holder.allOrDefault(new DslToWireMockClientConverter()) + : holder.converterForName(sourceFile.getName()); try { String path = sourceFile.getPath(); - if (excludeBuildFolders && (matchesPath(path, "target") - || matchesPath(path, "build"))) { + if (excludeBuildFolders && (matchesPath(path, "target") || matchesPath(path, "build"))) { if (log.isDebugEnabled()) { log.debug("Exclude build folder is set. Path [" + path + "] contains [target] or [build] in its path"); @@ -149,8 +138,8 @@ public class RecursiveFilesConverter { int contractsSize = contract.getConvertedContract().size(); Path entryKey = entry.getKey(); if (log.isDebugEnabled()) { - log.debug("Stub Generators [" + stubGenerators - + "] will convert contents of [" + entryKey + "]"); + log.debug( + "Stub Generators [" + stubGenerators + "] will convert contents of [" + entryKey + "]"); } for (StubGenerator stubGenerator : stubGenerators) { @@ -159,23 +148,18 @@ public class RecursiveFilesConverter { if (convertedContent == null || convertedContent.isEmpty()) { continue; } - Set> entrySet = convertedContent - .entrySet(); - Iterator> iterator = entrySet - .iterator(); + Set> entrySet = convertedContent.entrySet(); + Iterator> iterator = entrySet.iterator(); int index = 0; while (iterator.hasNext()) { Map.Entry content = iterator.next(); Contract dsl = content.getKey(); String converted = content.getValue(); if (StringUtils.hasText(converted)) { - Path absoluteTargetPath = createAndReturnTargetDirectory( - sourceFile); - File newJsonFile = createTargetFileWithProperName( - stubGenerator, absoluteTargetPath, sourceFile, - contractsSize, index, dsl); - Files.write(newJsonFile.toPath(), - Collections.singletonList(converted), + Path absoluteTargetPath = createAndReturnTargetDirectory(sourceFile); + File newJsonFile = createTargetFileWithProperName(stubGenerator, absoluteTargetPath, + sourceFile, contractsSize, index, dsl); + Files.write(newJsonFile.toPath(), Collections.singletonList(converted), StandardCharsets.UTF_8); } index = index + 1; @@ -198,8 +182,7 @@ public class RecursiveFilesConverter { private static T last(Iterable self) { Iterator iterator = self.iterator(); if (!iterator.hasNext()) { - throw new NoSuchElementException( - "Cannot access last() element from an empty Iterable"); + throw new NoSuchElementException("Cannot access last() element from an empty Iterable"); } T result = null; while (iterator.hasNext()) { @@ -209,8 +192,7 @@ public class RecursiveFilesConverter { } private boolean nullOrEmpty(ContractMetadata contract) { - return contract.getConvertedContract() == null - || nullOrEmpty(contract.getConvertedContract()); + return contract.getConvertedContract() == null || nullOrEmpty(contract.getConvertedContract()); } private boolean nullOrEmpty(Collection collection) { @@ -222,8 +204,7 @@ public class RecursiveFilesConverter { } private Path createAndReturnTargetDirectory(File sourceFile) { - Path relativePath = Paths.get(contractsDslDir.toURI()) - .relativize(sourceFile.getParentFile().toPath()); + Path relativePath = Paths.get(contractsDslDir.toURI()).relativize(sourceFile.getParentFile().toPath()); Path absoluteTargetPath = outMappingsDir.toPath().resolve(relativePath); try { Files.createDirectories(absoluteTargetPath); @@ -234,19 +215,16 @@ public class RecursiveFilesConverter { return absoluteTargetPath; } - private File createTargetFileWithProperName(StubGenerator stubGenerator, - Path absoluteTargetPath, File sourceFile, int contractsSize, int index, - Contract dsl) { + private File createTargetFileWithProperName(StubGenerator stubGenerator, Path absoluteTargetPath, File sourceFile, + int contractsSize, int index, Contract dsl) { String name = generateName(dsl, contractsSize, stubGenerator, sourceFile, index); File newJsonFile = new File(absoluteTargetPath.toFile(), name); log.info("Creating new stub [" + newJsonFile.getPath() + "]"); return newJsonFile; } - private String generateName(Contract dsl, int contractsSize, StubGenerator converter, - File sourceFile, int index) { - String generatedName = converter - .generateOutputFileNameForInput(sourceFile.getName()); + private String generateName(Contract dsl, int contractsSize, StubGenerator converter, File sourceFile, int index) { + String generatedName = converter.generateOutputFileNameForInput(sourceFile.getName()); boolean hasDot = NamesUtil.hasDot(generatedName); String extension = hasDot ? NamesUtil.afterLastDot(generatedName) : ""; if (StringUtils.hasText(dsl.getName()) && StringUtils.hasText(extension)) { diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/StubGenerator.java b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/StubGenerator.java index 16ee89a7f4..8fcdd52f35 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/StubGenerator.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/StubGenerator.java @@ -55,8 +55,8 @@ public interface StubGenerator { * @return the converted stub mapping */ default T postProcessStubMapping(T stubMapping, Contract contract) { - List processors = StubPostProcessor.PROCESSORS.stream() - .filter(p -> p.isApplicable(contract)).collect(Collectors.toList()); + List processors = StubPostProcessor.PROCESSORS.stream().filter(p -> p.isApplicable(contract)) + .collect(Collectors.toList()); if (processors.isEmpty()) { return defaultStubMappingPostProcessing(stubMapping, contract); } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/StubGeneratorProvider.java b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/StubGeneratorProvider.java index 51adc560e0..bc2c55e095 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/StubGeneratorProvider.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/StubGeneratorProvider.java @@ -33,8 +33,7 @@ import org.springframework.core.io.support.SpringFactoriesLoader; public class StubGeneratorProvider { public StubGeneratorProvider() { - this.converters - .addAll(SpringFactoriesLoader.loadFactories(StubGenerator.class, null)); + this.converters.addAll(SpringFactoriesLoader.loadFactories(StubGenerator.class, null)); } public StubGeneratorProvider(List converters) { @@ -42,14 +41,12 @@ public class StubGeneratorProvider { } public Collection converterForName(final String fileName) { - return this.converters.stream() - .filter(stubGenerator -> stubGenerator.canHandleFileName(fileName)) + return this.converters.stream().filter(stubGenerator -> stubGenerator.canHandleFileName(fileName)) .collect(Collectors.toList()); } public Collection allOrDefault(StubGenerator defaultStubGenerator) { - return this.converters.isEmpty() ? Collections.singletonList(defaultStubGenerator) - : this.converters; + return this.converters.isEmpty() ? Collections.singletonList(defaultStubGenerator) : this.converters; } private final List converters = new ArrayList(); diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/StubPostProcessor.java b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/StubPostProcessor.java index 97c34a1487..7e23f8250e 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/StubPostProcessor.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/converter/StubPostProcessor.java @@ -33,8 +33,7 @@ public interface StubPostProcessor { /** * List of registered stub post processors. */ - List PROCESSORS = SpringFactoriesLoader - .loadFactories(StubPostProcessor.class, null); + List PROCESSORS = SpringFactoriesLoader.loadFactories(StubPostProcessor.class, null); /** * @param stubMapping - generated stub mapping diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/DefaultWireMockStubPostProcessor.java b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/DefaultWireMockStubPostProcessor.java index 12c4068dfc..7fc3e7299b 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/DefaultWireMockStubPostProcessor.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/DefaultWireMockStubPostProcessor.java @@ -38,10 +38,8 @@ class DefaultWireMockStubPostProcessor implements WireMockStubPostProcessor { @Override public StubMapping postProcess(StubMapping stubMapping, Contract contract) { - WireMockMetaData wireMockMetaData = WireMockMetaData - .fromMetadata(contract.getMetadata()); - StubMapping stubMappingFromMetadata = stubMappingFromMetadata( - wireMockMetaData.getStubMapping()); + WireMockMetaData wireMockMetaData = WireMockMetaData.fromMetadata(contract.getMetadata()); + StubMapping stubMappingFromMetadata = stubMappingFromMetadata(wireMockMetaData.getStubMapping()); stubMapping.setResponse(mergedResponse(stubMapping, stubMappingFromMetadata)); if (stubMappingFromMetadata.getPostServeActions() != null) { setPostServeActions(stubMapping, stubMappingFromMetadata); @@ -52,94 +50,76 @@ class DefaultWireMockStubPostProcessor implements WireMockStubPostProcessor { return stubMapping; } - public void setPostServeActions(StubMapping stubMapping, - StubMapping stubMappingFromMetadata) { + public void setPostServeActions(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { Map postServeActions = stubMapping.getPostServeActions(); postServeActions = postServeActions != null ? postServeActions : new HashMap<>(); postServeActions.putAll(stubMappingFromMetadata.getPostServeActions()); stubMapping.setPostServeActions(postServeActions); } - public void setMetadata(StubMapping stubMapping, - StubMapping stubMappingFromMetadata) { + public void setMetadata(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { Metadata metadata = stubMapping.getMetadata(); metadata = metadata != null ? metadata : new Metadata(); metadata.putAll(stubMappingFromMetadata.getPostServeActions()); stubMapping.setMetadata(metadata); } - public ResponseDefinition mergedResponse(StubMapping stubMapping, - StubMapping stubMappingFromMetadata) { - ResponseDefinition responseDefinition = new ResponseDefinition( - stubMapping.getResponse().getStatus(), - stubMapping.getResponse().getStatusMessage(), - stubMapping.getResponse().getBody(), - stubMapping.getResponse().getJsonBody(), - stubMapping.getResponse().getBase64Body(), - stubMapping.getResponse().getBodyFileName(), - stubMapping.getResponse().getHeaders(), + public ResponseDefinition mergedResponse(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { + ResponseDefinition responseDefinition = new ResponseDefinition(stubMapping.getResponse().getStatus(), + stubMapping.getResponse().getStatusMessage(), stubMapping.getResponse().getBody(), + stubMapping.getResponse().getJsonBody(), stubMapping.getResponse().getBase64Body(), + stubMapping.getResponse().getBodyFileName(), stubMapping.getResponse().getHeaders(), stubMapping.getResponse().getAdditionalProxyRequestHeaders(), fixedDelayMilliseconds(stubMapping, stubMappingFromMetadata), delayDistribution(stubMapping, stubMappingFromMetadata), chunkedDribbleDelay(stubMapping, stubMappingFromMetadata), - proxyBaseUrl(stubMapping, stubMappingFromMetadata), - fault(stubMapping, stubMappingFromMetadata), + proxyBaseUrl(stubMapping, stubMappingFromMetadata), fault(stubMapping, stubMappingFromMetadata), transformers(stubMapping, stubMappingFromMetadata), transformerParameters(stubMapping, stubMappingFromMetadata), wasConfigured(stubMapping, stubMappingFromMetadata)); return responseDefinition; } - public Boolean wasConfigured(StubMapping stubMapping, - StubMapping stubMappingFromMetadata) { + public Boolean wasConfigured(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { return stubMappingFromMetadata.getResponse().isFromConfiguredStub() != null ? stubMappingFromMetadata.getResponse().isFromConfiguredStub() : stubMapping.getResponse().isFromConfiguredStub(); } - public Parameters transformerParameters(StubMapping stubMapping, - StubMapping stubMappingFromMetadata) { + public Parameters transformerParameters(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { return stubMappingFromMetadata.getResponse().getTransformerParameters() != null ? stubMappingFromMetadata.getResponse().getTransformerParameters() : stubMapping.getResponse().getTransformerParameters(); } - public List transformers(StubMapping stubMapping, - StubMapping stubMappingFromMetadata) { + public List transformers(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { return stubMappingFromMetadata.getResponse().getTransformers() != null - ? stubMappingFromMetadata.getResponse().getTransformers() - : stubMapping.getResponse().getTransformers(); + ? stubMappingFromMetadata.getResponse().getTransformers() : stubMapping.getResponse().getTransformers(); } public Fault fault(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { return stubMappingFromMetadata.getResponse().getFault() != null - ? stubMappingFromMetadata.getResponse().getFault() - : stubMapping.getResponse().getFault(); + ? stubMappingFromMetadata.getResponse().getFault() : stubMapping.getResponse().getFault(); } - public String proxyBaseUrl(StubMapping stubMapping, - StubMapping stubMappingFromMetadata) { + public String proxyBaseUrl(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { return stubMappingFromMetadata.getResponse().getProxyBaseUrl() != null - ? stubMappingFromMetadata.getResponse().getProxyBaseUrl() - : stubMapping.getResponse().getProxyBaseUrl(); + ? stubMappingFromMetadata.getResponse().getProxyBaseUrl() : stubMapping.getResponse().getProxyBaseUrl(); } - public ChunkedDribbleDelay chunkedDribbleDelay(StubMapping stubMapping, - StubMapping stubMappingFromMetadata) { + public ChunkedDribbleDelay chunkedDribbleDelay(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { return stubMappingFromMetadata.getResponse().getChunkedDribbleDelay() != null ? stubMappingFromMetadata.getResponse().getChunkedDribbleDelay() : stubMapping.getResponse().getChunkedDribbleDelay(); } - public DelayDistribution delayDistribution(StubMapping stubMapping, - StubMapping stubMappingFromMetadata) { + public DelayDistribution delayDistribution(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { return stubMappingFromMetadata.getResponse().getDelayDistribution() != null ? stubMappingFromMetadata.getResponse().getDelayDistribution() : stubMapping.getResponse().getDelayDistribution(); } - public Integer fixedDelayMilliseconds(StubMapping stubMapping, - StubMapping stubMappingFromMetadata) { + public Integer fixedDelayMilliseconds(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { return stubMappingFromMetadata.getResponse().getFixedDelayMilliseconds() != null ? stubMappingFromMetadata.getResponse().getFixedDelayMilliseconds() : stubMapping.getResponse().getFixedDelayMilliseconds(); @@ -154,27 +134,22 @@ class DefaultWireMockStubPostProcessor implements WireMockStubPostProcessor { } else if (wiremock instanceof Map) { try { - return StubMapping - .buildFrom(this.objectMapper.writeValueAsString(wiremock)); + return StubMapping.buildFrom(this.objectMapper.writeValueAsString(wiremock)); } catch (JsonProcessingException e) { - throw new IllegalStateException( - "Failed to build StubMapping for map [" + wiremock + "]", e); + throw new IllegalStateException("Failed to build StubMapping for map [" + wiremock + "]", e); } } - throw new UnsupportedOperationException( - "Unsupported type for wiremock metadata extension"); + throw new UnsupportedOperationException("Unsupported type for wiremock metadata extension"); } @Override public boolean isApplicable(Contract contract) { - boolean contains = contract.getMetadata() - .containsKey(WireMockMetaData.METADATA_KEY); + boolean contains = contract.getMetadata().containsKey(WireMockMetaData.METADATA_KEY); if (!contains) { return false; } - Object stubMapping = WireMockMetaData.fromMetadata(contract.getMetadata()) - .getStubMapping(); + Object stubMapping = WireMockMetaData.fromMetadata(contract.getMetadata()).getStubMapping(); return WireMockMetaData.APPLICABLE_CLASSES.stream() .anyMatch(aClass -> aClass.isAssignableFrom(stubMapping.getClass())); } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverter.java b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverter.java index ad74ac6b34..185226a2a5 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverter.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverter.java @@ -39,10 +39,8 @@ import org.springframework.util.StringUtils; */ public class DslToWireMockClientConverter extends DslToWireMockConverter { - private String convertASingleContract(String rootName, ContractMetadata contract, - Contract dsl) { - StubMapping stubMapping = new WireMockStubStrategy(rootName, contract, dsl) - .toWireMockClientStub(); + private String convertASingleContract(String rootName, ContractMetadata contract, Contract dsl) { + StubMapping stubMapping = new WireMockStubStrategy(rootName, contract, dsl).toWireMockClientStub(); StubMapping mapping = postProcessStubMapping(stubMapping, dsl); if (mapping == null) { return ""; @@ -51,16 +49,14 @@ public class DslToWireMockClientConverter extends DslToWireMockConverter { } @Override - public StubMapping postProcessStubMapping(StubMapping stubMapping, - Contract contract) { + public StubMapping postProcessStubMapping(StubMapping stubMapping, Contract contract) { StubMapping mapping = super.postProcessStubMapping(stubMapping, contract); // apply the default WireMock processor as the last one return defaultStubMappingPostProcessing(mapping, contract); } @Override - public StubMapping defaultStubMappingPostProcessing(StubMapping stubMapping, - Contract contract) { + public StubMapping defaultStubMappingPostProcessing(StubMapping stubMapping, Contract contract) { DefaultWireMockStubPostProcessor processor = new DefaultWireMockStubPostProcessor(); if (processor.isApplicable(contract)) { return processor.postProcess(stubMapping, contract); @@ -69,15 +65,13 @@ public class DslToWireMockClientConverter extends DslToWireMockConverter { } @Override - public Map convertContents(String rootName, - ContractMetadata contract) { + public Map convertContents(String rootName, ContractMetadata contract) { List httpContracts = httpContracts(contract); if (httpContracts.isEmpty()) { return new HashMap<>(); } if (contract.getConvertedContract().size() == 1) { - return Collections.singletonMap( - first((List) contract.getConvertedContract()), + return Collections.singletonMap(first((List) contract.getConvertedContract()), convertASingleContract(rootName, contract, first((List) contract.getConvertedContract()))); } @@ -85,17 +79,16 @@ public class DslToWireMockClientConverter extends DslToWireMockConverter { } private List httpContracts(ContractMetadata contract) { - return contract.getConvertedContract().stream() - .filter(c -> c.getRequest() != null).collect(Collectors.toList()); + return contract.getConvertedContract().stream().filter(c -> c.getRequest() != null) + .collect(Collectors.toList()); } - private Map convertContracts(String rootName, - ContractMetadata contract, List contractsWithRequest) { + private Map convertContracts(String rootName, ContractMetadata contract, + List contractsWithRequest) { Map convertedContracts = new LinkedHashMap<>(); for (int i = 0; i < contractsWithRequest.size(); i++) { Contract dsl = contractsWithRequest.get(i); - String name = StringUtils.hasText(dsl.getName()) - ? NamesUtil.convertIllegalPackageChars(dsl.getName()) + String name = StringUtils.hasText(dsl.getName()) ? NamesUtil.convertIllegalPackageChars(dsl.getName()) : rootName + "_" + i; convertedContracts.put(dsl, convertASingleContract(name, contract, dsl)); } @@ -104,8 +97,7 @@ public class DslToWireMockClientConverter extends DslToWireMockConverter { private static T first(List self) { if (self.isEmpty()) { - throw new NoSuchElementException( - "Cannot access first() element from an empty List"); + throw new NoSuchElementException("Cannot access first() element from an empty List"); } return self.get(0); } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/WireMockMetaData.java b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/WireMockMetaData.java index 3b6d24295f..c21c1012d0 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/WireMockMetaData.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/WireMockMetaData.java @@ -37,8 +37,7 @@ public class WireMockMetaData implements SpringCloudContractMetadata { /** * Applicable classes for Stub Mapping. */ - static final List APPLICABLE_CLASSES = Arrays.asList(String.class, - StubMapping.class, Map.class); + static final List APPLICABLE_CLASSES = Arrays.asList(String.class, StubMapping.class, Map.class); /** * {@link StubMapping} represented by one of the classes in @@ -55,8 +54,7 @@ public class WireMockMetaData implements SpringCloudContractMetadata { } public static WireMockMetaData fromMetadata(Map metadata) { - return MetadataUtil.fromMetadata(metadata, WireMockMetaData.METADATA_KEY, - new WireMockMetaData()); + return MetadataUtil.fromMetadata(metadata, WireMockMetaData.METADATA_KEY, new WireMockMetaData()); } @Override @@ -66,10 +64,8 @@ public class WireMockMetaData implements SpringCloudContractMetadata { @Override public String description() { - return "Metadata for extending WireMock stubs.\n\nStubMapping can be " - + "one of the following classes " - + APPLICABLE_CLASSES.stream() - .map(aClass -> "`" + aClass.getSimpleName() + "`") + return "Metadata for extending WireMock stubs.\n\nStubMapping can be " + "one of the following classes " + + APPLICABLE_CLASSES.stream().map(aClass -> "`" + aClass.getSimpleName() + "`") .collect(Collectors.toList()) + ". Please check " + "the http://wiremock.org/docs/stubbing/ for more information about the StubMapping class properties."; 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 3e7d6be0a5..23677a5817 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,35 +49,25 @@ 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(); @@ -98,12 +88,10 @@ public class WireMockToDslConverter { private String convertFromWireMockStub(String wireMockStringStub) { JsonNode wireMockStub = parseStubDefinition(wireMockStringStub); - return buildPriority(wireMockStub) + "request {\n" - + buildRequestMethod(wireMockStub) + buildRequestUrl(wireMockStub) - + buildRequestUrlPattern(wireMockStub) - + buildRequestUrlPathPattern(wireMockStub) - + buildRequestUrlPath(wireMockStub) + buildRequestHeaders(wireMockStub) - + buildRequestBody(wireMockStub) + "}\n" + "response {\n" + 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"; } @@ -157,10 +145,8 @@ public class WireMockToDslConverter { String requestUrlPattern = ""; JsonNode requestUrlPatternNode = wireMockStub.at(REQUEST_URL_PATTERN_POINTER); if (!requestUrlPatternNode.isMissingNode()) { - String escapedRequestUrlPatternValue = escapeJava( - requestUrlPatternNode.asText()); - requestUrlPattern = "url $(consumer(regex('" + escapedRequestUrlPatternValue - + "')), producer('" + String escapedRequestUrlPatternValue = escapeJava(requestUrlPatternNode.asText()); + requestUrlPattern = "url $(consumer(regex('" + escapedRequestUrlPatternValue + "')), producer('" + new Xeger(escapedRequestUrlPatternValue).generate() + "'))\n"; } return requestUrlPattern; @@ -168,13 +154,10 @@ 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()); - requestUrlPathPattern = "urlPath $(consumer(regex('" - + escapedRequestUrlPathPatternValue + "')), producer('" + String escapedRequestUrlPathPatternValue = escapeJava(requestUrlPathPatternNode.asText()); + requestUrlPathPattern = "urlPath $(consumer(regex('" + escapedRequestUrlPathPatternValue + "')), producer('" + new Xeger(escapedRequestUrlPathPatternValue).generate() + "'))'\n"; } return requestUrlPathPattern; @@ -187,14 +170,11 @@ 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("}"); @@ -222,24 +202,17 @@ public class WireMockToDslConverter { Iterator elements = requestBodyArrayNode.elements(); Iterable iterableFields = () -> elements; List> requestBodyObjectNodes = new ArrayList<>(); - StreamSupport.stream(iterableFields.spliterator(), false) - .filter(f -> f instanceof ObjectNode).map(f -> (ObjectNode) f) - .map(ObjectNode::fields) + StreamSupport.stream(iterableFields.spliterator(), false).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("matches")) - .findFirst() + 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("'))")); + .append(escapeJava(b.getValue().asText())).append("')), producer('") + .append(new Xeger(escapeJava(b.getValue().asText())).generate()).append("'))")); } return requestBody.toString(); } @@ -258,14 +231,10 @@ 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)) + responseBody += "body( \"" + escapeJava(buildPrettyPrintResponseBody((TextNode) responseBodyNode)) + "\")\n"; } return responseBody; @@ -278,8 +247,7 @@ public class WireMockToDslConverter { private String buildPrettyPrintResponseBody(TextNode node) { try { String textNode = node.asText(); - Object intermediateObjectForPrettyPrinting = OBJECT_MAPPER.reader() - .readValue(textNode, Object.class); + Object intermediateObjectForPrettyPrinting = OBJECT_MAPPER.reader().readValue(textNode, Object.class); DefaultIndenter customIndenter = new DefaultIndenter(" ", "\n"); return OBJECT_MAPPER .writer(new PrivatePrettyPrinter().withArrayIndenter(customIndenter) @@ -287,8 +255,7 @@ public class WireMockToDslConverter { .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"); } } @@ -299,11 +266,9 @@ 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(); @@ -319,8 +284,7 @@ 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-tools/spring-cloud-contract-converters/src/test/java/org/springframework/cloud/contract/verifier/wiremock/DefaultWireMockStubPostProcessorTests.java b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/java/org/springframework/cloud/contract/verifier/wiremock/DefaultWireMockStubPostProcessorTests.java index a1528fde3a..e231f2305a 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/java/org/springframework/cloud/contract/verifier/wiremock/DefaultWireMockStubPostProcessorTests.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/java/org/springframework/cloud/contract/verifier/wiremock/DefaultWireMockStubPostProcessorTests.java @@ -60,8 +60,7 @@ class DefaultWireMockStubPostProcessorTests { @Test void should_not_be_applicable_for_missing_metadata_entry() { - then(new DefaultWireMockStubPostProcessor().isApplicable(new Contract())) - .isFalse(); + then(new DefaultWireMockStubPostProcessor().isApplicable(new Contract())).isFalse(); } @Test @@ -100,8 +99,7 @@ class DefaultWireMockStubPostProcessorTests { contract.getMetadata().put("wiremock", map); StubMapping stubMapping = StubMapping.buildFrom(STUB_MAPPING); - StubMapping result = new DefaultWireMockStubPostProcessor() - .postProcess(stubMapping, contract); + StubMapping result = new DefaultWireMockStubPostProcessor().postProcess(stubMapping, contract); thenPostServerActionWasSet(result); } @@ -114,24 +112,20 @@ class DefaultWireMockStubPostProcessorTests { contract.getMetadata().put("wiremock", map); StubMapping stubMapping = StubMapping.buildFrom(STUB_MAPPING); - StubMapping result = new DefaultWireMockStubPostProcessor() - .postProcess(stubMapping, contract); + StubMapping result = new DefaultWireMockStubPostProcessor().postProcess(stubMapping, contract); thenPostServerActionWasSet(result); } @Test - void should_merge_stub_mappings_when_stub_mapping_is_map() - throws JsonProcessingException { + void should_merge_stub_mappings_when_stub_mapping_is_map() throws JsonProcessingException { Contract contract = new Contract(); Map map = new HashMap<>(); - map.put("stubMapping", - new ObjectMapper().readValue(POST_SERVE_ACTION, HashMap.class)); + map.put("stubMapping", new ObjectMapper().readValue(POST_SERVE_ACTION, HashMap.class)); contract.getMetadata().put("wiremock", map); StubMapping stubMapping = StubMapping.buildFrom(STUB_MAPPING); - StubMapping result = new DefaultWireMockStubPostProcessor() - .postProcess(stubMapping, contract); + StubMapping result = new DefaultWireMockStubPostProcessor().postProcess(stubMapping, contract); thenPostServerActionWasSet(result); } @@ -144,8 +138,7 @@ class DefaultWireMockStubPostProcessorTests { contract.getMetadata().put("wiremock", map); StubMapping stubMapping = StubMapping.buildFrom(STUB_MAPPING); - StubMapping result = new DefaultWireMockStubPostProcessor() - .postProcess(stubMapping, contract); + StubMapping result = new DefaultWireMockStubPostProcessor().postProcess(stubMapping, contract); then(result.getRequest().getMethod().getName()).isEqualTo("GET"); then(result.getResponse().getStatus()).isEqualTo(200); diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/BaseClassMapping.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/BaseClassMapping.java index da0b1bbf04..4c1adbb5e3 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/BaseClassMapping.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/BaseClassMapping.java @@ -54,29 +54,25 @@ public class BaseClassMapping { return false; } BaseClassMapping that = (BaseClassMapping) o; - if (this.contractPackageRegex != null - ? !this.contractPackageRegex.equals(that.contractPackageRegex) + if (this.contractPackageRegex != null ? !this.contractPackageRegex.equals(that.contractPackageRegex) : that.contractPackageRegex != null) { return false; } - return this.baseClassFQN != null ? this.baseClassFQN.equals(that.baseClassFQN) - : that.baseClassFQN == null; + return this.baseClassFQN != null ? this.baseClassFQN.equals(that.baseClassFQN) : that.baseClassFQN == null; } @Override public int hashCode() { - int result = this.contractPackageRegex != null - ? this.contractPackageRegex.hashCode() : 0; - result = 31 * result - + (this.baseClassFQN != null ? this.baseClassFQN.hashCode() : 0); + int result = this.contractPackageRegex != null ? this.contractPackageRegex.hashCode() : 0; + result = 31 * result + (this.baseClassFQN != null ? this.baseClassFQN.hashCode() : 0); return result; } @Override public String toString() { - return "BaseClassMapping{" + "contractPackageRegex='" + this.contractPackageRegex - + '\'' + ", baseClassFQN='" + this.baseClassFQN + '\'' + '}'; + return "BaseClassMapping{" + "contractPackageRegex='" + this.contractPackageRegex + '\'' + ", baseClassFQN='" + + this.baseClassFQN + '\'' + '}'; } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ChangeDetector.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ChangeDetector.java index a1e711257e..eb50edafe7 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ChangeDetector.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ChangeDetector.java @@ -29,12 +29,10 @@ final class ChangeDetector { private ChangeDetector() { } - static boolean inputFilesChangeDetected(File contractsDirectory, - MojoExecution mojoExecution, MavenSession session) + static boolean inputFilesChangeDetected(File contractsDirectory, MojoExecution mojoExecution, MavenSession session) throws MojoExecutionException { - IncrementalBuildHelper incrementalBuildHelper = new IncrementalBuildHelper( - mojoExecution, session); + IncrementalBuildHelper incrementalBuildHelper = new IncrementalBuildHelper(mojoExecution, session); DirectoryScanner scanner = incrementalBuildHelper.getDirectoryScanner(); scanner.setBasedir(contractsDirectory); diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ConvertMojo.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ConvertMojo.java index dd4c0d5497..5e6eb561e0 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ConvertMojo.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ConvertMojo.java @@ -48,8 +48,7 @@ import static org.springframework.cloud.contract.maven.verifier.ChangeDetector.i * * @author Mariusz Smykula */ -@Mojo(name = "convert", requiresProject = false, - defaultPhase = LifecyclePhase.PROCESS_TEST_RESOURCES) +@Mojo(name = "convert", requiresProject = false, defaultPhase = LifecyclePhase.PROCESS_TEST_RESOURCES) public class ConvertMojo extends AbstractMojo { static final String DEFAULT_STUBS_DIR = "${project.build.directory}/stubs/"; @@ -222,58 +221,50 @@ public class ConvertMojo extends AbstractMojo { File contractsDirectory = locationOfContracts(config); contractsDirectory = contractSubfolderIfPresent(contractsDirectory); - if (this.incrementalContractStubs && !inputFilesChangeDetected(contractsDirectory, - mojoExecution, session)) { + if (this.incrementalContractStubs && !inputFilesChangeDetected(contractsDirectory, mojoExecution, session)) { getLog().info("Nothing to generate - all stubs are up to date"); return; } File contractsDslDir = contractsDslDir(contractsDirectory); - LeftOverPrevention leftOverPrevention = new LeftOverPrevention( - this.stubsDirectory, mojoExecution, session); + LeftOverPrevention leftOverPrevention = new LeftOverPrevention(this.stubsDirectory, mojoExecution, session); File copiedContracts = copyContracts(rootPath, config, contractsDirectory); if (this.convertToYaml) { contractsDslDir = copiedContracts; - convertBackedUpDslsToYaml(rootPath, config, contractsDirectory, - contractsDslDir); + convertBackedUpDslsToYaml(rootPath, config, contractsDirectory, contractsDslDir); } config.setContractsDslDir(contractsDslDir); config.setStubsOutputDir(stubsOutputDir(rootPath)); logSetup(config, contractsDslDir); - RecursiveFilesConverter converter = new RecursiveFilesConverter( - config.getStubsOutputDir(), config.getContractsDslDir(), - config.getExcludedFiles(), config.getIncludedContracts(), + RecursiveFilesConverter converter = new RecursiveFilesConverter(config.getStubsOutputDir(), + config.getContractsDslDir(), config.getExcludedFiles(), config.getIncludedContracts(), config.isExcludeBuildFolders()); converter.processFiles(); leftOverPrevention.deleteLeftOvers(); } - private void convertBackedUpDslsToYaml(String rootPath, - ContractVerifierConfigProperties config, File contractsDirectory, - File contractsDslDir) throws MojoExecutionException { + private void convertBackedUpDslsToYaml(String rootPath, ContractVerifierConfigProperties config, + File contractsDirectory, File contractsDslDir) throws MojoExecutionException { copyOriginals(rootPath, config, contractsDirectory); ToYamlConverter.replaceContractWithYaml(contractsDslDir); - getLog().info("Replaced DSL files with their YAML representation at [" - + contractsDslDir + "]"); + getLog().info("Replaced DSL files with their YAML representation at [" + contractsDslDir + "]"); } - private File copyOriginals(String rootPath, ContractVerifierConfigProperties config, - File contractsDirectory) throws MojoExecutionException { - File outputFolderWithOriginals = new File(this.stubsDirectory, - rootPath + ORIGINAL_PATH); - new CopyContracts(this.project, this.mavenSession, this.mavenResourcesFiltering, - config).copy(contractsDirectory, outputFolderWithOriginals); + private File copyOriginals(String rootPath, ContractVerifierConfigProperties config, File contractsDirectory) + throws MojoExecutionException { + File outputFolderWithOriginals = new File(this.stubsDirectory, rootPath + ORIGINAL_PATH); + new CopyContracts(this.project, this.mavenSession, this.mavenResourcesFiltering, config) + .copy(contractsDirectory, outputFolderWithOriginals); return outputFolderWithOriginals; } - private File copyContracts(String rootPath, ContractVerifierConfigProperties config, - File contractsDirectory) throws MojoExecutionException { - File outputFolderWithContracts = this.stubsDirectory.getPath() - .endsWith("contracts") ? this.stubsDirectory - : new File(this.stubsDirectory, rootPath + CONTRACTS_PATH); - new CopyContracts(this.project, this.mavenSession, this.mavenResourcesFiltering, - config).copy(contractsDirectory, outputFolderWithContracts); + private File copyContracts(String rootPath, ContractVerifierConfigProperties config, File contractsDirectory) + throws MojoExecutionException { + File outputFolderWithContracts = this.stubsDirectory.getPath().endsWith("contracts") ? this.stubsDirectory + : new File(this.stubsDirectory, rootPath + CONTRACTS_PATH); + new CopyContracts(this.project, this.mavenSession, this.mavenResourcesFiltering, config) + .copy(contractsDirectory, outputFolderWithContracts); return outputFolderWithContracts; } @@ -281,21 +272,17 @@ public class ConvertMojo extends AbstractMojo { if (getLog().isDebugEnabled()) { getLog().debug("The contracts dir equals [" + contractsDslDir + "]"); } - getLog().info( - "Converting from Spring Cloud Contract Verifier contracts to WireMock stubs mappings"); - getLog().info(String.format( - " Spring Cloud Contract Verifier contracts directory: %s", + getLog().info("Converting from Spring Cloud Contract Verifier contracts to WireMock stubs mappings"); + getLog().info(String.format(" Spring Cloud Contract Verifier contracts directory: %s", config.getContractsDslDir())); - getLog().info(String.format("Stub Server stubs mappings directory: %s", - config.getStubsOutputDir())); + getLog().info(String.format("Stub Server stubs mappings directory: %s", config.getStubsOutputDir())); } private File contractSubfolderIfPresent(File contractsDirectory) { File contractsSubFolder = new File(contractsDirectory, "contracts"); if (contractsSubFolder.exists()) { if (getLog().isDebugEnabled()) { - getLog().debug( - "The subfolder [contracts] exists, will pick it as a source of contracts"); + getLog().debug("The subfolder [contracts] exists, will pick it as a source of contracts"); } contractsDirectory = contractsSubFolder; } @@ -303,19 +290,15 @@ public class ConvertMojo extends AbstractMojo { } private File locationOfContracts(ContractVerifierConfigProperties config) { - return new MavenContractsDownloader(this.project, this.contractDependency, - this.contractsPath, this.contractsRepositoryUrl, this.contractsMode, - getLog(), this.contractsRepositoryUsername, - this.contractsRepositoryPassword, this.contractsRepositoryProxyHost, - this.contractsRepositoryProxyPort, this.deleteStubsAfterTest, - this.contractsProperties, this.failOnNoContracts) - .downloadAndUnpackContractsIfRequired(config, - this.contractsDirectory); + return new MavenContractsDownloader(this.project, this.contractDependency, this.contractsPath, + this.contractsRepositoryUrl, this.contractsMode, getLog(), this.contractsRepositoryUsername, + this.contractsRepositoryPassword, this.contractsRepositoryProxyHost, this.contractsRepositoryProxyPort, + this.deleteStubsAfterTest, this.contractsProperties, this.failOnNoContracts) + .downloadAndUnpackContractsIfRequired(config, this.contractsDirectory); } private File stubsOutputDir(String rootPath) { - return isInsideProject() ? new File(this.stubsDirectory, rootPath + MAPPINGS_PATH) - : this.destination; + return isInsideProject() ? new File(this.stubsDirectory, rootPath + MAPPINGS_PATH) : this.destination; } private File contractsDslDir(File contractsDirectory) { diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/CopyContracts.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/CopyContracts.java index 0607255957..7468dd9d1a 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/CopyContracts.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/CopyContracts.java @@ -43,8 +43,7 @@ class CopyContracts { private final ContractVerifierConfigProperties config; - CopyContracts(MavenProject project, MavenSession mavenSession, - MavenResourcesFiltering mavenResourcesFiltering, + CopyContracts(MavenProject project, MavenSession mavenSession, MavenResourcesFiltering mavenResourcesFiltering, ContractVerifierConfigProperties config) { this.project = project; this.mavenSession = mavenSession; @@ -52,18 +51,14 @@ class CopyContracts { this.config = config; } - public void copy(File contractsDirectory, File outputDirectory) - throws MojoExecutionException { - log.info("Copying Spring Cloud Contract Verifier contracts to [" + outputDirectory - + "]" + ". Only files matching [" + this.config.getIncludedContracts() - + "] pattern will end up in " + "the final JAR with stubs."); + public void copy(File contractsDirectory, File outputDirectory) throws MojoExecutionException { + log.info("Copying Spring Cloud Contract Verifier contracts to [" + outputDirectory + "]" + + ". Only files matching [" + this.config.getIncludedContracts() + "] pattern will end up in " + + "the final JAR with stubs."); Resource resource = new Resource(); - String includedRootFolderAntPattern = this.config - .getIncludedRootFolderAntPattern() + "*.*"; - String slashSeparatedGroupIdAntPattern = slashSeparatedGroupIdAntPattern( - includedRootFolderAntPattern); - String dotSeparatedGroupIdAntPattern = dotSeparatedGroupIdAntPattern( - includedRootFolderAntPattern); + String includedRootFolderAntPattern = this.config.getIncludedRootFolderAntPattern() + "*.*"; + String slashSeparatedGroupIdAntPattern = slashSeparatedGroupIdAntPattern(includedRootFolderAntPattern); + String dotSeparatedGroupIdAntPattern = dotSeparatedGroupIdAntPattern(includedRootFolderAntPattern); // by default group id is slash separated... resource.addInclude(slashSeparatedGroupIdAntPattern); if (!slashSeparatedGroupIdAntPattern.equals(dotSeparatedGroupIdAntPattern)) { @@ -101,8 +96,7 @@ class CopyContracts { return includedRootFolderAntPattern; } else if (includedRootFolderAntPattern.contains(dotSeparatedGroupId())) { - return includedRootFolderAntPattern.replace(dotSeparatedGroupId(), - slashSeparatedGroupId()); + return includedRootFolderAntPattern.replace(dotSeparatedGroupId(), slashSeparatedGroupId()); } return includedRootFolderAntPattern; } @@ -112,8 +106,7 @@ class CopyContracts { return includedRootFolderAntPattern; } else if (includedRootFolderAntPattern.contains(slashSeparatedGroupId())) { - return includedRootFolderAntPattern.replace(slashSeparatedGroupId(), - dotSeparatedGroupId()); + return includedRootFolderAntPattern.replace(slashSeparatedGroupId(), dotSeparatedGroupId()); } return includedRootFolderAntPattern; } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/GenerateStubsMojo.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/GenerateStubsMojo.java index 6eeba83ee7..0a009536cb 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/GenerateStubsMojo.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/GenerateStubsMojo.java @@ -43,20 +43,16 @@ import static org.springframework.cloud.contract.maven.verifier.ChangeDetector.i * * @author Mariusz Smykula */ -@Mojo(name = "generateStubs", defaultPhase = LifecyclePhase.PACKAGE, - requiresProject = true) +@Mojo(name = "generateStubs", defaultPhase = LifecyclePhase.PACKAGE, requiresProject = true) public class GenerateStubsMojo extends AbstractMojo { - @Parameter(defaultValue = "${project.build.directory}", readonly = true, - required = true) + @Parameter(defaultValue = "${project.build.directory}", readonly = true, required = true) private File projectBuildDirectory; - @Parameter(defaultValue = "${project.build.finalName}", readonly = true, - required = true) + @Parameter(defaultValue = "${project.build.finalName}", readonly = true, required = true) private String projectFinalName; - @Parameter(property = "stubsDirectory", - defaultValue = "${project.build.directory}/stubs") + @Parameter(property = "stubsDirectory", defaultValue = "${project.build.directory}/stubs") private File outputDirectory; /** @@ -68,8 +64,7 @@ public class GenerateStubsMojo extends AbstractMojo { /** * Set this to "true" to bypass only JAR creation. */ - @Parameter(property = "spring.cloud.contract.verifier.jar.skip", - defaultValue = "false") + @Parameter(property = "spring.cloud.contract.verifier.jar.skip", defaultValue = "false") private boolean jarSkip; @Component @@ -112,10 +107,8 @@ public class GenerateStubsMojo extends AbstractMojo { public void execute() throws MojoExecutionException, MojoFailureException { if (this.skip || this.jarSkip) { - getLog().info( - "Skipping Spring Cloud Contract Verifier execution: spring.cloud.contract.verifier.skip=" - + this.skip + ", spring.cloud.contract.verifier.jar.skip=" - + this.jarSkip); + getLog().info("Skipping Spring Cloud Contract Verifier execution: spring.cloud.contract.verifier.skip=" + + this.skip + ", spring.cloud.contract.verifier.jar.skip=" + this.jarSkip); return; } else if (stubsOutputMissing(this.outputDirectory) && !this.failOnNoContracts) { @@ -124,44 +117,37 @@ public class GenerateStubsMojo extends AbstractMojo { return; } else if (stubsOutputMissing(this.outputDirectory) && this.failOnNoContracts) { - throw new MojoExecutionException("Stubs could not be found: [" - + this.outputDirectory.getAbsolutePath() + throw new MojoExecutionException("Stubs could not be found: [" + this.outputDirectory.getAbsolutePath() + "] .\nPlease make sure that spring-cloud-contract:convert was invoked"); } - if (this.incrementalContractStubsJar - && !inputFilesChangeDetected(outputDirectory, mojoExecution, session)) { + if (this.incrementalContractStubsJar && !inputFilesChangeDetected(outputDirectory, mojoExecution, session)) { getLog().info("Nothing to generate - stubs jar is up to date"); return; } File stubsJarFile = createStubJar(this.outputDirectory); - this.projectHelper.attachArtifact(this.project, "jar", this.classifier, - stubsJarFile); + this.projectHelper.attachArtifact(this.project, "jar", this.classifier, stubsJarFile); } - private File createStubJar(File stubsOutputDir) - throws MojoFailureException, MojoExecutionException { + private File createStubJar(File stubsOutputDir) throws MojoFailureException, MojoExecutionException { if (!stubsOutputDir.exists()) { - throw new MojoExecutionException("Stubs could not be found: [" - + stubsOutputDir.getAbsolutePath() + throw new MojoExecutionException("Stubs could not be found: [" + stubsOutputDir.getAbsolutePath() + "] .\nPlease make sure that spring-cloud-contract:convert was invoked"); } String stubArchiveName = this.projectFinalName + "-" + this.classifier + ".jar"; File stubsJarFile = new File(this.projectBuildDirectory, stubArchiveName); String[] excludes = excludes(); - getLog().info("Files matching this pattern will be excluded from " - + "stubs generation " + Arrays.toString(excludes)); + getLog().info( + "Files matching this pattern will be excluded from " + "stubs generation " + Arrays.toString(excludes)); try { this.archiver.addDirectory(stubsOutputDir, new String[] { "**/*.*" }, excludedFilesEmpty() ? new String[0] : this.excludedFiles); this.archiver.setCompress(true); this.archiver.setDestFile(stubsJarFile); - this.archiver - .addConfiguredManifest(ManifestCreator.createManifest(this.project)); + this.archiver.addConfiguredManifest(ManifestCreator.createManifest(this.project)); this.archiver.createArchive(); } catch (Exception e) { - throw new MojoFailureException( - "Exception while packaging " + this.classifier + " jar.", e); + throw new MojoFailureException("Exception while packaging " + this.classifier + " jar.", e); } return stubsJarFile; } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/GenerateTestsMojo.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/GenerateTestsMojo.java index a970108a99..a8409dfd46 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/GenerateTestsMojo.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/GenerateTestsMojo.java @@ -59,12 +59,10 @@ public class GenerateTestsMojo extends AbstractMojo { defaultValue = "${project.basedir}/src/test/resources/contracts") private File contractsDirectory; - @Parameter( - defaultValue = "${project.build.directory}/generated-test-sources/contracts") + @Parameter(defaultValue = "${project.build.directory}/generated-test-sources/contracts") private File generatedTestSourcesDir; - @Parameter( - defaultValue = "${project.build.directory}/generated-test-resources/contracts") + @Parameter(defaultValue = "${project.build.directory}/generated-test-resources/contracts") private File generatedTestResourcesDir; @Parameter @@ -113,8 +111,7 @@ public class GenerateTestsMojo extends AbstractMojo { * Incubating feature. You can check the size of JSON arrays. If not turned on * explicitly will be disabled. */ - @Parameter(property = "spring.cloud.contract.verifier.assert.size", - defaultValue = "false") + @Parameter(property = "spring.cloud.contract.verifier.assert.size", defaultValue = "false") private boolean assertJsonSize; /** @@ -264,63 +261,50 @@ public class GenerateTestsMojo extends AbstractMojo { public void execute() throws MojoExecutionException, MojoFailureException { if (this.skip || this.mavenTestSkip || this.skipTests) { if (this.skip) { - getLog().info( - "Skipping Spring Cloud Contract Verifier execution: spring.cloud.contract.verifier.skip=" - + this.skip); + getLog().info("Skipping Spring Cloud Contract Verifier execution: spring.cloud.contract.verifier.skip=" + + this.skip); } if (this.mavenTestSkip) { getLog().info( - "Skipping Spring Cloud Contract Verifier execution: maven.test.skip=" - + this.mavenTestSkip); + "Skipping Spring Cloud Contract Verifier execution: maven.test.skip=" + this.mavenTestSkip); } if (this.skipTests) { - getLog().info( - "Skipping Spring Cloud Contract Verifier execution: skipTests" - + this.skipTests); + getLog().info("Skipping Spring Cloud Contract Verifier execution: skipTests" + this.skipTests); } return; } - getLog().info( - "Generating server tests source code for Spring Cloud Contract Verifier contract verification"); + getLog().info("Generating server tests source code for Spring Cloud Contract Verifier contract verification"); final ContractVerifierConfigProperties config = new ContractVerifierConfigProperties(); config.setFailOnInProgress(this.failOnInProgress); // download contracts, unzip them and pass as output directory - File contractsDirectory = new MavenContractsDownloader(this.project, - this.contractDependency, this.contractsPath, this.contractsRepositoryUrl, - this.contractsMode, getLog(), this.contractsRepositoryUsername, - this.contractsRepositoryPassword, this.contractsRepositoryProxyHost, - this.contractsRepositoryProxyPort, this.deleteStubsAfterTest, - this.contractsProperties, this.failOnNoContracts) - .downloadAndUnpackContractsIfRequired(config, - this.contractsDirectory); - getLog().info( - "Directory with contract is present at [" + contractsDirectory + "]"); + File contractsDirectory = new MavenContractsDownloader(this.project, this.contractDependency, + this.contractsPath, this.contractsRepositoryUrl, this.contractsMode, getLog(), + this.contractsRepositoryUsername, this.contractsRepositoryPassword, this.contractsRepositoryProxyHost, + this.contractsRepositoryProxyPort, this.deleteStubsAfterTest, this.contractsProperties, + this.failOnNoContracts).downloadAndUnpackContractsIfRequired(config, this.contractsDirectory); + getLog().info("Directory with contract is present at [" + contractsDirectory + "]"); - if (this.incrementalContractTests && !ChangeDetector - .inputFilesChangeDetected(contractsDirectory, mojoExecution, session)) { + if (this.incrementalContractTests + && !ChangeDetector.inputFilesChangeDetected(contractsDirectory, mojoExecution, session)) { getLog().info("Nothing to generate - all classes are up to date"); return; } setupConfig(config, contractsDirectory); - this.project - .addTestCompileSourceRoot(this.generatedTestSourcesDir.getAbsolutePath()); + this.project.addTestCompileSourceRoot(this.generatedTestSourcesDir.getAbsolutePath()); Resource resource = new Resource(); resource.setDirectory(this.generatedTestResourcesDir.getAbsolutePath()); this.project.addTestResource(resource); if (getLog().isInfoEnabled()) { - getLog().info("Test Source directory: " - + this.generatedTestSourcesDir.getAbsolutePath() + " added."); - getLog().info("Using [" + config.getBaseClassForTests() - + "] as base class for test classes, [" - + config.getBasePackageForTests() + "] as base " - + "package for tests, [" + config.getPackageWithBaseClasses() - + "] as package with " + "base classes, base class mappings " + getLog().info("Test Source directory: " + this.generatedTestSourcesDir.getAbsolutePath() + " added."); + getLog().info("Using [" + config.getBaseClassForTests() + "] as base class for test classes, [" + + config.getBasePackageForTests() + "] as base " + "package for tests, [" + + config.getPackageWithBaseClasses() + "] as package with " + "base classes, base class mappings " + this.baseClassMappings); } try { - LeftOverPrevention leftOverPrevention = new LeftOverPrevention( - this.generatedTestSourcesDir, mojoExecution, session); + LeftOverPrevention leftOverPrevention = new LeftOverPrevention(this.generatedTestSourcesDir, mojoExecution, + session); TestGenerator generator = new TestGenerator(config); int generatedClasses = generator.generate(); getLog().info("Generated " + generatedClasses + " test classes."); @@ -328,14 +312,11 @@ public class GenerateTestsMojo extends AbstractMojo { } catch (ContractVerifierException e) { throw new MojoExecutionException( - String.format("Spring Cloud Contract Verifier Plugin exception: %s", - e.getMessage()), - e); + String.format("Spring Cloud Contract Verifier Plugin exception: %s", e.getMessage()), e); } } - private void setupConfig(ContractVerifierConfigProperties config, - File contractsDirectory) { + private void setupConfig(ContractVerifierConfigProperties config, File contractsDirectory) { config.setContractsDslDir(contractsDirectory); config.setGeneratedTestSourcesDir(this.generatedTestSourcesDir); config.setGeneratedTestResourcesDir(this.generatedTestResourcesDir); diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/LeftOverPrevention.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/LeftOverPrevention.java index 049d91fc13..140183bc60 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/LeftOverPrevention.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/LeftOverPrevention.java @@ -41,19 +41,18 @@ class LeftOverPrevention { private final File generatedDirectory; - LeftOverPrevention(File generatedDirectory, MojoExecution mojoExecution, - MavenSession session) throws MojoExecutionException { + LeftOverPrevention(File generatedDirectory, MojoExecution mojoExecution, MavenSession session) + throws MojoExecutionException { this.generatedDirectory = generatedDirectory; this.incrementalBuildHelper = new IncrementalBuildHelper(mojoExecution, session); - this.incrementalBuildHelper.beforeRebuildExecution( - new IncrementalBuildHelperRequest().outputDirectory(generatedDirectory)); + this.incrementalBuildHelper + .beforeRebuildExecution(new IncrementalBuildHelperRequest().outputDirectory(generatedDirectory)); } void deleteLeftOvers() throws MojoExecutionException { if (generatedDirectory.exists()) { incrementalBuildHelper - .afterRebuildExecution(new IncrementalBuildHelperRequest() - .outputDirectory(generatedDirectory)); + .afterRebuildExecution(new IncrementalBuildHelperRequest().outputDirectory(generatedDirectory)); } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ManifestCreator.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ManifestCreator.java index 2939560ff0..c70714e2d6 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ManifestCreator.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ManifestCreator.java @@ -34,18 +34,15 @@ final class ManifestCreator { Manifest manifest = new Manifest(); Plugin verifierMavenPlugin = findMavenPlugin(project.getBuildPlugins()); if (verifierMavenPlugin != null) { - manifest.addConfiguredAttribute( - new Manifest.Attribute("Spring-Cloud-Contract-Maven-Plugin-Version", - verifierMavenPlugin.getVersion())); + manifest.addConfiguredAttribute(new Manifest.Attribute("Spring-Cloud-Contract-Maven-Plugin-Version", + verifierMavenPlugin.getVersion())); } - if (verifierMavenPlugin != null - && !verifierMavenPlugin.getDependencies().isEmpty()) { - Dependency verifierDependency = findVerifierDependency( - verifierMavenPlugin.getDependencies()); + if (verifierMavenPlugin != null && !verifierMavenPlugin.getDependencies().isEmpty()) { + Dependency verifierDependency = findVerifierDependency(verifierMavenPlugin.getDependencies()); if (verifierDependency != null) { String verifierVersion = verifierDependency.getVersion(); - manifest.addConfiguredAttribute(new Manifest.Attribute( - "Spring-Cloud-Contract-Verifier-Version", verifierVersion)); + manifest.addConfiguredAttribute( + new Manifest.Attribute("Spring-Cloud-Contract-Verifier-Version", verifierVersion)); } } return manifest; diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/MavenContractsDownloader.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/MavenContractsDownloader.java index e0864a9d3f..d25ac6ff8b 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/MavenContractsDownloader.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/MavenContractsDownloader.java @@ -73,12 +73,10 @@ class MavenContractsDownloader { private final boolean failOnNoStubs; - MavenContractsDownloader(MavenProject project, Dependency contractDependency, - String contractsPath, String contractsRepositoryUrl, - StubRunnerProperties.StubsMode stubsMode, Log log, String repositoryUsername, - String repositoryPassword, String repositoryProxyHost, - Integer repositoryProxyPort, boolean deleteStubsAfterTest, - Map contractsProperties, boolean failOnNoContracts) { + MavenContractsDownloader(MavenProject project, Dependency contractDependency, String contractsPath, + String contractsRepositoryUrl, StubRunnerProperties.StubsMode stubsMode, Log log, String repositoryUsername, + String repositoryPassword, String repositoryProxyHost, Integer repositoryProxyPort, + boolean deleteStubsAfterTest, Map contractsProperties, boolean failOnNoContracts) { this.project = project; this.contractDependency = contractDependency; this.contractsPath = contractsPath; @@ -95,54 +93,42 @@ class MavenContractsDownloader { this.failOnNoStubs = failOnNoContracts; } - File downloadAndUnpackContractsIfRequired(ContractVerifierConfigProperties config, - File defaultContractsDir) { - String contractsDirFromProp = this.project.getProperties() - .getProperty(CONTRACTS_DIRECTORY_PROP); - File downloadedContractsDir = StringUtils.hasText(contractsDirFromProp) - ? new File(contractsDirFromProp) : null; + File downloadAndUnpackContractsIfRequired(ContractVerifierConfigProperties config, File defaultContractsDir) { + String contractsDirFromProp = this.project.getProperties().getProperty(CONTRACTS_DIRECTORY_PROP); + File downloadedContractsDir = StringUtils.hasText(contractsDirFromProp) ? new File(contractsDirFromProp) : null; // reuse downloaded contracts from another mojo if (downloadedContractsDir != null && downloadedContractsDir.exists()) { - this.log.info( - "Another mojo has downloaded the contracts - will reuse them from [" - + downloadedContractsDir + "]"); + this.log.info("Another mojo has downloaded the contracts - will reuse them from [" + downloadedContractsDir + + "]"); final ContractDownloader.InclusionProperties inclusionProperties = contractDownloader() .createNewInclusionProperties(downloadedContractsDir); config.setIncludedContracts(inclusionProperties.getIncludedContracts()); - config.setIncludedRootFolderAntPattern( - inclusionProperties.getIncludedRootFolderAntPattern()); + config.setIncludedRootFolderAntPattern(inclusionProperties.getIncludedRootFolderAntPattern()); return downloadedContractsDir; } else if (shouldDownloadContracts()) { - this.log.info( - "Download dependency is provided - will retrieve contracts from a remote location"); + this.log.info("Download dependency is provided - will retrieve contracts from a remote location"); final ContractDownloader contractDownloader = contractDownloader(); - final File downloadedContracts = contractDownloader - .unpackAndDownloadContracts(); + final File downloadedContracts = contractDownloader.unpackAndDownloadContracts(); final ContractDownloader.InclusionProperties inclusionProperties = contractDownloader .createNewInclusionProperties(downloadedContracts); config.setIncludedContracts(inclusionProperties.getIncludedContracts()); - config.setIncludedRootFolderAntPattern( - inclusionProperties.getIncludedRootFolderAntPattern()); - this.project.getProperties().setProperty(CONTRACTS_DIRECTORY_PROP, - downloadedContracts.getAbsolutePath()); + config.setIncludedRootFolderAntPattern(inclusionProperties.getIncludedRootFolderAntPattern()); + this.project.getProperties().setProperty(CONTRACTS_DIRECTORY_PROP, downloadedContracts.getAbsolutePath()); return downloadedContracts; } - this.log.info("Will use contracts provided in the folder [" + defaultContractsDir - + "]"); + this.log.info("Will use contracts provided in the folder [" + defaultContractsDir + "]"); return defaultContractsDir; } private boolean shouldDownloadContracts() { - return this.contractDependency != null - && StringUtils.hasText(this.contractDependency.getArtifactId()) + return this.contractDependency != null && StringUtils.hasText(this.contractDependency.getArtifactId()) || StringUtils.hasText(this.contractsRepositoryUrl); } private ContractDownloader contractDownloader() { - return new ContractDownloader(stubDownloader(), stubConfiguration(), - this.contractsPath, this.project.getGroupId(), - this.project.getArtifactId(), this.project.getVersion()); + return new ContractDownloader(stubDownloader(), stubConfiguration(), this.contractsPath, + this.project.getGroupId(), this.project.getArtifactId(), this.project.getVersion()); } private StubDownloader stubDownloader() { @@ -152,11 +138,9 @@ class MavenContractsDownloader { StubRunnerOptions buildOptions() { StubRunnerOptionsBuilder builder = new StubRunnerOptionsBuilder() - .withOptions(StubRunnerOptions.fromSystemProps()) - .withStubsMode(this.stubsMode).withUsername(this.repositoryUsername) - .withPassword(this.repositoryPassword) - .withDeleteStubsAfterTest(this.deleteStubsAfterTest) - .withProperties(this.contractsProperties) + .withOptions(StubRunnerOptions.fromSystemProps()).withStubsMode(this.stubsMode) + .withUsername(this.repositoryUsername).withPassword(this.repositoryPassword) + .withDeleteStubsAfterTest(this.deleteStubsAfterTest).withProperties(this.contractsProperties) .withFailOnNoStubs(this.failOnNoStubs); if (StringUtils.hasText(this.contractsRepositoryUrl)) { builder.withStubRepositoryRoot(this.contractsRepositoryUrl); diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/PushStubsToScmMojo.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/PushStubsToScmMojo.java index 9117058a01..b44206d8ff 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/PushStubsToScmMojo.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/PushStubsToScmMojo.java @@ -40,12 +40,10 @@ import org.springframework.util.StringUtils; @Mojo(name = "pushStubsToScm") public class PushStubsToScmMojo extends AbstractMojo { - @Parameter(defaultValue = "${project.build.directory}", readonly = true, - required = true) + @Parameter(defaultValue = "${project.build.directory}", readonly = true, required = true) private File projectBuildDirectory; - @Parameter(property = "stubsDirectory", - defaultValue = "${project.build.directory}/stubs") + @Parameter(property = "stubsDirectory", defaultValue = "${project.build.directory}/stubs") private File outputDirectory; /** @@ -57,8 +55,7 @@ public class PushStubsToScmMojo extends AbstractMojo { /** * Set this to "true" to bypass only JAR creation. */ - @Parameter(property = "spring.cloud.contract.verifier.publish-stubs-to-scm.skip", - defaultValue = "false") + @Parameter(property = "spring.cloud.contract.verifier.publish-stubs-to-scm.skip", defaultValue = "false") private boolean taskSkip; @Parameter(defaultValue = "${project}", readonly = true) @@ -107,34 +104,27 @@ public class PushStubsToScmMojo extends AbstractMojo { @Override public void execute() { if (this.skip || this.taskSkip) { - getLog().info( - "Skipping Spring Cloud Contract Verifier execution: spring.cloud.contract.verifier.skip=" - + this.skip - + ", spring.cloud.contract.verifier.publish-stubs-to-scm.skip=" - + this.taskSkip); + getLog().info("Skipping Spring Cloud Contract Verifier execution: spring.cloud.contract.verifier.skip=" + + this.skip + ", spring.cloud.contract.verifier.publish-stubs-to-scm.skip=" + this.taskSkip); return; } - if (StringUtils.isEmpty(this.contractsRepositoryUrl) || !ScmStubDownloaderBuilder - .isProtocolAccepted(this.contractsRepositoryUrl)) { + if (StringUtils.isEmpty(this.contractsRepositoryUrl) + || !ScmStubDownloaderBuilder.isProtocolAccepted(this.contractsRepositoryUrl)) { getLog().info("Skipping pushing stubs to scm since your " + "[contractsRepositoryUrl] property doesn't match any of the accepted protocols"); return; } - String projectName = this.project.getGroupId() + ":" - + this.project.getArtifactId() + ":" + this.project.getVersion(); + String projectName = this.project.getGroupId() + ":" + this.project.getArtifactId() + ":" + + this.project.getVersion(); getLog().info("Pushing Stubs to SCM for project [" + projectName + "]"); - new ContractProjectUpdater(buildOptions()).updateContractProject(projectName, - this.outputDirectory.toPath()); + new ContractProjectUpdater(buildOptions()).updateContractProject(projectName, this.outputDirectory.toPath()); } StubRunnerOptions buildOptions() { StubRunnerOptionsBuilder builder = new StubRunnerOptionsBuilder() - .withOptions(StubRunnerOptions.fromSystemProps()) - .withStubRepositoryRoot(this.contractsRepositoryUrl) - .withStubsMode(this.contractsMode) - .withUsername(this.contractsRepositoryUsername) - .withPassword(this.contractsRepositoryPassword) - .withDeleteStubsAfterTest(this.deleteStubsAfterTest) + .withOptions(StubRunnerOptions.fromSystemProps()).withStubRepositoryRoot(this.contractsRepositoryUrl) + .withStubsMode(this.contractsMode).withUsername(this.contractsRepositoryUsername) + .withPassword(this.contractsRepositoryPassword).withDeleteStubsAfterTest(this.deleteStubsAfterTest) .withProperties(this.contractsProperties); return builder.build(); } 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 43e7bcc788..1903c23628 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 @@ -45,8 +45,7 @@ import org.springframework.util.StringUtils; * @author Mariusz Smykula * @author Eddú Meléndez */ -@Mojo(name = "run", requiresProject = false, - requiresDependencyResolution = ResolutionScope.RUNTIME) +@Mojo(name = "run", requiresProject = false, requiresDependencyResolution = ResolutionScope.RUNTIME) public class RunMojo extends AbstractMojo { private final LocalStubRunner localStubRunner; @@ -65,8 +64,7 @@ public class RunMojo extends AbstractMojo { /** * HTTP port for the WireMock server that serves stubs. */ - @Parameter(property = "spring.cloud.contract.verifier.http.port", - defaultValue = "8080") + @Parameter(property = "spring.cloud.contract.verifier.http.port", defaultValue = "8080") private int httpPort; /** @@ -78,8 +76,7 @@ public class RunMojo extends AbstractMojo { /** * Set this to "true" to bypass verifier test generation. */ - @Parameter(property = "spring.cloud.contract.verifier.skipTestOnly", - defaultValue = "false") + @Parameter(property = "spring.cloud.contract.verifier.skipTestOnly", defaultValue = "false") private boolean skipTestOnly; /** @@ -91,22 +88,19 @@ public class RunMojo extends AbstractMojo { /** * Minimal port at which the stub should start. */ - @Parameter(property = "spring.cloud.contract.verifier.http.minPort", - defaultValue = "10000") + @Parameter(property = "spring.cloud.contract.verifier.http.minPort", defaultValue = "10000") private int minPort; /** * Maximal port at which the stub should start. */ - @Parameter(property = "spring.cloud.contract.verifier.http.maxPort", - defaultValue = "15000") + @Parameter(property = "spring.cloud.contract.verifier.http.maxPort", defaultValue = "15000") private int maxPort; /** * Should the plugin wait for the user to press the key after starting the stubs. */ - @Parameter(property = "spring.cloud.contract.verifier.wait-for-key-pressed", - defaultValue = "true") + @Parameter(property = "spring.cloud.contract.verifier.wait-for-key-pressed", defaultValue = "true") private boolean waitForKeyPressed; /** @@ -133,24 +127,19 @@ public class RunMojo extends AbstractMojo { @Override public void execute() throws MojoExecutionException, MojoFailureException { if (this.skip || this.skipTestOnly) { - getLog().info( - "Skipping verifier execution: spring.cloud.contract.verifier.skip=" - + this.skip); + getLog().info("Skipping verifier execution: spring.cloud.contract.verifier.skip=" + this.skip); return; } BatchStubRunner batchStubRunner = null; StubRunnerOptionsBuilder optionsBuilder = new StubRunnerOptionsBuilder() .withStubsClassifier(this.stubsClassifier); if (StringUtils.isEmpty(this.stubs)) { - StubRunnerOptions options = optionsBuilder - .withMinMaxPort(this.httpPort, this.httpPort).build(); - StubRunner stubRunner = this.localStubRunner - .run(resolveStubsDirectory().getAbsolutePath(), options); + StubRunnerOptions options = optionsBuilder.withMinMaxPort(this.httpPort, this.httpPort).build(); + StubRunner stubRunner = this.localStubRunner.run(resolveStubsDirectory().getAbsolutePath(), options); batchStubRunner = new BatchStubRunner(Collections.singleton(stubRunner)); } else { - StubRunnerOptions options = optionsBuilder.withStubs(this.stubs) - .withMinMaxPort(this.minPort, this.maxPort) + StubRunnerOptions options = optionsBuilder.withStubs(this.stubs).withMinMaxPort(this.minPort, this.maxPort) .withServerId(this.serverId).build(); batchStubRunner = this.remoteStubRunner.run(options, this.repoSession); } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/stubrunner/AetherStubDownloaderFactory.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/stubrunner/AetherStubDownloaderFactory.java index 1c77418872..b548b18372 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/stubrunner/AetherStubDownloaderFactory.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/stubrunner/AetherStubDownloaderFactory.java @@ -53,8 +53,7 @@ public class AetherStubDownloaderFactory { private final Settings settings; @Inject - public AetherStubDownloaderFactory(RepositorySystem repoSystem, MavenProject project, - Settings settings) { + public AetherStubDownloaderFactory(RepositorySystem repoSystem, MavenProject project, Settings settings) { this.repoSystem = repoSystem; this.project = project; this.settings = settings; @@ -64,13 +63,10 @@ public class AetherStubDownloaderFactory { return new StubDownloaderBuilder() { @Override public StubDownloader build(StubRunnerOptions stubRunnerOptions) { - log.info( - "Will download contracts using current build's Maven repository setup"); - return new AetherStubDownloader( - AetherStubDownloaderFactory.this.repoSystem, - AetherStubDownloaderFactory.this.project - .getRemoteProjectRepositories(), - repoSession, AetherStubDownloaderFactory.this.settings); + log.info("Will download contracts using current build's Maven repository setup"); + return new AetherStubDownloader(AetherStubDownloaderFactory.this.repoSystem, + AetherStubDownloaderFactory.this.project.getRemoteProjectRepositories(), repoSession, + AetherStubDownloaderFactory.this.settings); } @Override diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/stubrunner/LocalStubRunner.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/stubrunner/LocalStubRunner.java index 35fdd087f0..fd09515534 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/stubrunner/LocalStubRunner.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/stubrunner/LocalStubRunner.java @@ -37,8 +37,7 @@ public class LocalStubRunner { public StubRunner run(final String contractsDir, StubRunnerOptions options) { log.info("Launching StubRunner with contracts from " + contractsDir); - StubRunner stubRunner = new StubRunner(options, contractsDir, - new StubConfiguration(contractsDir)); + StubRunner stubRunner = new StubRunner(options, contractsDir, new StubConfiguration(contractsDir)); stubRunner.runStubs(); return stubRunner; } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/stubrunner/RemoteStubRunner.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/stubrunner/RemoteStubRunner.java index a8b6331f2c..fbeedcd86b 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/stubrunner/RemoteStubRunner.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/stubrunner/RemoteStubRunner.java @@ -46,23 +46,19 @@ public class RemoteStubRunner { this.aetherStubDownloaderFactory = aetherStubDownloaderFactory; } - public BatchStubRunner run(StubRunnerOptions options, - RepositorySystemSession repositorySystemSession) { - StubDownloader stubDownloader = this.aetherStubDownloaderFactory - .build(repositorySystemSession).build(options); + public BatchStubRunner run(StubRunnerOptions options, RepositorySystemSession repositorySystemSession) { + StubDownloader stubDownloader = this.aetherStubDownloaderFactory.build(repositorySystemSession).build(options); try { if (log.isDebugEnabled()) { log.debug("Launching StubRunner with args: " + options); } - BatchStubRunner stubRunner = new BatchStubRunnerFactory(options, - stubDownloader).buildBatchStubRunner(); + BatchStubRunner stubRunner = new BatchStubRunnerFactory(options, stubDownloader).buildBatchStubRunner(); RunningStubs runningCollaborators = stubRunner.runStubs(); log.info(runningCollaborators.toString()); return stubRunner; } catch (Exception e) { - log.error("An exception occurred while trying to execute the stubs: " - + e.getMessage()); + log.error("An exception occurred while trying to execute the stubs: " + e.getMessage()); throw e; } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/AbstractMojoTest.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/AbstractMojoTest.java index 70d436c7e2..6229e75e4b 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/AbstractMojoTest.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/AbstractMojoTest.java @@ -63,8 +63,7 @@ public abstract class AbstractMojoTest { return new File(this.tmpFolder, name); } - protected void executeMojo(File baseDir, String goal, Xpp3Dom... parameters) - throws Exception { + protected void executeMojo(File baseDir, String goal, Xpp3Dom... parameters) throws Exception { MavenProject mavenProject = rule.readMavenProject(baseDir); MavenSession mavenSession = rule.newMavenSession(mavenProject); rule.executeMojo(mavenSession, mavenProject, goal, parameters); diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/PluginUnitTest.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/PluginUnitTest.java index 4b3fee8b80..414e850907 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/PluginUnitTest.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/PluginUnitTest.java @@ -43,15 +43,13 @@ public class PluginUnitTest extends AbstractMojoTest { } private Xpp3Dom defaultPackageForTests() { - return newParameter("basePackageForTests", - "org.springframework.cloud.contract.verifier.tests"); + return newParameter("basePackageForTests", "org.springframework.cloud.contract.verifier.tests"); } @Test public void shouldGenerateWireMockFromStubsDirectory() throws Exception { File basedir = getBasedir("withStubs"); - executeMojo(basedir, "convert", - newParameter("contractsDirectory", "src/test/resources/stubs")); + executeMojo(basedir, "convert", newParameter("contractsDirectory", "src/test/resources/stubs")); assertFilesPresent(basedir, "target/stubs/META-INF/org.springframework.cloud.verifier.sample/sample-project/0.1/mappings/Sample.json" .replace("/", File.separator)); @@ -80,8 +78,7 @@ public class PluginUnitTest extends AbstractMojoTest { @Test public void shouldGenerateContractSpecificationInDefaultLocation() throws Exception { File basedir = getBasedir("basic"); - executeMojo(basedir, "generateTests", defaultPackageForTests(), - newParameter("testFramework", "SPOCK")); + executeMojo(basedir, "generateTests", defaultPackageForTests(), newParameter("testFramework", "SPOCK")); String path = "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/ContractVerifierSpec.groovy"; assertFilesPresent(basedir, path); File test = new File(basedir, path); @@ -99,8 +96,7 @@ public class PluginUnitTest extends AbstractMojoTest { @Test public void shouldGenerateContractTestsWithCustomImports() throws Exception { File basedir = getBasedir("basic"); - executeMojo(basedir, "generateTests", defaultPackageForTests(), - newParameter("imports", "")); + executeMojo(basedir, "generateTests", defaultPackageForTests(), newParameter("imports", "")); assertFilesPresent(basedir, "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/ContractVerifierTest.java"); } @@ -119,8 +115,7 @@ public class PluginUnitTest extends AbstractMojoTest { @Test public void shouldGenerateContractTestsWithArraySize() throws Exception { File basedir = getBasedir("basic"); - executeMojo(basedir, "generateTests", defaultPackageForTests(), - newParameter("assertJsonSize", "true")); + executeMojo(basedir, "generateTests", defaultPackageForTests(), newParameter("assertJsonSize", "true")); assertFilesPresent(basedir, "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/ContractVerifierTest.java"); File test = new File(basedir, @@ -153,24 +148,17 @@ public class PluginUnitTest extends AbstractMojoTest { @Test public void shouldGenerateStubsByDownloadingContractsFromARepo() throws Exception { File basedir = getBasedir("basic-remote-contracts"); - executeMojo(basedir, "convert", - newParameter("contractsRepositoryUrl", - "file://" + PluginUnitTest.class.getClassLoader() - .getResource("m2repo/repository").getFile() - .replace("/", File.separator))); + executeMojo(basedir, "convert", newParameter("contractsRepositoryUrl", "file://" + PluginUnitTest.class + .getClassLoader().getResource("m2repo/repository").getFile().replace("/", File.separator))); assertFilesPresent(basedir, "target/stubs/META-INF/com.example/server/0.1.BUILD-SNAPSHOT/mappings/com/example/server/client1/contracts/shouldMarkClientAsFraud.json"); } @Test - public void shouldGenerateStubsByDownloadingContractsFromARepoWhenCustomPathIsProvided() - throws Exception { + public void shouldGenerateStubsByDownloadingContractsFromARepoWhenCustomPathIsProvided() throws Exception { File basedir = getBasedir("complex-remote-contracts"); - executeMojo(basedir, "convert", - newParameter("contractsRepositoryUrl", - "file://" + PluginUnitTest.class.getClassLoader() - .getResource("m2repo/repository").getFile() - .replace("/", File.separator))); + executeMojo(basedir, "convert", newParameter("contractsRepositoryUrl", "file://" + PluginUnitTest.class + .getClassLoader().getResource("m2repo/repository").getFile().replace("/", File.separator))); assertFilesPresent(basedir, "target/stubs/META-INF/com.example.foo.bar.baz/someartifact/0.1.BUILD-SNAPSHOT/mappings/com/example/server/client1/contracts/shouldMarkClientAsFraud.json"); assertFilesNotPresent(basedir, @@ -188,8 +176,7 @@ public class PluginUnitTest extends AbstractMojoTest { } @Test - public void shouldGenerateOutputWhenCalledGenerateTestsFromRootProject() - throws Exception { + public void shouldGenerateOutputWhenCalledGenerateTestsFromRootProject() throws Exception { File basedir = getBasedir("different-module-configuration"); executeMojo(basedir, "generateTests", defaultPackageForTests()); assertFilesPresent(basedir, @@ -200,38 +187,30 @@ public class PluginUnitTest extends AbstractMojoTest { public void shouldGenerateTestsByDownloadingContractsFromARepo() throws Exception { File basedir = getBasedir("basic-remote-contracts"); executeMojo(basedir, "generateTests", defaultPackageForTests(), - newParameter("contractsRepositoryUrl", - "file://" + PluginUnitTest.class.getClassLoader() - .getResource("m2repo/repository").getFile() - .replace("/", File.separator))); + newParameter("contractsRepositoryUrl", "file://" + PluginUnitTest.class.getClassLoader() + .getResource("m2repo/repository").getFile().replace("/", File.separator))); assertFilesPresent(basedir, "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/com/example/server/client1/ContractsTest.java"); } @Test - public void shouldGenerateTestsByDownloadingContractsFromARepoWhenCustomPathIsProvided() - throws Exception { + public void shouldGenerateTestsByDownloadingContractsFromARepoWhenCustomPathIsProvided() throws Exception { File basedir = getBasedir("complex-remote-contracts"); executeMojo(basedir, "generateTests", defaultPackageForTests(), - newParameter("contractsRepositoryUrl", - "file://" + PluginUnitTest.class.getClassLoader() - .getResource("m2repo/repository").getFile() - .replace("/", File.separator))); + newParameter("contractsRepositoryUrl", "file://" + PluginUnitTest.class.getClassLoader() + .getResource("m2repo/repository").getFile().replace("/", File.separator))); assertFilesPresent(basedir, "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/com/example/server/client1/ContractsTest.java"); assertFilesNotPresent(basedir, "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/com/foo/bar/BazTest.java"); - assertFilesNotPresent(basedir, - "target/stubs/contracts/com/foo/bar/baz/shouldBeIgnoredByPlugin.groovy"); + assertFilesNotPresent(basedir, "target/stubs/contracts/com/foo/bar/baz/shouldBeIgnoredByPlugin.groovy"); } @Test - public void shouldGenerateContractTestsWithBaseClassResolvedFromConvention() - throws Exception { + public void shouldGenerateContractTestsWithBaseClassResolvedFromConvention() throws Exception { File basedir = getBasedir("basic-generated-baseclass"); - executeMojo(basedir, "generateTests", defaultPackageForTests(), - newParameter("testFramework", "JUNIT")); + executeMojo(basedir, "generateTests", defaultPackageForTests(), newParameter("testFramework", "JUNIT")); String path = "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/hello/V1Test.java"; assertFilesPresent(basedir, path); @@ -241,12 +220,10 @@ public class PluginUnitTest extends AbstractMojoTest { } @Test - public void shouldGenerateContractTestsWithBaseClassResolvedFromConventionForSpock() - throws Exception { + public void shouldGenerateContractTestsWithBaseClassResolvedFromConventionForSpock() throws Exception { File basedir = getBasedir("basic-generated-baseclass"); - executeMojo(basedir, "generateTests", defaultPackageForTests(), - newParameter("testFramework", "SPOCK")); + executeMojo(basedir, "generateTests", defaultPackageForTests(), newParameter("testFramework", "SPOCK")); String path = "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/hello/V1Spec.groovy"; assertFilesPresent(basedir, path); @@ -256,12 +233,10 @@ public class PluginUnitTest extends AbstractMojoTest { } @Test - public void shouldGenerateContractTestsWithBaseClassResolvedFromMapping() - throws Exception { + public void shouldGenerateContractTestsWithBaseClassResolvedFromMapping() throws Exception { File basedir = getBasedir("basic-baseclass-from-mappings"); - executeMojo(basedir, "generateTests", defaultPackageForTests(), - newParameter("testFramework", "JUNIT")); + executeMojo(basedir, "generateTests", defaultPackageForTests(), newParameter("testFramework", "JUNIT")); String path = "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/com/hello/V1Test.java"; assertFilesPresent(basedir, path); @@ -271,12 +246,10 @@ public class PluginUnitTest extends AbstractMojoTest { } @Test - public void shouldGenerateContractTestsWithBaseClassResolvedFromMappingNameForSpock() - throws Exception { + public void shouldGenerateContractTestsWithBaseClassResolvedFromMappingNameForSpock() throws Exception { File basedir = getBasedir("basic-baseclass-from-mappings"); - executeMojo(basedir, "generateTests", defaultPackageForTests(), - newParameter("testFramework", "SPOCK")); + executeMojo(basedir, "generateTests", defaultPackageForTests(), newParameter("testFramework", "SPOCK")); String path = "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/com/hello/V1Spec.groovy"; assertFilesPresent(basedir, path); @@ -286,12 +259,10 @@ public class PluginUnitTest extends AbstractMojoTest { } @Test - public void shouldGenerateContractTestsWithAFileContainingAListOfContracts() - throws Exception { + public void shouldGenerateContractTestsWithAFileContainingAListOfContracts() throws Exception { File basedir = getBasedir("multiple-contracts"); - executeMojo(basedir, "generateTests", defaultPackageForTests(), - newParameter("testFramework", "JUNIT")); + executeMojo(basedir, "generateTests", defaultPackageForTests(), newParameter("testFramework", "JUNIT")); String path = "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/com/hello/V1Test.java"; assertFilesPresent(basedir, path); @@ -302,8 +273,7 @@ public class PluginUnitTest extends AbstractMojoTest { } @Test - public void shouldGenerateStubsWithAFileContainingAListOfContracts() - throws Exception { + public void shouldGenerateStubsWithAFileContainingAListOfContracts() throws Exception { File basedir = getBasedir("multiple-contracts"); executeMojo(basedir, "convert", newParameter("stubsDirectory", "target/foo")); @@ -347,8 +317,7 @@ public class PluginUnitTest extends AbstractMojoTest { File test = new File(basedir, "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/ContractVerifierTest.java"); String testContents = readFileToString(test, defaultCharset()); - int countOccurrencesOf = StringUtils.countOccurrencesOf(testContents, - "\t\tMockMvcRequestSpecification"); + int countOccurrencesOf = StringUtils.countOccurrencesOf(testContents, "\t\tMockMvcRequestSpecification"); then(countOccurrencesOf).isEqualTo(4); } @@ -358,8 +327,7 @@ public class PluginUnitTest extends AbstractMojoTest { executeMojo(basedir, "pushStubsToScm"); - then(this.capture.toString()) - .contains("Skipping pushing stubs to scm since your"); + then(this.capture.toString()).contains("Skipping pushing stubs to scm since your"); } @Test @@ -367,10 +335,8 @@ public class PluginUnitTest extends AbstractMojoTest { File basedir = getBasedir("complex-common-repo-with-messaging"); executeMojo(basedir, "generateTests", defaultPackageForTests(), - newParameter("contractsRepositoryUrl", - "file://" + PluginUnitTest.class.getClassLoader() - .getResource("m2repo/repository").getFile() - .replace("/", File.separator))); + newParameter("contractsRepositoryUrl", "file://" + PluginUnitTest.class.getClassLoader() + .getResource("m2repo/repository").getFile().replace("/", File.separator))); assertFilesPresent(basedir, "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/common_repo_with_inclusion/kafka_topics/coupon_sent/src/main/resources/contracts/rule_engine_daemon/MessagingTest.java"); assertFilesPresent(basedir, diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/stubrunner/PactStubDownloaderBuilder.java b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/stubrunner/PactStubDownloaderBuilder.java index 0861464dd0..c1e0fb7cbf 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/stubrunner/PactStubDownloaderBuilder.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/stubrunner/PactStubDownloaderBuilder.java @@ -62,8 +62,7 @@ import org.springframework.util.StringUtils; */ public final class PactStubDownloaderBuilder implements StubDownloaderBuilder { - private static final List ACCEPTABLE_PROTOCOLS = Collections - .singletonList("pact"); + private static final List ACCEPTABLE_PROTOCOLS = Collections.singletonList("pact"); /** * Does any of the accepted protocols matches the URL of the repository. @@ -149,11 +148,9 @@ class PactStubDownloader implements StubDownloader { } @Override - public Map.Entry downloadAndUnpackStubJar( - StubConfiguration stubConfiguration) { + public Map.Entry downloadAndUnpackStubJar(StubConfiguration stubConfiguration) { String version = stubConfiguration.version; - final FromPropsThenFromSysEnv resolver = new FromPropsThenFromSysEnv( - this.stubRunnerOptions); + final FromPropsThenFromSysEnv resolver = new FromPropsThenFromSysEnv(this.stubRunnerOptions); List tags = tags(version, resolver); try { PactLoader loader = pactBrokerLoader(resolver, tags); @@ -161,16 +158,14 @@ class PactStubDownloader implements StubDownloader { List pacts = loader.load(providerName); if (pacts.isEmpty()) { if (log.isWarnEnabled()) { - log.warn("No pact definitions found for provider [" + providerName - + "]"); + log.warn("No pact definitions found for provider [" + providerName + "]"); } return null; } - File tmpDirWhereStubsWillBeUnzipped = TemporaryFileStorage - .createTempDir(TEMP_DIR_PREFIX); + File tmpDirWhereStubsWillBeUnzipped = TemporaryFileStorage.createTempDir(TEMP_DIR_PREFIX); // make the groupid / artifactid folders - String coordinatesFolderName = stubConfiguration.getGroupId().replace(".", - File.separator) + File.separator + stubConfiguration.getArtifactId(); + String coordinatesFolderName = stubConfiguration.getGroupId().replace(".", File.separator) + File.separator + + stubConfiguration.getArtifactId(); File contractsFolder = new File(tmpDirWhereStubsWillBeUnzipped, coordinatesFolderName + File.separator + "contracts"); File mappingsFolder = new File(tmpDirWhereStubsWillBeUnzipped, @@ -178,25 +173,21 @@ class PactStubDownloader implements StubDownloader { boolean createdContractsDirs = contractsFolder.mkdirs(); boolean createdMappingsDirs = mappingsFolder.mkdirs(); if (!createdContractsDirs || !createdMappingsDirs) { - throw new IllegalStateException( - "Failed to create mandatory [contracts] or [mappings] folders under [" - + coordinatesFolderName + "]"); + throw new IllegalStateException("Failed to create mandatory [contracts] or [mappings] folders under [" + + coordinatesFolderName + "]"); } storePacts(providerName, pacts, contractsFolder, mappingsFolder); - return new AbstractMap.SimpleEntry<>(stubConfiguration, - tmpDirWhereStubsWillBeUnzipped); + return new AbstractMap.SimpleEntry<>(stubConfiguration, tmpDirWhereStubsWillBeUnzipped); } catch (IOException e) { throw new IllegalStateException(e); } } - private void storePacts(String providerName, List pacts, File contractsFolder, - File mappingsFolder) { + private void storePacts(String providerName, List pacts, File contractsFolder, File mappingsFolder) { for (int i = 0; i < pacts.size(); i++) { String json = toJson(pacts.get(i).toMap(PactSpecVersion.V3)); - File file = new File(contractsFolder, - i + "_" + providerName.replace(":", "_") + "_pact.json"); + File file = new File(contractsFolder, i + "_" + providerName.replace(":", "_") + "_pact.json"); storeFile(file.toPath(), json.getBytes()); try { storeMapping(mappingsFolder, file); @@ -210,8 +201,7 @@ class PactStubDownloader implements StubDownloader { private void storeMapping(File mappingsFolder, File file) { Collection contracts = new PactContractConverter().convertFrom(file); if (log.isDebugEnabled()) { - log.debug("Converted pact file [" + file + "] to [" + contracts.size() - + "] contracts"); + log.debug("Converted pact file [" + file + "] to [" + contracts.size() + "] contracts"); } MappingGenerator.toMappings(file, contracts, mappingsFolder); } @@ -231,18 +221,15 @@ class PactStubDownloader implements StubDownloader { private String providerName(StubConfiguration stubConfiguration) { boolean providerNameWithGroupId = Boolean.parseBoolean(StubRunnerPropertyUtils - .getProperty(this.stubRunnerOptions.getProperties(), - PROVIDER_NAME_WITH_GROUP_ID)); + .getProperty(this.stubRunnerOptions.getProperties(), PROVIDER_NAME_WITH_GROUP_ID)); if (providerNameWithGroupId) { - return stubConfiguration.getGroupId() + ":" - + stubConfiguration.getArtifactId(); + return stubConfiguration.getGroupId() + ":" + stubConfiguration.getArtifactId(); } return stubConfiguration.getArtifactId(); } @NotNull - PactLoader pactBrokerLoader(ValueResolver resolver, List tags) - throws IOException { + PactLoader pactBrokerLoader(ValueResolver resolver, List tags) throws IOException { Resource repo = this.stubRunnerOptions.getStubRepositoryRoot(); String schemeSpecificPart = schemeSpecificPart(repo.getURI()); URI pactBrokerUrl = URI.create(schemeSpecificPart); @@ -257,20 +244,17 @@ class PactStubDownloader implements StubDownloader { @Override public String host() { - return resolver - .resolveValue("pactbroker.host:" + pactBrokerUrl.getHost()); + return resolver.resolveValue("pactbroker.host:" + pactBrokerUrl.getHost()); } @Override public String port() { - return resolver - .resolveValue("pactbroker.port:" + pactBrokerUrl.getPort()); + return resolver.resolveValue("pactbroker.port:" + pactBrokerUrl.getPort()); } @Override public String scheme() { - return resolver - .resolveValue("pactbroker.protocol:" + pactBrokerUrl.getScheme()); + return resolver.resolveValue("pactbroker.protocol:" + pactBrokerUrl.getScheme()); } @Override @@ -298,14 +282,12 @@ class PactStubDownloader implements StubDownloader { @Override public String username() { - return resolver.resolveValue( - "pactbroker.auth.username:" + stubRunnerUsername); + return resolver.resolveValue("pactbroker.auth.username:" + stubRunnerUsername); } @Override public String password() { - return resolver.resolveValue( - "pactbroker.auth.password:" + stubRunnerPassword); + return resolver.resolveValue("pactbroker.auth.password:" + stubRunnerPassword); } @Override @@ -332,10 +314,9 @@ class PactStubDownloader implements StubDownloader { @NotNull private List tags(String version, ValueResolver resolver) { - String defaultTag = StubConfiguration.DEFAULT_VERSION.equals(version) ? "latest" - : version; - return new ArrayList<>(Arrays.asList(StringUtils.commaDelimitedListToStringArray( - resolver.resolveValue("pactbroker.tags:" + defaultTag + "")))); + String defaultTag = StubConfiguration.DEFAULT_VERSION.equals(version) ? "latest" : version; + return new ArrayList<>(Arrays.asList(StringUtils + .commaDelimitedListToStringArray(resolver.resolveValue("pactbroker.tags:" + defaultTag + "")))); } private String toJson(Map map) { @@ -348,8 +329,8 @@ class PactStubDownloader implements StubDownloader { } private void registerShutdownHook() { - Runtime.getRuntime().addShutdownHook(new Thread(() -> TemporaryFileStorage - .cleanup(PactStubDownloader.this.deleteStubsAfterTest))); + Runtime.getRuntime().addShutdownHook( + new Thread(() -> TemporaryFileStorage.cleanup(PactStubDownloader.this.deleteStubsAfterTest))); } } @@ -368,8 +349,7 @@ class FromPropsThenFromSysEnv implements ValueResolver { public String resolveValue(String expression) { PropertyValueTuple tuple = new PropertyValueTuple(expression).invoke(); String propertyName = tuple.getPropertyName(); - String property = StubRunnerPropertyUtils - .getProperty(this.options.getProperties(), propertyName); + String property = StubRunnerPropertyUtils.getProperty(this.options.getProperties(), propertyName); if (StringUtils.hasText(property)) { return property; } @@ -380,8 +360,7 @@ class FromPropsThenFromSysEnv implements ValueResolver { public boolean propertyDefined(String property) { PropertyValueTuple tuple = new PropertyValueTuple(property).invoke(); String propertyName = tuple.getPropertyName(); - boolean hasProperty = StubRunnerPropertyUtils - .hasProperty(this.options.getProperties(), propertyName); + boolean hasProperty = StubRunnerPropertyUtils.hasProperty(this.options.getProperties(), propertyName); if (hasProperty) { return true; } @@ -406,8 +385,7 @@ class PropertyValueTuple { PropertyValueTuple invoke() { if (this.propertyName.contains(":")) { - String[] kv = org.apache.commons.lang3.StringUtils - .splitPreserveAllTokens(this.propertyName, ':'); + String[] kv = org.apache.commons.lang3.StringUtils.splitPreserveAllTokens(this.propertyName, ':'); this.propertyName = kv[0]; } 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 f449671170..cdc0b2f11b 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 @@ -55,14 +55,11 @@ class FileSaver { } protected Path pathToClass(Path testBaseDir, String fileName) { - return Paths.get(testBaseDir.toString(), capitalize(fileName) + fileExtension) - .toAbsolutePath(); + return Paths.get(testBaseDir.toString(), capitalize(fileName) + fileExtension).toAbsolutePath(); } - protected Path generateTestBaseDir(String basePackageClass, - String includedDirectoryRelativePath) { - Path testBaseDir = Paths.get(targetDirectory.getAbsolutePath(), - packageToDirectory(basePackageClass), + protected Path generateTestBaseDir(String basePackageClass, String includedDirectoryRelativePath) { + Path testBaseDir = Paths.get(targetDirectory.getAbsolutePath(), packageToDirectory(basePackageClass), beforeLast(includedDirectoryRelativePath, File.separator)); try { Files.createDirectories(testBaseDir); 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 1f9536598b..0c526a2d11 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 @@ -71,42 +71,36 @@ public class TestGenerator { private final ContractFileScanner contractFileScanner; public TestGenerator(ContractVerifierConfigProperties configProperties) { - this(configProperties, singleTestGenerator(), - new FileSaver(configProperties.getGeneratedTestSourcesDir(), - configProperties.getTestFramework().getClassExtension())); + this(configProperties, singleTestGenerator(), new FileSaver(configProperties.getGeneratedTestSourcesDir(), + configProperties.getTestFramework().getClassExtension())); } private static SingleTestGenerator singleTestGenerator() { - List factories = SpringFactoriesLoader - .loadFactories(SingleTestGenerator.class, null); + List factories = SpringFactoriesLoader.loadFactories(SingleTestGenerator.class, null); if (factories.isEmpty()) { return new JavaTestGenerator(); } return factories.get(0); } - public TestGenerator(ContractVerifierConfigProperties configProperties, - SingleTestGenerator generator, FileSaver saver) { - this(configProperties, generator, saver, - new ContractFileScannerBuilder() - .baseDir(configProperties.getContractsDslDir()) - .excluded(toSet(configProperties.getExcludedFiles())) - .ignored(toSet(configProperties.getIgnoredFiles())) - .included(toSet(configProperties.getIncludedFiles())) - .includeMatcher(configProperties.getIncludedContracts()).build()); + public TestGenerator(ContractVerifierConfigProperties configProperties, SingleTestGenerator generator, + FileSaver saver) { + this(configProperties, generator, saver, new ContractFileScannerBuilder() + .baseDir(configProperties.getContractsDslDir()).excluded(toSet(configProperties.getExcludedFiles())) + .ignored(toSet(configProperties.getIgnoredFiles())).included(toSet(configProperties.getIncludedFiles())) + .includeMatcher(configProperties.getIncludedContracts()).build()); } private static Set toSet(List files) { return Optional.ofNullable(files).map(HashSet::new).orElseGet(HashSet::new); } - protected TestGenerator(ContractVerifierConfigProperties configProperties, - SingleTestGenerator generator, FileSaver saver, - ContractFileScanner contractFileScanner) { + protected TestGenerator(ContractVerifierConfigProperties configProperties, SingleTestGenerator generator, + FileSaver saver, ContractFileScanner contractFileScanner) { this.configProperties = configProperties; if (configProperties.getContractsDslDir() == null) { - throw new ContractVerifierException("Stubs directory not found under " - + configProperties.getContractsDslDir()); + throw new ContractVerifierException( + "Stubs directory not found under " + configProperties.getContractsDslDir()); } this.generator = generator; @@ -135,63 +129,51 @@ public class TestGenerator { } void generateTestClasses(final String basePackageName) { - MultiValueMap contracts = contractFileScanner - .findContractsRecursively(); + MultiValueMap contracts = contractFileScanner.findContractsRecursively(); log.debug("Found the following contracts {}", contracts.keySet()); Set>> inProgress = inProgress(contracts); if (!inProgress.isEmpty() && configProperties.isFailOnInProgress()) { - String inProgressContractsPaths = inProgress.stream().map(Map.Entry::getKey) - .map(Path::toString).collect(Collectors.joining(",")); - throw new IllegalStateException("In progress contracts found in paths [" - + inProgressContractsPaths + String inProgressContractsPaths = inProgress.stream().map(Map.Entry::getKey).map(Path::toString) + .collect(Collectors.joining(",")); + throw new IllegalStateException("In progress contracts found in paths [" + inProgressContractsPaths + "] and the switch [failOnInProgress] is set to [true]. Either unmark those contracts as in progress, or set the switch to [false]."); } processAllNotInProgress(contracts, basePackageName); } - private Set>> inProgress( - MultiValueMap contracts) { + private Set>> inProgress(MultiValueMap contracts) { return contracts.entrySet().stream() - .filter(entry -> entry.getValue().stream() - .anyMatch(ContractMetadata::anyInProgress)) + .filter(entry -> entry.getValue().stream().anyMatch(ContractMetadata::anyInProgress)) .collect(Collectors.toSet()); } - void processAllNotInProgress(MultiValueMap contracts, - final String basePackageName) { + void processAllNotInProgress(MultiValueMap contracts, final String basePackageName) { contracts.entrySet().stream() - .filter(entry -> entry.getValue().stream() - .noneMatch(ContractMetadata::anyInProgress)) - .forEach(entry -> processIncludedDirectory(relativizeContractPath(entry), - entry.getValue(), basePackageName)); + .filter(entry -> entry.getValue().stream().noneMatch(ContractMetadata::anyInProgress)) + .forEach(entry -> processIncludedDirectory(relativizeContractPath(entry), entry.getValue(), + basePackageName)); } private String relativizeContractPath(Map.Entry> entry) { - Path relativePath = configProperties.getContractsDslDir().toPath() - .relativize(entry.getKey()); + Path relativePath = configProperties.getContractsDslDir().toPath().relativize(entry.getKey()); return StringUtils.defaultIfEmpty(relativePath.toString(), DEFAULT_CLASS_PREFIX); } private void processIncludedDirectory(final String includedDirectoryRelativePath, - final Collection contracts, - final String basePackageNameForClass) { + final Collection contracts, final String basePackageNameForClass) { log.debug("Collected contracts with metadata {} relative path is [{}]", contracts, includedDirectoryRelativePath); if (!contracts.isEmpty()) { - String className = afterLast(includedDirectoryRelativePath, File.separator) - + resolveNameSuffix(); + String className = afterLast(includedDirectoryRelativePath, File.separator) + resolveNameSuffix(); String convertedClassName = convertIllegalPackageChars(className); - String packageName = buildPackage(basePackageNameForClass, - includedDirectoryRelativePath); + String packageName = buildPackage(basePackageNameForClass, includedDirectoryRelativePath); Path dir = saver.generateTestBaseDir(basePackageNameForClass, convertIllegalPackageChars(includedDirectoryRelativePath)); Path classPath = saver.pathToClass(dir, convertedClassName); byte[] classBytes = generator - .buildClass(configProperties, contracts, - includedDirectoryRelativePath, - new SingleTestGenerator.GeneratedClassData(convertedClassName, - packageName, classPath)) + .buildClass(configProperties, contracts, includedDirectoryRelativePath, + new SingleTestGenerator.GeneratedClassData(convertedClassName, packageName, classPath)) .getBytes(StandardCharsets.UTF_8); saver.saveClassFile(classPath, classBytes); counter.incrementAndGet(); @@ -203,11 +185,9 @@ public class TestGenerator { configProperties.getTestFramework().getClassNameSuffix()); } - protected static String buildPackage(final String packageNameForClass, - final String includedDirectoryRelativePath) { + protected static String buildPackage(final String packageNameForClass, final String includedDirectoryRelativePath) { String directory = beforeLast(includedDirectoryRelativePath, File.separator); - String convertedPackage = packageNameForClass + "." - + directoryToPackage(convertIllegalPackageChars(directory)); + String convertedPackage = packageNameForClass + "." + directoryToPackage(convertIllegalPackageChars(directory)); return !directory.isEmpty() ? convertedPackage : packageNameForClass; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/assertion/CollectionAssert.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/assertion/CollectionAssert.java index 5a8113ead1..73e424f05a 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/assertion/CollectionAssert.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/assertion/CollectionAssert.java @@ -80,8 +80,7 @@ public class CollectionAssert extends IterableAssert { isNotNull(); int flattenedSize = flattenedSize(0, this.actual); if (!(flattenedSize >= size)) { - failWithMessage("The flattened size <%s> is not greater or equal to <%s>", - flattenedSize, size); + failWithMessage("The flattened size <%s> is not greater or equal to <%s>", flattenedSize, size); } return this; } @@ -97,8 +96,7 @@ public class CollectionAssert extends IterableAssert { isNotNull(); int flattenedSize = flattenedSize(0, this.actual); if (!(flattenedSize <= size)) { - failWithMessage("The flattened size <%s> is not less or equal to <%s>", - flattenedSize, size); + failWithMessage("The flattened size <%s> is not less or equal to <%s>", flattenedSize, size); } return this; } @@ -115,8 +113,8 @@ public class CollectionAssert extends IterableAssert { isNotNull(); int flattenedSize = flattenedSize(0, this.actual); if (!(flattenedSize >= lowerBound && flattenedSize <= higherBound)) { - failWithMessage("The flattened size <%s> is not between <%s> and <%s>", - flattenedSize, lowerBound, higherBound); + failWithMessage("The flattened size <%s> is not between <%s> and <%s>", flattenedSize, lowerBound, + higherBound); } return this; } @@ -130,8 +128,7 @@ public class CollectionAssert extends IterableAssert { isNotNull(); int actualSize = size(this.actual); if (!(actualSize >= size)) { - failWithMessage("The size <%s> is not greater or equal to <%s>", actualSize, - size); + failWithMessage("The size <%s> is not greater or equal to <%s>", actualSize, size); } return this; } @@ -145,8 +142,7 @@ public class CollectionAssert extends IterableAssert { isNotNull(); int actualSize = size(this.actual); if (!(actualSize <= size)) { - failWithMessage("The size <%s> is not less or equal to <%s>", actualSize, - size); + failWithMessage("The size <%s> is not less or equal to <%s>", actualSize, size); } return this; } @@ -163,8 +159,7 @@ public class CollectionAssert extends IterableAssert { isNotNull(); int size = size(this.actual); if (!(size >= lowerBound && size <= higherBound)) { - failWithMessage("The size <%s> is not between <%s> and <%s>", size, - lowerBound, higherBound); + failWithMessage("The size <%s> is not between <%s> and <%s>", size, lowerBound, higherBound); } return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BaseClassProvider.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BaseClassProvider.java index b99f17e6d7..fc8a421e52 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BaseClassProvider.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BaseClassProvider.java @@ -31,24 +31,19 @@ class BaseClassProvider { private static final String SEPARATOR = "_REPLACEME_"; - String retrieveBaseClass(Map baseClassMappings, - String packageWithBaseClasses, String baseClassForTests, - String includedDirectoryRelativePath) { - String contractPathAsPackage = includedDirectoryRelativePath - .replace(File.separator, "."); - String contractPackage = includedDirectoryRelativePath.replace(File.separator, - SEPARATOR); + String retrieveBaseClass(Map baseClassMappings, String packageWithBaseClasses, + String baseClassForTests, String includedDirectoryRelativePath) { + String contractPathAsPackage = includedDirectoryRelativePath.replace(File.separator, "."); + String contractPackage = includedDirectoryRelativePath.replace(File.separator, SEPARATOR); // package mapping takes super precedence if (baseClassMappings != null && !baseClassMappings.isEmpty()) { - Optional> mapping = baseClassMappings.entrySet() - .stream().filter(entry -> { - String pattern = entry.getKey(); - return contractPathAsPackage.matches(pattern); - }).findFirst(); + Optional> mapping = baseClassMappings.entrySet().stream().filter(entry -> { + String pattern = entry.getKey(); + return contractPathAsPackage.matches(pattern); + }).findFirst(); if (log.isDebugEnabled()) { - log.debug("Matching pattern for contract package [" - + contractPathAsPackage + "] with setup " + baseClassMappings - + " is [" + mapping + "]"); + log.debug("Matching pattern for contract package [" + contractPathAsPackage + "] with setup " + + baseClassMappings + " is [" + mapping + "]"); } if (mapping.isPresent()) { return mapping.get().getValue(); @@ -57,15 +52,12 @@ class BaseClassProvider { if (StringUtils.isEmpty(packageWithBaseClasses)) { return baseClassForTests; } - String generatedClassName = generateDefaultBaseClassName(contractPackage, - packageWithBaseClasses); + String generatedClassName = generateDefaultBaseClassName(contractPackage, packageWithBaseClasses); return generatedClassName + "Base"; } - private String generateDefaultBaseClassName(String classPackage, - String packageWithBaseClasses) { - String[] splitPackage = NamesUtil.convertIllegalPackageChars(classPackage) - .split(SEPARATOR); + private String generateDefaultBaseClassName(String classPackage, String packageWithBaseClasses) { + String[] splitPackage = NamesUtil.convertIllegalPackageChars(classPackage).split(SEPARATOR); if (splitPackage.length > 1) { String last = NamesUtil.capitalize(splitPackage[splitPackage.length - 1]); String butLast = NamesUtil.capitalize(splitPackage[splitPackage.length - 2]); diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BlockBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BlockBuilder.java index fc4286a212..e04f3d823f 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BlockBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BlockBuilder.java @@ -188,8 +188,7 @@ public class BlockBuilder { */ public BlockBuilder addAtTheEnd(String toAdd) { String lastChar = String.valueOf(builder.charAt(builder.length() - 1)); - String secondLastChar = builder.length() >= 2 - ? String.valueOf(builder.charAt(builder.length() - 2)) : ""; + String secondLastChar = builder.length() >= 2 ? String.valueOf(builder.charAt(builder.length() - 2)) : ""; boolean isEndWithNewLine = endsWithNewLine(lastChar); boolean lastCharSpecial = aSpecialSign(lastChar, toAdd); boolean secondLastCharSpecial = aSpecialSign(secondLastChar, toAdd); @@ -225,9 +224,8 @@ public class BlockBuilder { return false; } return character.equals("{") || (character.equals(spacer) && toAdd.equals(spacer)) - || (character.equals(spacer) && toAdd.equals(" ")) - || character.equals(toAdd) || (endsWithNewLine(character) - && StringUtils.equalsAny(toAdd, "\n", " ", lineEnding)); + || (character.equals(spacer) && toAdd.equals(" ")) || character.equals(toAdd) + || (endsWithNewLine(character) && StringUtils.equalsAny(toAdd, "\n", " ", lineEnding)); } /** diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyAssertionLineCreator.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyAssertionLineCreator.java index 84ae87fcbb..0051f75a5c 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyAssertionLineCreator.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyAssertionLineCreator.java @@ -33,24 +33,21 @@ class BodyAssertionLineCreator { private final ComparisonBuilder comparisonBuilder; - BodyAssertionLineCreator(BlockBuilder blockBuilder, GeneratedClassMetaData metaData, - String byteArrayString, ComparisonBuilder comparisonBuilder) { + BodyAssertionLineCreator(BlockBuilder blockBuilder, GeneratedClassMetaData metaData, String byteArrayString, + ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.bodyReader = new BodyReader(metaData); this.byteArrayString = byteArrayString; this.comparisonBuilder = comparisonBuilder; } - void appendBodyAssertionLine(SingleContractMetadata metadata, String property, - Object value) { + void appendBodyAssertionLine(SingleContractMetadata metadata, String property, Object value) { if (value instanceof String && ((String) value).startsWith("$")) { - String newValue = stripFirstChar((String) value).replaceAll("\\$value", - "responseBody" + property); + String newValue = stripFirstChar((String) value).replaceAll("\\$value", "responseBody" + property); this.blockBuilder.addLineWithEnding(newValue); } else { - this.blockBuilder.addLineWithEnding( - getResponseBodyPropertyComparisonString(metadata, property, value)); + this.blockBuilder.addLineWithEnding(getResponseBodyPropertyComparisonString(metadata, property, value)); } } @@ -58,23 +55,20 @@ class BodyAssertionLineCreator { * Builds the code that for the given {@code property} will compare it to the given * Object {@code value} */ - private String getResponseBodyPropertyComparisonString( - SingleContractMetadata singleContractMetadata, String property, - Object value) { + private String getResponseBodyPropertyComparisonString(SingleContractMetadata singleContractMetadata, + String property, Object value) { if (value instanceof FromFileProperty) { - return getResponseBodyPropertyComparisonString(singleContractMetadata, - property, (FromFileProperty) value); + return getResponseBodyPropertyComparisonString(singleContractMetadata, property, (FromFileProperty) value); } else if (value instanceof Pattern) { return getResponseBodyPropertyComparisonString(property, (Pattern) value); } else if (value instanceof ExecutionProperty) { - return getResponseBodyPropertyComparisonString(property, - (ExecutionProperty) value); + return getResponseBodyPropertyComparisonString(property, (ExecutionProperty) value); } else if (value instanceof DslProperty) { - return getResponseBodyPropertyComparisonString(singleContractMetadata, - property, ((DslProperty) value).getServerValue()); + return getResponseBodyPropertyComparisonString(singleContractMetadata, property, + ((DslProperty) value).getServerValue()); } return getResponseBodyPropertyComparisonString(property, value.toString()); } @@ -83,14 +77,11 @@ class BodyAssertionLineCreator { * Builds the code that for the given {@code property} will compare it to the given * byte[] {@code value} */ - private String getResponseBodyPropertyComparisonString( - SingleContractMetadata singleContractMetadata, String property, - FromFileProperty value) { + private String getResponseBodyPropertyComparisonString(SingleContractMetadata singleContractMetadata, + String property, FromFileProperty value) { if (value.isByte()) { - return this.comparisonBuilder.assertThat(this.byteArrayString) - + this.comparisonBuilder.isEqualToUnquoted(this.bodyReader - .readBytesFromFileString(singleContractMetadata, value, - CommunicationType.RESPONSE)); + return this.comparisonBuilder.assertThat(this.byteArrayString) + this.comparisonBuilder.isEqualToUnquoted( + this.bodyReader.readBytesFromFileString(singleContractMetadata, value, CommunicationType.RESPONSE)); } return getResponseBodyPropertyComparisonString(property, value.asString()); } @@ -99,18 +90,15 @@ class BodyAssertionLineCreator { * Builds the code that for the given {@code property} will compare it to the given * String {@code value} */ - private String getResponseBodyPropertyComparisonString(String property, - String value) { - return this.comparisonBuilder.assertThatUnescaped("responseBody" + property, - value); + private String getResponseBodyPropertyComparisonString(String property, String value) { + return this.comparisonBuilder.assertThatUnescaped("responseBody" + property, value); } /** * Builds the code that for the given {@code property} will match it to the given * regular expression {@code value} */ - private String getResponseBodyPropertyComparisonString(String property, - Pattern value) { + private String getResponseBodyPropertyComparisonString(String property, Pattern value) { return this.comparisonBuilder.assertThat("responseBody" + property, value); } @@ -118,8 +106,7 @@ class BodyAssertionLineCreator { * Builds the code that for the given {@code property} will match it to the given * {@link ExecutionProperty} value */ - private String getResponseBodyPropertyComparisonString(String property, - ExecutionProperty value) { + private String getResponseBodyPropertyComparisonString(String property, ExecutionProperty value) { return value.insertValue("responseBody" + property); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyMethodGeneration.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyMethodGeneration.java index 81400a9be1..a7747b7266 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyMethodGeneration.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyMethodGeneration.java @@ -37,13 +37,11 @@ interface BodyMethodGeneration { return SerializationUtils.deserialize(serializedObject); } - default void addColonIfRequired(Optional lineSuffix, - BlockBuilder blockBuilder) { + default void addColonIfRequired(Optional lineSuffix, BlockBuilder blockBuilder) { lineSuffix.ifPresent(s -> blockBuilder.addAtTheEnd(lineSuffix.get())); } - default void addBodyMatchingBlock(List matchers, - BlockBuilder blockBuilder, Object responseBody, + default void addBodyMatchingBlock(List matchers, BlockBuilder blockBuilder, Object responseBody, boolean shouldCommentOutBDDBlocks) { blockBuilder.endBlock(); blockBuilder.addLine(getAssertionJoiner(shouldCommentOutBDDBlocks)); @@ -52,8 +50,7 @@ interface BodyMethodGeneration { if (it.matchingType() == MatchingType.NULL) { methodForNullCheck(it, blockBuilder); } - else if (MatchingType.regexRelated(it.matchingType()) - || it.matchingType() == MatchingType.EQUALITY) { + else if (MatchingType.regexRelated(it.matchingType()) || it.matchingType() == MatchingType.EQUALITY) { methodForEqualityCheck(it, blockBuilder, responseBody); } else if (it.matchingType() == MatchingType.COMMAND) { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyMethodVisitor.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyMethodVisitor.java index 2aba647859..d45d36bd25 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyMethodVisitor.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyMethodVisitor.java @@ -34,8 +34,7 @@ interface BodyMethodVisitor { * @return */ default BlockBuilder startBodyBlock(BlockBuilder blockBuilder, String label) { - return blockBuilder.addIndentation().appendWithLabelPrefix(label).addEmptyLine() - .startBlock(); + return blockBuilder.addIndentation().appendWithLabelPrefix(label).addEmptyLine().startBlock(); } /** @@ -44,11 +43,9 @@ interface BodyMethodVisitor { * @param methodVisitors * @param singleContractMetadata */ - default void indentedBodyBlock(BlockBuilder blockBuilder, - List methodVisitors, + default void indentedBodyBlock(BlockBuilder blockBuilder, List methodVisitors, SingleContractMetadata singleContractMetadata) { - List visitors = filterVisitors(methodVisitors, - singleContractMetadata); + List visitors = filterVisitors(methodVisitors, singleContractMetadata); if (visitors.isEmpty()) { blockBuilder.addEndingIfNotPresent().addEmptyLine(); blockBuilder.endBlock(); @@ -65,11 +62,9 @@ interface BodyMethodVisitor { * @param singleContractMetadata * @return */ - default List filterVisitors( - List methodVisitors, + default List filterVisitors(List methodVisitors, SingleContractMetadata singleContractMetadata) { - return methodVisitors.stream() - .filter(given -> given.accept(singleContractMetadata)) + return methodVisitors.stream().filter(given -> given.accept(singleContractMetadata)) .collect(Collectors.toList()); } @@ -80,11 +75,9 @@ interface BodyMethodVisitor { * @param methodVisitors * @param singleContractMetadata */ - default void bodyBlock(BlockBuilder blockBuilder, - List methodVisitors, + default void bodyBlock(BlockBuilder blockBuilder, List methodVisitors, SingleContractMetadata singleContractMetadata) { - List visitors = filterVisitors(methodVisitors, - singleContractMetadata); + List visitors = filterVisitors(methodVisitors, singleContractMetadata); if (visitors.isEmpty()) { blockBuilder.addEndingIfNotPresent().addEmptyLine(); return; @@ -99,8 +92,8 @@ interface BodyMethodVisitor { * @param singleContractMetadata * @param visitors */ - default void applyVisitors(BlockBuilder blockBuilder, - SingleContractMetadata singleContractMetadata, List visitors) { + default void applyVisitors(BlockBuilder blockBuilder, SingleContractMetadata singleContractMetadata, + List visitors) { Iterator iterator = visitors.iterator(); while (iterator.hasNext()) { MethodVisitor visitor = iterator.next(); @@ -118,8 +111,8 @@ interface BodyMethodVisitor { * @param singleContractMetadata * @param visitors */ - default void applyVisitorsWithEnding(BlockBuilder blockBuilder, - SingleContractMetadata singleContractMetadata, List visitors) { + default void applyVisitorsWithEnding(BlockBuilder blockBuilder, SingleContractMetadata singleContractMetadata, + List visitors) { Iterator iterator = visitors.iterator(); while (iterator.hasNext()) { MethodVisitor visitor = iterator.next(); diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyParser.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyParser.java index 43dd1187ae..e7a502a65d 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyParser.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyParser.java @@ -68,15 +68,13 @@ interface BodyParser extends BodyThen { default Object convertResponseBody(SingleContractMetadata metadata) { ContentType contentType = metadata.getOutputTestContentType(); DslProperty body = responseBody(metadata); - Object responseBody = extractServerValueFromBody(contentType, - body.getServerValue()); + Object responseBody = extractServerValueFromBody(contentType, body.getServerValue()); if (responseBody instanceof FromFileProperty) { responseBody = ((FromFileProperty) responseBody).asString(); } else if (responseBody instanceof GString) { responseBody = extractValue((GString) responseBody, contentType, - o -> o instanceof DslProperty ? ((DslProperty) o).getServerValue() - : o); + o -> o instanceof DslProperty ? ((DslProperty) o).getServerValue() : o); } else if (responseBody instanceof DslProperty) { responseBody = MapConverter.getTestSideValues(responseBody); @@ -96,15 +94,14 @@ interface BodyParser extends BodyThen { // [a:3, b:4] == "a=3&b=4" return ((Map) bodyValue).entrySet().stream().map(o -> { Map.Entry entry = (Map.Entry) o; - return convertUnicodeEscapesIfRequired(entry.getKey().toString() + "=" - + MapConverter.getTestSideValuesForText(entry.getValue())); + return convertUnicodeEscapesIfRequired( + entry.getKey().toString() + "=" + MapConverter.getTestSideValuesForText(entry.getValue())); }).collect(Collectors.joining("&")).toString(); } else if (bodyValue instanceof List) { // ["a=3", "b=4"] == "a=3&b=4" return ((List) bodyValue).stream() - .map(o -> convertUnicodeEscapesIfRequired( - MapConverter.getTestSideValuesForText(o).toString())) + .map(o -> convertUnicodeEscapesIfRequired(MapConverter.getTestSideValuesForText(o).toString())) .collect(Collectors.joining("&")).toString(); } } @@ -120,16 +117,14 @@ interface BodyParser extends BodyThen { */ default Object extractServerValueFromBody(ContentType contentType, Object bodyValue) { if (bodyValue instanceof GString) { - return extractValue((GString) bodyValue, contentType, - ContentUtils.GET_TEST_SIDE); + return extractValue((GString) bodyValue, contentType, ContentUtils.GET_TEST_SIDE); } else if (bodyValue instanceof FromFileProperty) { return MapConverter.transformValues(bodyValue, ContentUtils.GET_TEST_SIDE); } else if (TEXT != contentType && FORM != contentType && DEFINED != contentType) { boolean dontParseStrings = contentType == JSON && bodyValue instanceof Map; - Closure parsingClosure = dontParseStrings ? Closure.IDENTITY - : MapConverter.JSON_PARSING_CLOSURE; + Closure parsingClosure = dontParseStrings ? Closure.IDENTITY : MapConverter.JSON_PARSING_CLOSURE; return MapConverter.getTestSideValues(bodyValue, parsingClosure); } return bodyValue; diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyReader.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyReader.java index 963a13a295..2ce5a040b6 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyReader.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/BodyReader.java @@ -47,47 +47,41 @@ class BodyReader { this.generatedClassMetaData = generatedClassMetaData; } - String readBytesFromFileString(SingleContractMetadata metadata, - FromFileProperty property, CommunicationType side) { + String readBytesFromFileString(SingleContractMetadata metadata, FromFileProperty property, CommunicationType side) { String fileName = byteBodyToAFileForTestMethod(metadata, property, side); return "fileToBytes(this, \"" + fileName + "\")"; } - String readStringFromFileString(SingleContractMetadata metadata, - FromFileProperty property, CommunicationType side) { + String readStringFromFileString(SingleContractMetadata metadata, FromFileProperty property, + CommunicationType side) { if (!Charset.defaultCharset().toString().equals(property.getCharset())) { - return "new String(" + readBytesFromFileString(metadata, property, side) - + ", \"" + property.getCharset() + "\")"; + return "new String(" + readBytesFromFileString(metadata, property, side) + ", \"" + property.getCharset() + + "\")"; } return "new String(" + readBytesFromFileString(metadata, property, side) + ")"; } void storeContractAsYaml(SingleContractMetadata metadata) { Contract contract = metadata.getContract(); - List contracts = this.converter - .convertTo(Collections.singleton(contract)); + List contracts = this.converter.convertTo(Collections.singleton(contract)); Map store = this.converter.store(contracts); - store.forEach( - (name, bytes) -> writeFileForBothIdeAndBuildTool(metadata, bytes, name)); + store.forEach((name, bytes) -> writeFileForBothIdeAndBuildTool(metadata, bytes, name)); } - private String byteBodyToAFileForTestMethod(SingleContractMetadata metadata, - FromFileProperty property, CommunicationType side) { + private String byteBodyToAFileForTestMethod(SingleContractMetadata metadata, FromFileProperty property, + CommunicationType side) { GeneratedClassDataForMethod classDataForMethod = classDataForMethod(metadata); - String newFileName = classDataForMethod.getMethodName() + "_" - + side.name().toLowerCase() + "_" + property.fileName(); + String newFileName = classDataForMethod.getMethodName() + "_" + side.name().toLowerCase() + "_" + + property.fileName(); writeFileForBothIdeAndBuildTool(metadata, property.asBytes(), newFileName); return newFileName; } - private GeneratedClassDataForMethod classDataForMethod( - SingleContractMetadata metadata) { - return new GeneratedClassDataForMethod( - this.generatedClassMetaData.generatedClassData, metadata.methodName()); + private GeneratedClassDataForMethod classDataForMethod(SingleContractMetadata metadata) { + return new GeneratedClassDataForMethod(this.generatedClassMetaData.generatedClassData, metadata.methodName()); } - private void writeFileForBothIdeAndBuildTool(SingleContractMetadata metadata, - byte[] bytes, String newFileName) { + private void writeFileForBothIdeAndBuildTool(SingleContractMetadata metadata, byte[] bytes, String newFileName) { GeneratedClassDataForMethod classDataForMethod = classDataForMethod(metadata); java.nio.file.Path parent = classDataForMethod.testClassPath().getParent(); if (parent == null) { @@ -101,8 +95,7 @@ class BodyReader { try { Path path = newFile.toPath(); if (log.isDebugEnabled()) { - log.debug("Writing file for [" + path - + "] for body reading in generated test (for IDE)"); + log.debug("Writing file for [" + path + "] for body reading in generated test (for IDE)"); } Files.write(path, bytes); // for plugin @@ -113,22 +106,15 @@ class BodyReader { } } - private void generatedTestResourcesFileBytes(byte[] bytes, File newFile) - throws IOException { - Assert.notNull( - this.generatedClassMetaData.configProperties.getGeneratedTestSourcesDir(), + private void generatedTestResourcesFileBytes(byte[] bytes, File newFile) throws IOException { + Assert.notNull(this.generatedClassMetaData.configProperties.getGeneratedTestSourcesDir(), "No generated test sources directory set"); - Assert.notNull( - this.generatedClassMetaData.configProperties - .getGeneratedTestResourcesDir(), + Assert.notNull(this.generatedClassMetaData.configProperties.getGeneratedTestResourcesDir(), "No generated test resources directory set"); - Path path = this.generatedClassMetaData.configProperties - .getGeneratedTestSourcesDir().toPath(); + Path path = this.generatedClassMetaData.configProperties.getGeneratedTestSourcesDir().toPath(); Path relativePath = path.relativize(newFile.toPath()); File newFileInGeneratedTestSources = new File( - this.generatedClassMetaData.configProperties - .getGeneratedTestResourcesDir(), - relativePath.toString()); + this.generatedClassMetaData.configProperties.getGeneratedTestResourcesDir(), relativePath.toString()); newFileInGeneratedTestSources.getParentFile().mkdirs(); Path generatedTestSourceFilePath = newFileInGeneratedTestSources.toPath(); if (log.isDebugEnabled()) { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ClassAnnotationsBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ClassAnnotationsBuilder.java index 0ba97a3e0f..8a87054097 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ClassAnnotationsBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ClassAnnotationsBuilder.java @@ -36,20 +36,17 @@ class ClassAnnotationsBuilder { } ClassAnnotationsBuilder jUnit4() { - this.parentBuilder - .classAnnotations(new JUnit4OrderClassAnnotation(builder, metaData)); + this.parentBuilder.classAnnotations(new JUnit4OrderClassAnnotation(builder, metaData)); return this; } ClassAnnotationsBuilder jUnit5() { - this.parentBuilder - .classAnnotations(new JUnit5OrderClassAnnotation(builder, metaData)); + this.parentBuilder.classAnnotations(new JUnit5OrderClassAnnotation(builder, metaData)); return this; } ClassAnnotationsBuilder spock() { - this.parentBuilder - .classAnnotations(new SpockOrderClassAnnotation(builder, metaData)); + this.parentBuilder.classAnnotations(new SpockOrderClassAnnotation(builder, metaData)); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ClassBodyBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ClassBodyBuilder.java index e54f0b9681..837462f570 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ClassBodyBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ClassBodyBuilder.java @@ -38,14 +38,12 @@ class ClassBodyBuilder { final GeneratedClassMetaData generatedClassMetaData; - private ClassBodyBuilder(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + private ClassBodyBuilder(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } - static ClassBodyBuilder builder(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + static ClassBodyBuilder builder(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { return new ClassBodyBuilder(blockBuilder, generatedClassMetaData); } @@ -78,8 +76,7 @@ class ClassBodyBuilder { } void visit(List list) { - List visitors = list.stream().filter(Acceptor::accept) - .collect(Collectors.toList()); + List visitors = list.stream().filter(Acceptor::accept).collect(Collectors.toList()); Iterator iterator = visitors.iterator(); while (iterator.hasNext()) { Visitor visitor = iterator.next(); diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ComparisonBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ComparisonBuilder.java index a9524190aa..f39f21cb92 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ComparisonBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ComparisonBuilder.java @@ -74,8 +74,7 @@ interface ComparisonBuilder { } default String isEqualTo(Number number) { - String numberString = number instanceof Long ? number.toString() + "L" - : number.toString(); + String numberString = number instanceof Long ? number.toString() + "L" : number.toString(); return ".isEqualTo(" + numberString + ")"; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ContentHelper.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ContentHelper.java index ca646d1de0..8d339c0ce9 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ContentHelper.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ContentHelper.java @@ -32,8 +32,7 @@ final class ContentHelper { if (object instanceof ExecutionProperty) { return getTestSideValue(object); } - return quotedAndEscaped( - MapConverter.getTestSideValuesForNonBody(object).toString()); + return quotedAndEscaped(MapConverter.getTestSideValuesForNonBody(object).toString()); } /** diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CookieElementProcessor.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CookieElementProcessor.java index b6c1b74070..1072373b26 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CookieElementProcessor.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CookieElementProcessor.java @@ -37,10 +37,8 @@ interface CookieElementProcessor { Iterator iterator = cookies.getEntries().iterator(); while (iterator.hasNext()) { Cookie cookie = iterator.next(); - String text = processCookieElement(cookie.getKey(), - cookie.getServerValue() instanceof NotToEscapePattern - ? cookie.getServerValue() - : MapConverter.getTestSideValues(cookie.getServerValue())); + String text = processCookieElement(cookie.getKey(), cookie.getServerValue() instanceof NotToEscapePattern + ? cookie.getServerValue() : MapConverter.getTestSideValues(cookie.getServerValue())); if (iterator.hasNext()) { blockBuilder().addLine(text).addEndingIfNotPresent(); } @@ -55,9 +53,8 @@ interface CookieElementProcessor { default String processCookieElement(String property, Object value) { if (value instanceof NotToEscapePattern) { verifyCookieNotNull(property); - return comparisonBuilder().assertThat(cookieValue(property)) - + comparisonBuilder().matches(((NotToEscapePattern) value) - .getServerValue().pattern().replace("\\", "\\\\")); + return comparisonBuilder().assertThat(cookieValue(property)) + comparisonBuilder() + .matches(((NotToEscapePattern) value).getServerValue().pattern().replace("\\", "\\\\")); } else if (value instanceof String || value instanceof Pattern) { verifyCookieNotNull(property); @@ -79,8 +76,7 @@ interface CookieElementProcessor { } default void verifyCookieNotNull(String key) { - blockBuilder().addLineWithEnding( - comparisonBuilder().assertThatIsNotNull(cookieKey(key))); + blockBuilder().addLineWithEnding(comparisonBuilder().assertThatIsNotNull(cookieKey(key))); } String cookieKey(String key); diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomImports.java index 108a77e2e3..00b6cf51b9 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomImports.java @@ -24,8 +24,7 @@ class CustomImports implements Imports { private final GeneratedClassMetaData generatedClassMetaData; - CustomImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + CustomImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomStaticImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomStaticImports.java index 04b1ae671a..380346d421 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomStaticImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomStaticImports.java @@ -24,8 +24,7 @@ class CustomStaticImports implements Imports { private final GeneratedClassMetaData generatedClassMetaData; - CustomStaticImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + CustomStaticImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @@ -40,8 +39,7 @@ class CustomStaticImports implements Imports { @Override public boolean accept() { return this.generatedClassMetaData.configProperties.getStaticImports() != null - && this.generatedClassMetaData.configProperties - .getStaticImports().length > 0; + && this.generatedClassMetaData.configProperties.getStaticImports().length > 0; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultClassMetadata.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultClassMetadata.java index b149d36118..866fa6bf35 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultClassMetadata.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultClassMetadata.java @@ -22,8 +22,7 @@ interface DefaultClassMetadata extends ClassMetaData, DefaultBaseClassProvider { @Override default ClassMetaData packageDefinition() { - blockBuilder().addLineWithEnding( - "package " + generatedClassMetaData().generatedClassData.classPackage); + blockBuilder().addLineWithEnding("package " + generatedClassMetaData().generatedClassData.classPackage); return this; } @@ -35,8 +34,7 @@ interface DefaultClassMetadata extends ClassMetaData, DefaultBaseClassProvider { @Override default ClassMetaData className() { - String className = capitalize( - generatedClassMetaData().generatedClassData.className); + String className = capitalize(generatedClassMetaData().generatedClassData.className); blockBuilder().addAtTheEnd(className); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultImports.java index b83c28355d..bf234302c4 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultImports.java @@ -26,8 +26,7 @@ class DefaultImports implements Imports, DefaultBaseClassProvider { private final BaseClassProvider baseClassProvider; - DefaultImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + DefaultImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; this.baseClassProvider = new BaseClassProvider(); diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultJsonStaticImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultJsonStaticImports.java index 56ed70760b..cd87ba8303 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultJsonStaticImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultJsonStaticImports.java @@ -26,27 +26,23 @@ class DefaultJsonStaticImports implements Imports { private final GeneratedClassMetaData generatedClassMetaData; - private static final String[] IMPORTS = { - "com.toomuchcoding.jsonassert.JsonAssertion.assertThatJson" }; + private static final String[] IMPORTS = { "com.toomuchcoding.jsonassert.JsonAssertion.assertThatJson" }; - DefaultJsonStaticImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + DefaultJsonStaticImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import static " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import static " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(metadata -> metadata.getConvertedContractWithMetadata().stream() - .anyMatch(SingleContractMetadata::isJson)); + return this.generatedClassMetaData.listOfFiles.stream().anyMatch(metadata -> metadata + .getConvertedContractWithMetadata().stream().anyMatch(SingleContractMetadata::isJson)); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultStaticImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultStaticImports.java index f89cc6de94..7ba8b0eb75 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultStaticImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/DefaultStaticImports.java @@ -32,8 +32,7 @@ class DefaultStaticImports implements Imports { @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import static " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import static " + s)); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ExplicitRestAssuredImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ExplicitRestAssuredImports.java index 8f157949c2..2c0bbc2f98 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ExplicitRestAssuredImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ExplicitRestAssuredImports.java @@ -27,31 +27,26 @@ class ExplicitRestAssuredImports implements Imports, RestAssuredVerifier { private final GeneratedClassMetaData generatedClassMetaData; private static final String[] REST_ASSURED_2_IMPORTS = { - "com.jayway.restassured.specification.RequestSpecification", - "com.jayway.restassured.response.Response" }; + "com.jayway.restassured.specification.RequestSpecification", "com.jayway.restassured.response.Response" }; - private static final String[] REST_ASSURED_3_IMPORTS = { - "io.restassured.specification.RequestSpecification", + private static final String[] REST_ASSURED_3_IMPORTS = { "io.restassured.specification.RequestSpecification", "io.restassured.response.Response" }; - ExplicitRestAssuredImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + ExplicitRestAssuredImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream( - isRestAssured2Present() ? REST_ASSURED_2_IMPORTS : REST_ASSURED_3_IMPORTS) + Arrays.stream(isRestAssured2Present() ? REST_ASSURED_2_IMPORTS : REST_ASSURED_3_IMPORTS) .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestMode() == TestMode.EXPLICIT + return this.generatedClassMetaData.configProperties.getTestMode() == TestMode.EXPLICIT && this.generatedClassMetaData.isAnyHttp(); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ExplicitRestAssuredStaticImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ExplicitRestAssuredStaticImports.java index e0b917c225..85b61916d4 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ExplicitRestAssuredStaticImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ExplicitRestAssuredStaticImports.java @@ -26,30 +26,25 @@ class ExplicitRestAssuredStaticImports implements Imports, RestAssuredVerifier { private final GeneratedClassMetaData generatedClassMetaData; - private static final String[] REST_ASSURED_2_IMPORTS = { - "com.jayway.restassured.RestAssured.*" }; + private static final String[] REST_ASSURED_2_IMPORTS = { "com.jayway.restassured.RestAssured.*" }; - private static final String[] REST_ASSURED_3_IMPORTS = { - "io.restassured.RestAssured.*" }; + private static final String[] REST_ASSURED_3_IMPORTS = { "io.restassured.RestAssured.*" }; - ExplicitRestAssuredStaticImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + ExplicitRestAssuredStaticImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream( - isRestAssured2Present() ? REST_ASSURED_2_IMPORTS : REST_ASSURED_3_IMPORTS) + Arrays.stream(isRestAssured2Present() ? REST_ASSURED_2_IMPORTS : REST_ASSURED_3_IMPORTS) .forEach(s -> this.blockBuilder.addLineWithEnding("import static " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestMode() == TestMode.EXPLICIT + return this.generatedClassMetaData.configProperties.getTestMode() == TestMode.EXPLICIT && this.generatedClassMetaData.isAnyHttp(); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GeneratedClassDataForMethod.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GeneratedClassDataForMethod.java index 992785f29f..36a0c41dd8 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GeneratedClassDataForMethod.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GeneratedClassDataForMethod.java @@ -30,17 +30,14 @@ public class GeneratedClassDataForMethod { private final String methodName; - public GeneratedClassDataForMethod( - SingleTestGenerator.GeneratedClassData generatedClassData, - String methodName) { + public GeneratedClassDataForMethod(SingleTestGenerator.GeneratedClassData generatedClassData, String methodName) { this.generatedClassData = generatedClassData; this.methodName = methodName; } private SingleTestGenerator.GeneratedClassData assertClassData() { if (this.generatedClassData == null) { - throw new IllegalStateException( - "No metadata was found for the generated test class"); + throw new IllegalStateException("No metadata was found for the generated test class"); } return this.generatedClassData; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GeneratedClassMetaData.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GeneratedClassMetaData.java index 0f1d820309..d10efbdab5 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GeneratedClassMetaData.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GeneratedClassMetaData.java @@ -40,10 +40,8 @@ class GeneratedClassMetaData { final SingleTestGenerator.GeneratedClassData generatedClassData; - GeneratedClassMetaData(ContractVerifierConfigProperties configProperties, - Collection listOfFiles, - String includedDirectoryRelativePath, - SingleTestGenerator.GeneratedClassData generatedClassData) { + GeneratedClassMetaData(ContractVerifierConfigProperties configProperties, Collection listOfFiles, + String includedDirectoryRelativePath, SingleTestGenerator.GeneratedClassData generatedClassData) { this.configProperties = configProperties; this.listOfFiles = listOfFiles; this.includedDirectoryRelativePath = includedDirectoryRelativePath; @@ -51,34 +49,28 @@ class GeneratedClassMetaData { } Collection toSingleContractMetadata() { - return this.listOfFiles.stream() - .flatMap(metadata -> metadata.getConvertedContractWithMetadata().stream()) + return this.listOfFiles.stream().flatMap(metadata -> metadata.getConvertedContractWithMetadata().stream()) .collect(Collectors.toList()); } boolean isAnyJson() { - return toSingleContractMetadata().stream() - .anyMatch(SingleContractMetadata::isJson); + return toSingleContractMetadata().stream().anyMatch(SingleContractMetadata::isJson); } boolean isAnyIgnored() { - return toSingleContractMetadata().stream() - .anyMatch(SingleContractMetadata::isIgnored); + return toSingleContractMetadata().stream().anyMatch(SingleContractMetadata::isIgnored); } boolean isAnyXml() { - return toSingleContractMetadata().stream() - .anyMatch(SingleContractMetadata::isXml); + return toSingleContractMetadata().stream().anyMatch(SingleContractMetadata::isXml); } boolean isAnyHttp() { - return toSingleContractMetadata().stream() - .anyMatch(SingleContractMetadata::isHttp); + return toSingleContractMetadata().stream().anyMatch(SingleContractMetadata::isHttp); } boolean isAnyMessaging() { - return toSingleContractMetadata().stream() - .anyMatch(SingleContractMetadata::isMessaging); + return toSingleContractMetadata().stream().anyMatch(SingleContractMetadata::isMessaging); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GeneratedTestClassBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GeneratedTestClassBuilder.java index 5c44076357..9aef2d4702 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GeneratedTestClassBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GeneratedTestClassBuilder.java @@ -45,14 +45,12 @@ class GeneratedTestClassBuilder { final GeneratedClassMetaData generatedClassMetaData; - private GeneratedTestClassBuilder(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + private GeneratedTestClassBuilder(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } - static GeneratedTestClassBuilder builder(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + static GeneratedTestClassBuilder builder(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { return new GeneratedTestClassBuilder(blockBuilder, generatedClassMetaData); } @@ -128,9 +126,8 @@ class GeneratedTestClassBuilder { */ GeneratedTestClass build() { // picks a matching class meta data - ClassMetaData classMetaData = this.metaData.stream().filter(Acceptor::accept) - .findFirst().orElseThrow(() -> new IllegalStateException( - "There is no matching class meta data")); + ClassMetaData classMetaData = this.metaData.stream().filter(Acceptor::accept).findFirst() + .orElseThrow(() -> new IllegalStateException("There is no matching class meta data")); classMetaData.setupLineEnding().setupLabelPrefix() // package com.example .packageDefinition(); @@ -168,10 +165,8 @@ class GeneratedTestClassBuilder { visit(list, false, false); } - private void visit(List list, boolean addEnding, - boolean separated) { - List elements = list.stream().filter(Acceptor::accept) - .collect(Collectors.toList()); + private void visit(List list, boolean addEnding, boolean separated) { + List elements = list.stream().filter(Acceptor::accept).collect(Collectors.toList()); elements.forEach(OurCallable::call); if (addEnding) { this.blockBuilder.addEndingIfNotPresent(); diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericBinaryBodyThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericBinaryBodyThen.java index d2f73f1739..61c96b74c9 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericBinaryBodyThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericBinaryBodyThen.java @@ -29,12 +29,12 @@ class GenericBinaryBodyThen implements Then { private final ComparisonBuilder comparisonBuilder; - GenericBinaryBodyThen(BlockBuilder blockBuilder, GeneratedClassMetaData metaData, - BodyParser bodyParser, ComparisonBuilder comparisonBuilder) { + GenericBinaryBodyThen(BlockBuilder blockBuilder, GeneratedClassMetaData metaData, BodyParser bodyParser, + ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.comparisonBuilder = comparisonBuilder; - this.bodyAssertionLineCreator = new BodyAssertionLineCreator(blockBuilder, - metaData, bodyParser.byteArrayString(), this.comparisonBuilder); + this.bodyAssertionLineCreator = new BodyAssertionLineCreator(blockBuilder, metaData, + bodyParser.byteArrayString(), this.comparisonBuilder); this.bodyParser = bodyParser; } @@ -45,10 +45,8 @@ class GenericBinaryBodyThen implements Then { return this; } - private void byteResponseBodyCheck(SingleContractMetadata metadata, - FromFileProperty convertedResponseBody) { - this.bodyAssertionLineCreator.appendBodyAssertionLine(metadata, "", - convertedResponseBody); + private void byteResponseBodyCheck(SingleContractMetadata metadata, FromFileProperty convertedResponseBody) { + this.bodyAssertionLineCreator.appendBodyAssertionLine(metadata, "", convertedResponseBody); this.blockBuilder.addEndingIfNotPresent(); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericHttpBodyThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericHttpBodyThen.java index 4f02cea08d..41207d5a00 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericHttpBodyThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericHttpBodyThen.java @@ -36,20 +36,17 @@ class GenericHttpBodyThen implements Then, BodyMethodVisitor { private final List thens = new LinkedList<>(); - GenericHttpBodyThen(BlockBuilder blockBuilder, GeneratedClassMetaData metaData, - BodyParser bodyParser, ComparisonBuilder comparisonBuilder) { + GenericHttpBodyThen(BlockBuilder blockBuilder, GeneratedClassMetaData metaData, BodyParser bodyParser, + ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.bodyParser = bodyParser; this.comparisonBuilder = comparisonBuilder; this.templateProcessor = new HandlebarsTemplateProcessor(); - this.thens.addAll(Arrays.asList( - new GenericBinaryBodyThen(blockBuilder, metaData, this.bodyParser, - comparisonBuilder), - new GenericTextBodyThen(blockBuilder, metaData, this.bodyParser, - this.comparisonBuilder), - new GenericJsonBodyThen(blockBuilder, metaData, this.bodyParser, - this.comparisonBuilder), - new GenericXmlBodyThen(blockBuilder, this.bodyParser))); + this.thens.addAll( + Arrays.asList(new GenericBinaryBodyThen(blockBuilder, metaData, this.bodyParser, comparisonBuilder), + new GenericTextBodyThen(blockBuilder, metaData, this.bodyParser, this.comparisonBuilder), + new GenericJsonBodyThen(blockBuilder, metaData, this.bodyParser, this.comparisonBuilder), + new GenericXmlBodyThen(blockBuilder, this.bodyParser))); } @Override @@ -57,8 +54,7 @@ class GenericHttpBodyThen implements Then, BodyMethodVisitor { endBodyBlock(this.blockBuilder); this.blockBuilder.addEmptyLine(); startBodyBlock(this.blockBuilder, "and:"); - this.thens.stream().filter(then -> then.accept(metadata)) - .forEach(then -> then.apply(metadata)); + this.thens.stream().filter(then -> then.accept(metadata)).forEach(then -> then.apply(metadata)); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericJsonBodyThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericJsonBodyThen.java index b0b53496c3..669780a57d 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericJsonBodyThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericJsonBodyThen.java @@ -56,13 +56,13 @@ class GenericJsonBodyThen implements Then { private final ComparisonBuilder comparisonBuilder; - GenericJsonBodyThen(BlockBuilder blockBuilder, GeneratedClassMetaData metaData, - BodyParser bodyParser, ComparisonBuilder comparisonBuilder) { + GenericJsonBodyThen(BlockBuilder blockBuilder, GeneratedClassMetaData metaData, BodyParser bodyParser, + ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.bodyParser = bodyParser; this.comparisonBuilder = comparisonBuilder; - this.bodyAssertionLineCreator = new BodyAssertionLineCreator(blockBuilder, - metaData, this.bodyParser.byteArrayString(), this.comparisonBuilder); + this.bodyAssertionLineCreator = new BodyAssertionLineCreator(blockBuilder, metaData, + this.bodyParser.byteArrayString(), this.comparisonBuilder); this.generatedClassMetaData = metaData; this.templateProcessor = new HandlebarsTemplateProcessor(); this.contractTemplate = new HandlebarsTemplateProcessor(); @@ -74,37 +74,28 @@ class GenericJsonBodyThen implements Then { Object convertedResponseBody = this.bodyParser.convertResponseBody(metadata); ContentType contentType = metadata.getOutputTestContentType(); if (TEXT != contentType && FORM != contentType && DEFINED != contentType) { - boolean dontParseStrings = contentType == JSON - && convertedResponseBody instanceof Map; - Function parsingClosure = dontParseStrings ? Function.identity() - : MapConverter.JSON_PARSING_FUNCTION; - convertedResponseBody = MapConverter.getTestSideValues(convertedResponseBody, - parsingClosure); + boolean dontParseStrings = contentType == JSON && convertedResponseBody instanceof Map; + Function parsingClosure = dontParseStrings ? Function.identity() : MapConverter.JSON_PARSING_FUNCTION; + convertedResponseBody = MapConverter.getTestSideValues(convertedResponseBody, parsingClosure); } else { - convertedResponseBody = StringEscapeUtils - .escapeJava(convertedResponseBody.toString()); + convertedResponseBody = StringEscapeUtils.escapeJava(convertedResponseBody.toString()); } addJsonBodyVerification(metadata, convertedResponseBody, bodyMatchers); return this; } - private void addJsonBodyVerification(SingleContractMetadata contractMetadata, - Object responseBody, BodyMatchers bodyMatchers) { + private void addJsonBodyVerification(SingleContractMetadata contractMetadata, Object responseBody, + BodyMatchers bodyMatchers) { JsonBodyVerificationBuilder jsonBodyVerificationBuilder = new JsonBodyVerificationBuilder( - this.generatedClassMetaData.configProperties.getAssertJsonSize(), - this.templateProcessor, this.contractTemplate, - contractMetadata.getContract(), - Optional.of(this.blockBuilder.getLineEnding()), + this.generatedClassMetaData.configProperties.getAssertJsonSize(), this.templateProcessor, + this.contractTemplate, contractMetadata.getContract(), Optional.of(this.blockBuilder.getLineEnding()), bodyParser::postProcessJsonPath); // TODO: Refactor spock from should comment out bdd blocks - Object convertedResponseBody = jsonBodyVerificationBuilder - .addJsonResponseBodyCheck(this.blockBuilder, responseBody, bodyMatchers, - this.bodyParser.responseAsString(), - this.generatedClassMetaData.configProperties - .getTestFramework() != TestFramework.SPOCK); - if (!(convertedResponseBody instanceof Map - || convertedResponseBody instanceof List + Object convertedResponseBody = jsonBodyVerificationBuilder.addJsonResponseBodyCheck(this.blockBuilder, + responseBody, bodyMatchers, this.bodyParser.responseAsString(), + this.generatedClassMetaData.configProperties.getTestFramework() != TestFramework.SPOCK); + if (!(convertedResponseBody instanceof Map || convertedResponseBody instanceof List || convertedResponseBody instanceof ExecutionProperty)) { simpleTextResponseBodyCheck(contractMetadata, convertedResponseBody); } @@ -130,13 +121,12 @@ class GenericJsonBodyThen implements Then { } private void processBodyElement(String property, ExecutionProperty exec) { - this.blockBuilder.addLineWithEnding(exec.insertValue(this.bodyParser - .postProcessJsonPath("parsedJson.read(\"$" + property + "\")"))); + this.blockBuilder.addLineWithEnding( + exec.insertValue(this.bodyParser.postProcessJsonPath("parsedJson.read(\"$" + property + "\")"))); } private void processBodyElement(String property, Map.Entry entry) { - processBodyElement(property, getMapKeyReferenceString(property, entry), - entry.getValue()); + processBodyElement(property, getMapKeyReferenceString(property, entry), entry.getValue()); } private void processBodyElement(String property, Map map) { @@ -193,29 +183,23 @@ class GenericJsonBodyThen implements Then { return self.substring(0, index); } - private void simpleTextResponseBodyCheck(SingleContractMetadata metadata, - Object convertedResponseBody) { - this.blockBuilder.addLineWithEnding( - getSimpleResponseBodyString(this.bodyParser.responseAsString())); - this.bodyAssertionLineCreator.appendBodyAssertionLine(metadata, "", - convertedResponseBody); + private void simpleTextResponseBodyCheck(SingleContractMetadata metadata, Object convertedResponseBody) { + this.blockBuilder.addLineWithEnding(getSimpleResponseBodyString(this.bodyParser.responseAsString())); + this.bodyAssertionLineCreator.appendBodyAssertionLine(metadata, "", convertedResponseBody); this.blockBuilder.addEndingIfNotPresent(); } private String getSimpleResponseBodyString(String responseString) { - return "String responseBody = " + responseString - + this.blockBuilder.getLineEnding(); + return "String responseBody = " + responseString + this.blockBuilder.getLineEnding(); } @Override public boolean accept(SingleContractMetadata metadata) { ContentType outputTestContentType = metadata.getOutputTestContentType(); - return JSON == outputTestContentType - || mostLikelyJson(outputTestContentType, metadata); + return JSON == outputTestContentType || mostLikelyJson(outputTestContentType, metadata); } - private boolean mostLikelyJson(ContentType outputTestContentType, - SingleContractMetadata metadata) { + private boolean mostLikelyJson(ContentType outputTestContentType, SingleContractMetadata metadata) { return DEFINED == outputTestContentType && metadata.evaluatesToJson(); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericTextBodyThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericTextBodyThen.java index db0dba537f..b412bf0d0a 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericTextBodyThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericTextBodyThen.java @@ -33,38 +33,33 @@ class GenericTextBodyThen implements Then { private final ComparisonBuilder comparisonBuilder; - GenericTextBodyThen(BlockBuilder blockBuilder, GeneratedClassMetaData metaData, - BodyParser bodyParser, ComparisonBuilder comparisonBuilder) { + GenericTextBodyThen(BlockBuilder blockBuilder, GeneratedClassMetaData metaData, BodyParser bodyParser, + ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.bodyParser = bodyParser; this.comparisonBuilder = comparisonBuilder; - this.bodyAssertionLineCreator = new BodyAssertionLineCreator(blockBuilder, - metaData, this.bodyParser.byteArrayString(), this.comparisonBuilder); + this.bodyAssertionLineCreator = new BodyAssertionLineCreator(blockBuilder, metaData, + this.bodyParser.byteArrayString(), this.comparisonBuilder); } @Override public MethodVisitor apply(SingleContractMetadata metadata) { Object convertedResponseBody = this.bodyParser.convertResponseBody(metadata); if (convertedResponseBody instanceof String) { - convertedResponseBody = this.bodyParser - .escapeForSimpleTextAssertion(convertedResponseBody.toString()); + convertedResponseBody = this.bodyParser.escapeForSimpleTextAssertion(convertedResponseBody.toString()); } simpleTextResponseBodyCheck(metadata, convertedResponseBody); return this; } - private void simpleTextResponseBodyCheck(SingleContractMetadata metadata, - Object convertedResponseBody) { - this.blockBuilder.addLineWithEnding( - getSimpleResponseBodyString(this.bodyParser.responseAsString())); - this.bodyAssertionLineCreator.appendBodyAssertionLine(metadata, "", - convertedResponseBody); + private void simpleTextResponseBodyCheck(SingleContractMetadata metadata, Object convertedResponseBody) { + this.blockBuilder.addLineWithEnding(getSimpleResponseBodyString(this.bodyParser.responseAsString())); + this.bodyAssertionLineCreator.appendBodyAssertionLine(metadata, "", convertedResponseBody); this.blockBuilder.addEndingIfNotPresent(); } private String getSimpleResponseBodyString(String responseString) { - return "String responseBody = " + responseString - + this.blockBuilder.getLineEnding(); + return "String responseBody = " + responseString + this.blockBuilder.getLineEnding(); } @Override @@ -72,8 +67,7 @@ class GenericTextBodyThen implements Then { ContentType outputTestContentType = metadata.getOutputTestContentType(); return outputTestContentType != JSON && outputTestContentType != XML && this.bodyParser.responseBody(metadata) != null - && !(this.bodyParser.responseBody(metadata) - .getServerValue() instanceof FromFileProperty); + && !(this.bodyParser.responseBody(metadata).getServerValue() instanceof FromFileProperty); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericXmlBodyThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericXmlBodyThen.java index abe88455bb..dbb11e3533 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericXmlBodyThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GenericXmlBodyThen.java @@ -39,11 +39,10 @@ class GenericXmlBodyThen implements Then { public MethodVisitor apply(SingleContractMetadata metadata) { BodyMatchers bodyMatchers = this.bodyParser.responseBodyMatchers(metadata); Object convertedResponseBody = this.bodyParser.convertResponseBody(metadata); - XmlBodyVerificationBuilder xmlBodyVerificationBuilder = new XmlBodyVerificationBuilder( - metadata.getContract(), Optional.of(this.blockBuilder.getLineEnding())); - xmlBodyVerificationBuilder.addXmlResponseBodyCheck(this.blockBuilder, - convertedResponseBody, bodyMatchers, this.bodyParser.responseAsString(), - true); + XmlBodyVerificationBuilder xmlBodyVerificationBuilder = new XmlBodyVerificationBuilder(metadata.getContract(), + Optional.of(this.blockBuilder.getLineEnding())); + xmlBodyVerificationBuilder.addXmlResponseBodyCheck(this.blockBuilder, convertedResponseBody, bodyMatchers, + this.bodyParser.responseAsString(), true); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GroovyClassMetaData.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GroovyClassMetaData.java index dfe11db316..b66759d335 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GroovyClassMetaData.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GroovyClassMetaData.java @@ -28,8 +28,7 @@ class GroovyClassMetaData implements ClassMetaData, DefaultClassMetadata { private final GeneratedClassMetaData generatedClassMetaData; - GroovyClassMetaData(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + GroovyClassMetaData(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @@ -46,11 +45,8 @@ class GroovyClassMetaData implements ClassMetaData, DefaultClassMetadata { @Override public ClassMetaData suffix() { - String suffix = StringUtils.hasText( - this.generatedClassMetaData.configProperties.getNameSuffixForTests()) - ? this.generatedClassMetaData.configProperties - .getNameSuffixForTests() - : "Spec"; + String suffix = StringUtils.hasText(this.generatedClassMetaData.configProperties.getNameSuffixForTests()) + ? this.generatedClassMetaData.configProperties.getNameSuffixForTests() : "Spec"; if (!this.blockBuilder.endsWith(suffix)) { this.blockBuilder.addAtTheEnd(suffix); } @@ -64,8 +60,7 @@ class GroovyClassMetaData implements ClassMetaData, DefaultClassMetadata { @Override public ClassMetaData packageDefinition() { - this.blockBuilder.addLineWithEnding( - "package " + this.generatedClassMetaData.generatedClassData.classPackage); + this.blockBuilder.addLineWithEnding("package " + this.generatedClassMetaData.generatedClassData.classPackage); return this; } @@ -73,9 +68,9 @@ class GroovyClassMetaData implements ClassMetaData, DefaultClassMetadata { public ClassMetaData parentClass() { ContractVerifierConfigProperties properties = generatedClassMetaData().configProperties; String includedDirectoryRelativePath = generatedClassMetaData().includedDirectoryRelativePath; - String baseClass = baseClassProvider().retrieveBaseClass( - properties.getBaseClassMappings(), properties.getPackageWithBaseClasses(), - properties.getBaseClassForTests(), includedDirectoryRelativePath); + String baseClass = baseClassProvider().retrieveBaseClass(properties.getBaseClassMappings(), + properties.getPackageWithBaseClasses(), properties.getBaseClassForTests(), + includedDirectoryRelativePath); baseClass = StringUtils.hasText(baseClass) ? baseClass : "Specification"; int lastIndexOf = baseClass.lastIndexOf("."); if (lastIndexOf > 0) { @@ -102,8 +97,7 @@ class GroovyClassMetaData implements ClassMetaData, DefaultClassMetadata { @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.SPOCK; + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GroovyComparisonBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GroovyComparisonBuilder.java index a9a93ba08e..cb0793e865 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GroovyComparisonBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GroovyComparisonBuilder.java @@ -40,8 +40,7 @@ interface GroovyComparisonBuilder extends ComparisonBuilder { @Override default String isEqualTo(Number number) { - String numberString = number instanceof Long ? number.toString() + "L" - : number.toString(); + String numberString = number instanceof Long ? number.toString() + "L" : number.toString(); return " == " + numberString; } @@ -58,8 +57,7 @@ interface GroovyComparisonBuilder extends ComparisonBuilder { @Override default String matchesEscaped(String pattern) { - return " ==~ java.util.regex.Pattern.compile(" - + bodyParser().quotedEscapedShortText(pattern) + ")"; + return " ==~ java.util.regex.Pattern.compile(" + bodyParser().quotedEscapedShortText(pattern) + ")"; } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ImportsBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ImportsBuilder.java index 3ca618886d..2e5c529306 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ImportsBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/ImportsBuilder.java @@ -54,15 +54,13 @@ class ImportsBuilder { } ImportsBuilder jUnit4() { - this.parentBuilder.imports(new JUnit4Imports(builder, metaData), - new JUnit4IgnoreImports(builder, metaData), + this.parentBuilder.imports(new JUnit4Imports(builder, metaData), new JUnit4IgnoreImports(builder, metaData), new JUnit4OrderImports(builder, metaData)); return this; } ImportsBuilder jUnit5() { - this.parentBuilder.imports(new JUnit5Imports(builder, metaData), - new JUnit5IgnoreImports(builder, metaData), + this.parentBuilder.imports(new JUnit5Imports(builder, metaData), new JUnit5IgnoreImports(builder, metaData), new JUnit5OrderImports(builder, metaData)); return this; } @@ -73,8 +71,7 @@ class ImportsBuilder { } ImportsBuilder spock() { - this.parentBuilder.imports(new SpockImports(builder, metaData), - new SpockIgnoreImports(builder, metaData), + this.parentBuilder.imports(new SpockImports(builder, metaData), new SpockIgnoreImports(builder, metaData), new SpockOrderImports(builder, metaData)); return this; } @@ -89,8 +86,7 @@ class ImportsBuilder { this.parentBuilder.imports(new MockMvcRestAssuredImports(builder, metaData), new ExplicitRestAssuredImports(builder, metaData), new WebTestClientRestAssuredImports(builder, metaData)); - this.parentBuilder.staticImports( - new MockMvcRestAssuredStaticImports(builder, metaData), + this.parentBuilder.staticImports(new MockMvcRestAssuredStaticImports(builder, metaData), new ExplicitRestAssuredStaticImports(builder, metaData), new WebTestClientRestAssured3StaticImports(builder, metaData)); return this; diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4IgnoreImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4IgnoreImports.java index 269740cf07..ae69019bc6 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4IgnoreImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4IgnoreImports.java @@ -25,8 +25,7 @@ class JUnit4IgnoreImports implements Imports { private final GeneratedClassMetaData generatedClassMetaData; - JUnit4IgnoreImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JUnit4IgnoreImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @@ -39,12 +38,10 @@ class JUnit4IgnoreImports implements Imports { @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT && this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(metadata -> metadata.isIgnored() - || metadata.getConvertedContractWithMetadata().stream() - .anyMatch(SingleContractMetadata::isIgnored)); + .anyMatch(metadata -> metadata.isIgnored() || metadata.getConvertedContractWithMetadata() + .stream().anyMatch(SingleContractMetadata::isIgnored)); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4IgnoreMethodAnnotation.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4IgnoreMethodAnnotation.java index 5c6075bfbc..31d6d5f2c4 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4IgnoreMethodAnnotation.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4IgnoreMethodAnnotation.java @@ -29,23 +29,20 @@ class JUnit4IgnoreMethodAnnotation implements MethodAnnotations { private static final String[] ANNOTATIONS = { "@Ignore" }; - JUnit4IgnoreMethodAnnotation(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JUnit4IgnoreMethodAnnotation(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override - public MethodVisitor apply( - SingleContractMetadata singleContractMetadata) { + public MethodVisitor apply(SingleContractMetadata singleContractMetadata) { Arrays.stream(ANNOTATIONS).forEach(this.blockBuilder::addIndented); return this; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT && (singleContractMetadata.getContractMetadata().isIgnored() || singleContractMetadata.getContract().isIgnored()); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4Imports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4Imports.java index 8efd8c2386..bf0b07a777 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4Imports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4Imports.java @@ -28,23 +28,20 @@ class JUnit4Imports implements Imports { private static final String[] IMPORTS = { "org.junit.Test", "org.junit.Rule" }; - JUnit4Imports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JUnit4Imports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT; + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4MethodAnnotation.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4MethodAnnotation.java index 8c71257246..1fe3610bfb 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4MethodAnnotation.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4MethodAnnotation.java @@ -29,21 +29,18 @@ class JUnit4MethodAnnotation implements MethodAnnotations { private static final String[] ANNOTATIONS = { "@Test" }; - JUnit4MethodAnnotation(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JUnit4MethodAnnotation(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT; + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT; } @Override - public MethodVisitor apply( - SingleContractMetadata singleContractMetadata) { + public MethodVisitor apply(SingleContractMetadata singleContractMetadata) { Arrays.stream(ANNOTATIONS).forEach(this.blockBuilder::addIndented); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4OrderClassAnnotation.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4OrderClassAnnotation.java index 8ae1e059aa..b2b3d74851 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4OrderClassAnnotation.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4OrderClassAnnotation.java @@ -26,11 +26,9 @@ class JUnit4OrderClassAnnotation implements ClassAnnotation { private final GeneratedClassMetaData generatedClassMetaData; - private static final String[] ANNOTATIONS = { - "@FixMethodOrder(MethodSorters.NAME_ASCENDING)" }; + private static final String[] ANNOTATIONS = { "@FixMethodOrder(MethodSorters.NAME_ASCENDING)" }; - JUnit4OrderClassAnnotation(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JUnit4OrderClassAnnotation(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @@ -43,10 +41,8 @@ class JUnit4OrderClassAnnotation implements ClassAnnotation { @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT - && this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(meta -> meta.getOrder() != null); + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT + && this.generatedClassMetaData.listOfFiles.stream().anyMatch(meta -> meta.getOrder() != null); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4OrderImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4OrderImports.java index 6c7d22ee6e..825e751089 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4OrderImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit4OrderImports.java @@ -26,28 +26,23 @@ class JUnit4OrderImports implements Imports { private final GeneratedClassMetaData generatedClassMetaData; - private static final String[] IMPORTS = { "org.junit.FixMethodOrder", - "org.junit.runners.MethodSorters" }; + private static final String[] IMPORTS = { "org.junit.FixMethodOrder", "org.junit.runners.MethodSorters" }; - JUnit4OrderImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JUnit4OrderImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT - && this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(meta -> meta.getOrder() != null); + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT + && this.generatedClassMetaData.listOfFiles.stream().anyMatch(meta -> meta.getOrder() != null); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5IgnoreImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5IgnoreImports.java index 42b603f8bc..f28f0abfc4 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5IgnoreImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5IgnoreImports.java @@ -25,8 +25,7 @@ class JUnit5IgnoreImports implements Imports { private final GeneratedClassMetaData generatedClassMetaData; - JUnit5IgnoreImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JUnit5IgnoreImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @@ -39,12 +38,10 @@ class JUnit5IgnoreImports implements Imports { @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT5 + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT5 && this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(metadata -> metadata.isIgnored() - || metadata.getConvertedContractWithMetadata().stream() - .anyMatch(SingleContractMetadata::isIgnored)); + .anyMatch(metadata -> metadata.isIgnored() || metadata.getConvertedContractWithMetadata() + .stream().anyMatch(SingleContractMetadata::isIgnored)); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5IgnoreMethodAnnotation.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5IgnoreMethodAnnotation.java index fc08ce9b5f..1e7c321113 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5IgnoreMethodAnnotation.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5IgnoreMethodAnnotation.java @@ -29,23 +29,20 @@ class JUnit5IgnoreMethodAnnotation implements MethodAnnotations { private static final String[] ANNOTATIONS = { "@Disabled" }; - JUnit5IgnoreMethodAnnotation(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JUnit5IgnoreMethodAnnotation(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override - public MethodVisitor apply( - SingleContractMetadata singleContractMetadata) { + public MethodVisitor apply(SingleContractMetadata singleContractMetadata) { Arrays.stream(ANNOTATIONS).forEach(this.blockBuilder::addIndented); return this; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT5 + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT5 && (singleContractMetadata.getContractMetadata().isIgnored() || singleContractMetadata.getContract().isIgnored()); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5Imports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5Imports.java index e593ba170e..9e544be6f7 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5Imports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5Imports.java @@ -29,23 +29,20 @@ class JUnit5Imports implements Imports { private static final String[] IMPORTS = { "org.junit.jupiter.api.Test", "org.junit.jupiter.api.extension.ExtendWith" }; - JUnit5Imports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JUnit5Imports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT5; + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT5; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5MethodAnnotation.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5MethodAnnotation.java index 773e0843af..4f9eba82c6 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5MethodAnnotation.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5MethodAnnotation.java @@ -29,23 +29,20 @@ class JUnit5MethodAnnotation implements MethodAnnotations { private static final String[] ANNOTATIONS = { "@Test" }; - JUnit5MethodAnnotation(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JUnit5MethodAnnotation(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override - public MethodVisitor apply( - SingleContractMetadata singleContractMetadata) { + public MethodVisitor apply(SingleContractMetadata singleContractMetadata) { Arrays.stream(ANNOTATIONS).forEach(this.blockBuilder::addIndented); return this; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT5; + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT5; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5OrderClassAnnotation.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5OrderClassAnnotation.java index f97b1166e1..5b02293412 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5OrderClassAnnotation.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5OrderClassAnnotation.java @@ -26,11 +26,9 @@ class JUnit5OrderClassAnnotation implements ClassAnnotation { private final GeneratedClassMetaData generatedClassMetaData; - private static final String[] ANNOTATIONS = { - "@TestMethodOrder(MethodOrderer.Alphanumeric.class)" }; + private static final String[] ANNOTATIONS = { "@TestMethodOrder(MethodOrderer.Alphanumeric.class)" }; - JUnit5OrderClassAnnotation(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JUnit5OrderClassAnnotation(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @@ -43,10 +41,8 @@ class JUnit5OrderClassAnnotation implements ClassAnnotation { @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT5 - && this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(meta -> meta.getOrder() != null); + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT5 + && this.generatedClassMetaData.listOfFiles.stream().anyMatch(meta -> meta.getOrder() != null); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5OrderImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5OrderImports.java index 826924ecc7..d91721166e 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5OrderImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JUnit5OrderImports.java @@ -29,25 +29,21 @@ class JUnit5OrderImports implements Imports { private static final String[] IMPORTS = { "org.junit.jupiter.api.TestMethodOrder", "org.junit.jupiter.api.MethodOrderer" }; - JUnit5OrderImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JUnit5OrderImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT5 - && this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(meta -> meta.getOrder() != null); + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT5 + && this.generatedClassMetaData.listOfFiles.stream().anyMatch(meta -> meta.getOrder() != null); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaClassMetaData.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaClassMetaData.java index 762cdc89ec..2f7a447fe3 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaClassMetaData.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaClassMetaData.java @@ -27,8 +27,7 @@ class JavaClassMetaData implements ClassMetaData, DefaultClassMetadata { private final GeneratedClassMetaData generatedClassMetaData; - JavaClassMetaData(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JavaClassMetaData(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @@ -41,11 +40,8 @@ class JavaClassMetaData implements ClassMetaData, DefaultClassMetadata { @Override public ClassMetaData suffix() { - String suffix = StringUtils.hasText( - this.generatedClassMetaData.configProperties.getNameSuffixForTests()) - ? this.generatedClassMetaData.configProperties - .getNameSuffixForTests() - : "Test"; + String suffix = StringUtils.hasText(this.generatedClassMetaData.configProperties.getNameSuffixForTests()) + ? this.generatedClassMetaData.configProperties.getNameSuffixForTests() : "Test"; if (!this.blockBuilder.endsWith(suffix)) { this.blockBuilder.addAtTheEnd(suffix); } @@ -94,12 +90,9 @@ class JavaClassMetaData implements ClassMetaData, DefaultClassMetadata { @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT - || this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.JUNIT5 - || this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.TESTNG; + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT + || this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT5 + || this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.TESTNG; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaJaxRsThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaJaxRsThen.java index c974e42e0c..8388ae6da5 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaJaxRsThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaJaxRsThen.java @@ -23,17 +23,15 @@ class JavaJaxRsThen extends JaxRsThen { private final GeneratedClassMetaData metaData; - JavaJaxRsThen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { - super(blockBuilder, generatedClassMetaData, JaxRsBodyParser.INSTANCE, - ComparisonBuilder.JAVA_HTTP_INSTANCE); + JavaJaxRsThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { + super(blockBuilder, generatedClassMetaData, JaxRsBodyParser.INSTANCE, ComparisonBuilder.JAVA_HTTP_INSTANCE); this.metaData = generatedClassMetaData; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return super.accept(singleContractMetadata) && this.metaData.configProperties - .getTestFramework() != TestFramework.SPOCK; + return super.accept(singleContractMetadata) + && this.metaData.configProperties.getTestFramework() != TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaJaxRsWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaJaxRsWhen.java index af22c6d1c3..76e50347bd 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaJaxRsWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaJaxRsWhen.java @@ -23,16 +23,15 @@ class JavaJaxRsWhen extends JaxRsWhen { private final GeneratedClassMetaData metaData; - JavaJaxRsWhen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JavaJaxRsWhen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { super(blockBuilder, generatedClassMetaData, JaxRsBodyParser.INSTANCE); this.metaData = generatedClassMetaData; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return super.accept(singleContractMetadata) && this.metaData.configProperties - .getTestFramework() != TestFramework.SPOCK; + return super.accept(singleContractMetadata) + && this.metaData.configProperties.getTestFramework() != TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaMessagingGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaMessagingGiven.java index 8e0dceadbc..9d98f88d03 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaMessagingGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaMessagingGiven.java @@ -23,16 +23,15 @@ class JavaMessagingGiven extends MessagingGiven { private final GeneratedClassMetaData generatedClassMetaData; - JavaMessagingGiven(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JavaMessagingGiven(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { super(blockBuilder, generatedClassMetaData, JavaMessagingBodyParser.INSTANCE); this.generatedClassMetaData = generatedClassMetaData; } @Override public boolean accept(SingleContractMetadata metadata) { - return super.accept(metadata) && this.generatedClassMetaData.configProperties - .getTestFramework() != TestFramework.SPOCK; + return super.accept(metadata) + && this.generatedClassMetaData.configProperties.getTestFramework() != TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaMessagingWithBodyThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaMessagingWithBodyThen.java index 92a81a4d3b..d9cb72c9b5 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaMessagingWithBodyThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaMessagingWithBodyThen.java @@ -23,17 +23,15 @@ class JavaMessagingWithBodyThen extends MessagingWithBodyThen { private final GeneratedClassMetaData metaData; - JavaMessagingWithBodyThen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { - super(blockBuilder, generatedClassMetaData, - ComparisonBuilder.JAVA_MESSAGING_INSTANCE); + JavaMessagingWithBodyThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { + super(blockBuilder, generatedClassMetaData, ComparisonBuilder.JAVA_MESSAGING_INSTANCE); this.metaData = generatedClassMetaData; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return super.accept(singleContractMetadata) && this.metaData.configProperties - .getTestFramework() != TestFramework.SPOCK; + return super.accept(singleContractMetadata) + && this.metaData.configProperties.getTestFramework() != TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaRestAssuredGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaRestAssuredGiven.java index ea1a2ab3c7..8bff074083 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaRestAssuredGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaRestAssuredGiven.java @@ -23,16 +23,15 @@ class JavaRestAssuredGiven extends RestAssuredGiven { private final GeneratedClassMetaData metaData; - JavaRestAssuredGiven(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JavaRestAssuredGiven(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { super(blockBuilder, generatedClassMetaData, RestAssuredBodyParser.INSTANCE); this.metaData = generatedClassMetaData; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return super.accept(singleContractMetadata) && this.metaData.configProperties - .getTestFramework() != TestFramework.SPOCK; + return super.accept(singleContractMetadata) + && this.metaData.configProperties.getTestFramework() != TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaRestAssuredThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaRestAssuredThen.java index 3c15613f83..29c469440e 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaRestAssuredThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaRestAssuredThen.java @@ -23,8 +23,7 @@ class JavaRestAssuredThen extends RestAssuredThen { private final GeneratedClassMetaData metaData; - JavaRestAssuredThen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JavaRestAssuredThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { super(blockBuilder, generatedClassMetaData, RestAssuredBodyParser.INSTANCE, ComparisonBuilder.JAVA_HTTP_INSTANCE); this.metaData = generatedClassMetaData; @@ -32,8 +31,8 @@ class JavaRestAssuredThen extends RestAssuredThen { @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return super.accept(singleContractMetadata) && this.metaData.configProperties - .getTestFramework() != TestFramework.SPOCK; + return super.accept(singleContractMetadata) + && this.metaData.configProperties.getTestFramework() != TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaRestAssuredWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaRestAssuredWhen.java index 75b76765ab..2c7970ca93 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaRestAssuredWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaRestAssuredWhen.java @@ -23,16 +23,15 @@ class JavaRestAssuredWhen extends RestAssuredWhen { private final GeneratedClassMetaData metaData; - JavaRestAssuredWhen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JavaRestAssuredWhen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { super(blockBuilder, generatedClassMetaData, RestAssuredBodyParser.INSTANCE); this.metaData = generatedClassMetaData; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return super.accept(singleContractMetadata) && this.metaData.configProperties - .getTestFramework() != TestFramework.SPOCK; + return super.accept(singleContractMetadata) + && this.metaData.configProperties.getTestFramework() != TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaTestGenerator.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaTestGenerator.java index 5a0e432c9f..e1f2241de0 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaTestGenerator.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaTestGenerator.java @@ -34,32 +34,29 @@ public class JavaTestGenerator implements SingleTestGenerator { private static final Log log = LogFactory.getLog(JavaTestGenerator.class); @Override - public String buildClass(ContractVerifierConfigProperties properties, - Collection listOfFiles, String className, - String classPackage, String includedDirectoryRelativePath) { + public String buildClass(ContractVerifierConfigProperties properties, Collection listOfFiles, + String className, String classPackage, String includedDirectoryRelativePath) { throw new UnsupportedOperationException("Deprecated method"); } @Override - public String buildClass(ContractVerifierConfigProperties properties, - Collection listOfFiles, + public String buildClass(ContractVerifierConfigProperties properties, Collection listOfFiles, String includedDirectoryRelativePath, GeneratedClassData generatedClassData) { BlockBuilder builder = new BlockBuilder("\t"); - GeneratedClassMetaData metaData = new GeneratedClassMetaData(properties, - listOfFiles, includedDirectoryRelativePath, generatedClassData); + GeneratedClassMetaData metaData = new GeneratedClassMetaData(properties, listOfFiles, + includedDirectoryRelativePath, generatedClassData); return classAsString(builder, metaData); } private String classAsString(BlockBuilder builder, GeneratedClassMetaData metaData) { SingleMethodBuilder methodBuilder = singleMethodBuilder(builder, metaData); ClassBodyBuilder bodyBuilder = classBodyBuilder(builder, metaData, methodBuilder); - GeneratedTestClass generatedTestClass = generatedTestClass(builder, metaData, - bodyBuilder); + GeneratedTestClass generatedTestClass = generatedTestClass(builder, metaData, bodyBuilder); return generatedTestClass.asClassString(); } - GeneratedTestClass generatedTestClass(BlockBuilder builder, - GeneratedClassMetaData metaData, ClassBodyBuilder bodyBuilder) { + GeneratedTestClass generatedTestClass(BlockBuilder builder, GeneratedClassMetaData metaData, + ClassBodyBuilder bodyBuilder) { // @formatter:off return GeneratedTestClassBuilder.builder(builder, metaData) .classBodyBuilder(bodyBuilder) @@ -90,8 +87,8 @@ public class JavaTestGenerator implements SingleTestGenerator { // @formatter:on } - ClassBodyBuilder classBodyBuilder(BlockBuilder builder, - GeneratedClassMetaData metaData, SingleMethodBuilder methodBuilder) { + ClassBodyBuilder classBodyBuilder(BlockBuilder builder, GeneratedClassMetaData metaData, + SingleMethodBuilder methodBuilder) { // @formatter:off return ClassBodyBuilder.builder(builder, metaData) .field() @@ -101,8 +98,7 @@ public class JavaTestGenerator implements SingleTestGenerator { // @formatter:on } - SingleMethodBuilder singleMethodBuilder(BlockBuilder builder, - GeneratedClassMetaData metaData) { + SingleMethodBuilder singleMethodBuilder(BlockBuilder builder, GeneratedClassMetaData metaData) { // @formatter:off return SingleMethodBuilder.builder(builder, metaData) .methodAnnotation() diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsAcceptor.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsAcceptor.java index b9519e9c4e..937112dc59 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsAcceptor.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsAcceptor.java @@ -23,8 +23,8 @@ interface JaxRsAcceptor { default boolean acceptType(GeneratedClassMetaData generatedClassMetaData, SingleContractMetadata singleContractMetadata) { - return generatedClassMetaData.configProperties - .getTestMode() == TestMode.JAXRSCLIENT && singleContractMetadata.isHttp(); + return generatedClassMetaData.configProperties.getTestMode() == TestMode.JAXRSCLIENT + && singleContractMetadata.isHttp(); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsImports.java index 0dfb9082e3..7be7334c97 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsImports.java @@ -26,26 +26,22 @@ class JaxRsImports implements Imports { private final GeneratedClassMetaData generatedClassMetaData; - private static final String[] IMPORTS = { "javax.ws.rs.client.Entity", - "javax.ws.rs.core.Response" }; + private static final String[] IMPORTS = { "javax.ws.rs.client.Entity", "javax.ws.rs.core.Response" }; - JaxRsImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JaxRsImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestMode() == TestMode.JAXRSCLIENT; + return this.generatedClassMetaData.configProperties.getTestMode() == TestMode.JAXRSCLIENT; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestCookiesWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestCookiesWhen.java index 7a9525af8e..aaa4b54ff9 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestCookiesWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestCookiesWhen.java @@ -47,9 +47,8 @@ class JaxRsRequestCookiesWhen implements When { .filter(cookie -> !cookieOfAbsentType(cookie)).iterator(); while (iterator.hasNext()) { Cookie cookie = iterator.next(); - String value = ".cookie(" + this.bodyParser.quotedShortText(cookie.getKey()) - + ", " + this.bodyParser.quotedShortText(MapConverter - .getTestSideValuesForNonBody(cookie.getServerValue())) + String value = ".cookie(" + this.bodyParser.quotedShortText(cookie.getKey()) + ", " + + this.bodyParser.quotedShortText(MapConverter.getTestSideValuesForNonBody(cookie.getServerValue())) + ")"; if (iterator.hasNext()) { this.blockBuilder.addLine(value); @@ -62,20 +61,18 @@ class JaxRsRequestCookiesWhen implements When { private boolean cookieOfAbsentType(Cookie cookie) { return cookie.getServerValue() instanceof MatchingStrategy - && ((MatchingStrategy) cookie.getServerValue()) - .getType() == MatchingStrategy.Type.ABSENT; + && ((MatchingStrategy) cookie.getServerValue()).getType() == MatchingStrategy.Type.ABSENT; } @Override public boolean accept(SingleContractMetadata metadata) { - return metadata.getContract().getRequest().getCookies() != null && !metadata - .getContract().getRequest().getCookies().getEntries().isEmpty() + return metadata.getContract().getRequest().getCookies() != null + && !metadata.getContract().getRequest().getCookies().getEntries().isEmpty() && !hasOnlyAbsentCookies(metadata); } private boolean hasOnlyAbsentCookies(SingleContractMetadata metadata) { - Set entries = metadata.getContract().getRequest().getCookies() - .getEntries(); + Set entries = metadata.getContract().getRequest().getCookies().getEntries(); long filteredOut = entries.stream().filter(this::cookieOfAbsentType).count(); return filteredOut == entries.size(); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestHeadersWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestHeadersWhen.java index 204841b4e6..98b478d313 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestHeadersWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestHeadersWhen.java @@ -44,12 +44,11 @@ class JaxRsRequestHeadersWhen implements When { } private void appendHeaders(Request request) { - Iterator
iterator = request.getHeaders().getEntries().stream() - .filter(header -> !headerToIgnore(header)).iterator(); + Iterator
iterator = request.getHeaders().getEntries().stream().filter(header -> !headerToIgnore(header)) + .iterator(); while (iterator.hasNext()) { Header header = iterator.next(); - String text = ".header(\"" + header.getName() + "\", " + headerValue(header) - + ")"; + String text = ".header(\"" + header.getName() + "\", " + headerValue(header) + ")"; if (iterator.hasNext()) { this.blockBuilder.addLine(text); } @@ -64,8 +63,7 @@ class JaxRsRequestHeadersWhen implements When { if (headerServerValue instanceof ExecutionProperty) { return ((ExecutionProperty) headerServerValue).getExecutionCommand(); } - return this.bodyParser.quotedLongText( - MapConverter.getTestSideValuesForNonBody(header.getServerValue())); + return this.bodyParser.quotedLongText(MapConverter.getTestSideValuesForNonBody(header.getServerValue())); } private boolean headerToIgnore(Header header) { @@ -73,26 +71,23 @@ class JaxRsRequestHeadersWhen implements When { } private boolean contentTypeOrAccept(Header header) { - return "Content-Type".equalsIgnoreCase(header.getName()) - || "Accept".equalsIgnoreCase(header.getName()); + return "Content-Type".equalsIgnoreCase(header.getName()) || "Accept".equalsIgnoreCase(header.getName()); } private boolean headerOfAbsentType(Header header) { return header.getServerValue() instanceof MatchingStrategy - && ((MatchingStrategy) header.getServerValue()) - .getType() == MatchingStrategy.Type.ABSENT; + && ((MatchingStrategy) header.getServerValue()).getType() == MatchingStrategy.Type.ABSENT; } @Override public boolean accept(SingleContractMetadata metadata) { - return metadata.getContract().getRequest().getHeaders() != null && !metadata - .getContract().getRequest().getHeaders().getEntries().isEmpty() + return metadata.getContract().getRequest().getHeaders() != null + && !metadata.getContract().getRequest().getHeaders().getEntries().isEmpty() && !hasHeaderOnlyContentTypeOrAccept(metadata); } private boolean hasHeaderOnlyContentTypeOrAccept(SingleContractMetadata metadata) { - Set
entries = metadata.getContract().getRequest().getHeaders() - .getEntries(); + Set
entries = metadata.getContract().getRequest().getHeaders().getEntries(); long filteredOut = entries.stream().filter(this::headerToIgnore).count(); return filteredOut == entries.size(); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestMethodWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestMethodWhen.java index f50bd394fd..82580a5bd3 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestMethodWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestMethodWhen.java @@ -45,10 +45,8 @@ class JaxRsRequestMethodWhen implements When, JaxRsBodyParser { ContentType type = metadata.getInputTestContentType(); String method = request.getMethod().getServerValue().toString().toLowerCase(); if (request.getBody() != null) { - String contentType = StringUtils - .hasText(metadata.getDefinedInputTestContentType()) - ? metadata.getDefinedInputTestContentType() - : type.getMimeType(); + String contentType = StringUtils.hasText(metadata.getDefinedInputTestContentType()) + ? metadata.getDefinedInputTestContentType() : type.getMimeType(); Object body = request.getBody().getServerValue(); String value; if (body instanceof ExecutionProperty) { @@ -57,16 +55,14 @@ class JaxRsRequestMethodWhen implements When, JaxRsBodyParser { else if (body instanceof FromFileProperty) { FromFileProperty fileProperty = (FromFileProperty) body; value = fileProperty.isByte() - ? this.bodyReader.readBytesFromFileString(metadata, fileProperty, - CommunicationType.REQUEST) - : this.bodyReader.readStringFromFileString(metadata, fileProperty, - CommunicationType.REQUEST); + ? this.bodyReader.readBytesFromFileString(metadata, fileProperty, CommunicationType.REQUEST) + : this.bodyReader.readStringFromFileString(metadata, fileProperty, CommunicationType.REQUEST); } else { value = "\"" + requestBodyAsString(metadata) + "\""; } - this.blockBuilder.addIndented(".build(\"" + method.toUpperCase() - + "\", entity(" + value + ", \"" + contentType + "\"))"); + this.blockBuilder.addIndented( + ".build(\"" + method.toUpperCase() + "\", entity(" + value + ", \"" + contentType + "\"))"); } else { this.blockBuilder.addIndented(".build(\"" + method.toUpperCase() + "\")"); diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestWhen.java index d8cbba8f9c..0951472e8d 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsRequestWhen.java @@ -53,13 +53,12 @@ class JaxRsRequestWhen implements When, JaxRsAcceptor, QueryParamsResolver { if (request.getHeaders() == null || request.getHeaders().getEntries() == null) { return ""; } - Header foundHeader = request.getHeaders().getEntries().stream() - .filter(header -> name.equals(header.getName())).findFirst().orElse(null); + Header foundHeader = request.getHeaders().getEntries().stream().filter(header -> name.equals(header.getName())) + .findFirst().orElse(null); if (foundHeader == null) { return ""; } - return MapConverter.getTestSideValuesForNonBody(foundHeader.getServerValue()) - .toString(); + return MapConverter.getTestSideValuesForNonBody(foundHeader.getServerValue()).toString(); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsResponseCookiesThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsResponseCookiesThen.java index 1241fe16fd..afacb04750 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsResponseCookiesThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsResponseCookiesThen.java @@ -29,8 +29,7 @@ class JaxRsResponseCookiesThen implements Then, MockMvcAcceptor, CookieElementPr private final BodyParser bodyParser; - JaxRsResponseCookiesThen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData, + JaxRsResponseCookiesThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsResponseHeadersThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsResponseHeadersThen.java index 60a82530f8..b037888299 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsResponseHeadersThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsResponseHeadersThen.java @@ -53,10 +53,8 @@ class JaxRsResponseHeadersThen implements Then { Iterator
iterator = headers.getEntries().iterator(); while (iterator.hasNext()) { Header header = iterator.next(); - String text = processHeaderElement(header.getName(), - header.getServerValue() instanceof NotToEscapePattern - ? header.getServerValue() - : MapConverter.getTestSideValues(header.getServerValue())); + String text = processHeaderElement(header.getName(), header.getServerValue() instanceof NotToEscapePattern + ? header.getServerValue() : MapConverter.getTestSideValues(header.getServerValue())); if (iterator.hasNext()) { this.blockBuilder.addLineWithEnding(text); } @@ -68,22 +66,17 @@ class JaxRsResponseHeadersThen implements Then { private String processHeaderElement(String property, Object value) { if (value instanceof NotToEscapePattern) { - return this.comparisonBuilder - .assertThat("response.getHeaderString(\"" + property + "\")") - + this.comparisonBuilder.createComparison( - ((NotToEscapePattern) value).getServerValue()); + return this.comparisonBuilder.assertThat("response.getHeaderString(\"" + property + "\")") + + this.comparisonBuilder.createComparison(((NotToEscapePattern) value).getServerValue()); } else if (value instanceof Number) { - return this.comparisonBuilder - .assertThat("response.getHeaderString(\"" + property + "\")", value); + return this.comparisonBuilder.assertThat("response.getHeaderString(\"" + property + "\")", value); } else if (value instanceof ExecutionProperty) { - return ((ExecutionProperty) value) - .insertValue("response.getHeaderString(\"" + property + "\")"); + return ((ExecutionProperty) value).insertValue("response.getHeaderString(\"" + property + "\")"); } else { - return this.comparisonBuilder - .assertThat("response.getHeaderString(\"" + property + "\")") + return this.comparisonBuilder.assertThat("response.getHeaderString(\"" + property + "\")") + this.comparisonBuilder.createComparison(value); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsStaticImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsStaticImports.java index d50dd9ecb4..1cbf87b7e7 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsStaticImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsStaticImports.java @@ -28,23 +28,20 @@ class JaxRsStaticImports implements Imports { private static final String[] IMPORTS = { "javax.ws.rs.client.Entity.*" }; - JaxRsStaticImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JaxRsStaticImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import static " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import static " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestMode() == TestMode.JAXRSCLIENT; + return this.generatedClassMetaData.configProperties.getTestMode() == TestMode.JAXRSCLIENT; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsStatusCodeThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsStatusCodeThen.java index 167d356b38..6d5c8e6759 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsStatusCodeThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsStatusCodeThen.java @@ -33,9 +33,8 @@ class JaxRsStatusCodeThen implements Then { @Override public MethodVisitor apply(SingleContractMetadata metadata) { Response response = metadata.getContract().getResponse(); - this.blockBuilder - .addIndented(this.comparisonBuilder.assertThat("response.getStatus()", - response.getStatus().getServerValue())) + this.blockBuilder.addIndented( + this.comparisonBuilder.assertThat("response.getStatus()", response.getStatus().getServerValue())) .addEndingIfNotPresent(); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsThen.java index bb196f6184..b592a34417 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsThen.java @@ -30,18 +30,14 @@ class JaxRsThen implements Then, BodyMethodVisitor, JaxRsAcceptor { private final List thens = new LinkedList<>(); - JaxRsThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, - BodyParser bodyParser, ComparisonBuilder comparisonBuilder) { + JaxRsThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, BodyParser bodyParser, + ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; - this.thens.addAll(Arrays.asList( - new JaxRsStatusCodeThen(this.blockBuilder, comparisonBuilder), - new JaxRsResponseHeadersThen(this.blockBuilder, generatedClassMetaData, - comparisonBuilder), - new JaxRsResponseCookiesThen(this.blockBuilder, generatedClassMetaData, - comparisonBuilder), - new GenericHttpBodyThen(this.blockBuilder, generatedClassMetaData, - bodyParser, comparisonBuilder))); + this.thens.addAll(Arrays.asList(new JaxRsStatusCodeThen(this.blockBuilder, comparisonBuilder), + new JaxRsResponseHeadersThen(this.blockBuilder, generatedClassMetaData, comparisonBuilder), + new JaxRsResponseCookiesThen(this.blockBuilder, generatedClassMetaData, comparisonBuilder), + new GenericHttpBodyThen(this.blockBuilder, generatedClassMetaData, bodyParser, comparisonBuilder))); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsUrlPathWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsUrlPathWhen.java index 13d1313f72..238ebba105 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsUrlPathWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsUrlPathWhen.java @@ -50,8 +50,7 @@ class JaxRsUrlPathWhen implements When, JaxRsAcceptor, QueryParamsResolver { appendQueryParams(request.getUrl().getQueryParameters()); } else if (request.getUrlPath() != null) { - this.blockBuilder - .addIndented(".path(" + concreteUrl(request.getUrlPath()) + ")"); + this.blockBuilder.addIndented(".path(" + concreteUrl(request.getUrlPath()) + ")"); appendQueryParams(request.getUrlPath().getQueryParameters()); } } @@ -69,12 +68,11 @@ class JaxRsUrlPathWhen implements When, JaxRsAcceptor, QueryParamsResolver { return; } this.blockBuilder.addEmptyLine(); - Iterator iterator = queryParameters.getParameters().stream() - .filter(this::allowedQueryParameter).iterator(); + Iterator iterator = queryParameters.getParameters().stream().filter(this::allowedQueryParameter) + .iterator(); while (iterator.hasNext()) { QueryParameter param = iterator.next(); - String text = ".queryParam(\"" + param.getName() + "\", \"" - + resolveParamValue(param) + "\")"; + String text = ".queryParam(\"" + param.getName() + "\", \"" + resolveParamValue(param) + "\")"; if (iterator.hasNext()) { this.blockBuilder.addLine(text); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsWhen.java index 8311bbd1f4..42a6c678ae 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsWhen.java @@ -32,18 +32,15 @@ class JaxRsWhen implements When, BodyMethodVisitor, JaxRsAcceptor { private final List whens = new LinkedList<>(); - JaxRsWhen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, - JaxRsBodyParser bodyParser) { + JaxRsWhen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, JaxRsBodyParser bodyParser) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; this.bodyParser = bodyParser; - this.whens.addAll(Arrays.asList( - new JaxRsUrlPathWhen(this.blockBuilder, this.generatedClassMetaData), + this.whens.addAll(Arrays.asList(new JaxRsUrlPathWhen(this.blockBuilder, this.generatedClassMetaData), new JaxRsRequestWhen(this.blockBuilder, this.generatedClassMetaData), new JaxRsRequestHeadersWhen(this.blockBuilder, bodyParser), new JaxRsRequestCookiesWhen(this.blockBuilder, bodyParser), - new JaxRsRequestMethodWhen(this.blockBuilder, - this.generatedClassMetaData), + new JaxRsRequestMethodWhen(this.blockBuilder, this.generatedClassMetaData), new JaxRsRequestInvokerWhen(this.blockBuilder))); } @@ -55,8 +52,7 @@ class JaxRsWhen implements When, BodyMethodVisitor, JaxRsAcceptor { indentedBodyBlock(this.blockBuilder, this.whens, singleContractMetadata); this.blockBuilder.addEmptyLine().endBlock(); if (expectsResponseBody(singleContractMetadata)) { - this.blockBuilder.addLineWithEnding( - "String responseAsString = " + this.bodyParser.readEntity()); + this.blockBuilder.addLineWithEnding("String responseAsString = " + this.bodyParser.readEntity()); } this.blockBuilder.endBlock(); return this; diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JsonBodyVerificationBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JsonBodyVerificationBuilder.java index b188e442ba..c34e0eed10 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JsonBodyVerificationBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JsonBodyVerificationBuilder.java @@ -69,9 +69,8 @@ class JsonBodyVerificationBuilder implements BodyMethodGeneration, ClassVerifier // Passing way more arguments here than I would like to, but since we are planning a // major // refactoring of this module for Hoxton release, leaving it this way for now - JsonBodyVerificationBuilder(boolean assertJsonSize, - TemplateProcessor templateProcessor, ContractTemplate contractTemplate, - Contract contract, Optional lineSuffix, + JsonBodyVerificationBuilder(boolean assertJsonSize, TemplateProcessor templateProcessor, + ContractTemplate contractTemplate, Contract contract, Optional lineSuffix, Function postProcessJsonPathCall) { this.assertJsonSize = assertJsonSize; this.templateProcessor = templateProcessor; @@ -81,17 +80,15 @@ class JsonBodyVerificationBuilder implements BodyMethodGeneration, ClassVerifier this.postProcessJsonPathCall = postProcessJsonPathCall; } - Object addJsonResponseBodyCheck(BlockBuilder bb, Object convertedResponseBody, - BodyMatchers bodyMatchers, String responseString, - boolean shouldCommentOutBDDBlocks) { + Object addJsonResponseBodyCheck(BlockBuilder bb, Object convertedResponseBody, BodyMatchers bodyMatchers, + String responseString, boolean shouldCommentOutBDDBlocks) { appendJsonPath(bb, responseString); DocumentContext parsedRequestBody = null; boolean dontParseStrings = convertedResponseBody instanceof Map; - Closure parsingClosure = dontParseStrings ? Closure.IDENTITY - : MapConverter.JSON_PARSING_CLOSURE; + Closure parsingClosure = dontParseStrings ? Closure.IDENTITY : MapConverter.JSON_PARSING_CLOSURE; if (hasRequestBody()) { - Object testSideRequestBody = MapConverter - .getTestSideValues(contract.getRequest().getBody(), parsingClosure); + Object testSideRequestBody = MapConverter.getTestSideValues(contract.getRequest().getBody(), + parsingClosure); parsedRequestBody = JsonPath.parse(testSideRequestBody); if (convertedResponseBody instanceof String && !textContainsJsonPathTemplate(convertedResponseBody.toString())) { @@ -100,22 +97,20 @@ class JsonBodyVerificationBuilder implements BodyMethodGeneration, ClassVerifier } } Object copiedBody = cloneBody(convertedResponseBody); - convertedResponseBody = JsonToJsonPathsConverter - .removeMatchingJsonPaths(convertedResponseBody, bodyMatchers); + convertedResponseBody = JsonToJsonPathsConverter.removeMatchingJsonPaths(convertedResponseBody, bodyMatchers); // remove quotes from fromRequest objects before picking json paths TestSideRequestTemplateModel templateModel = hasRequestBody() ? TestSideRequestTemplateModel.from(contract.getRequest()) : null; convertedResponseBody = MapConverter.transformValues(convertedResponseBody, returnReferencedEntries(templateModel), parsingClosure); JsonPaths jsonPaths = new JsonToJsonPathsConverter(assertJsonSize) - .transformToJsonPathWithTestsSideValues(convertedResponseBody, - parsingClosure); + .transformToJsonPathWithTestsSideValues(convertedResponseBody, parsingClosure); DocumentContext finalParsedRequestBody = parsedRequestBody; jsonPaths.forEach(it -> { String method = it.method(); method = processIfTemplateIsPresent(method, finalParsedRequestBody); - String postProcessedMethod = templateProcessor.containsJsonPathTemplateEntry( - method) ? method : postProcessJsonPathCall.apply(method); + String postProcessedMethod = templateProcessor.containsJsonPathTemplateEntry(method) ? method + : postProcessJsonPathCall.apply(method); bb.addLine("assertThatJson(parsedJson)" + postProcessedMethod); addColonIfRequired(lineSuffix, bb); }); @@ -128,25 +123,20 @@ class JsonBodyVerificationBuilder implements BodyMethodGeneration, ClassVerifier } private void checkType(BlockBuilder bb, BodyMatcher it, Object elementFromBody) { - String method = "assertThat((Object) parsedJson.read(" - + quotedAndEscaped(it.path()) + ")).isInstanceOf(" + String method = "assertThat((Object) parsedJson.read(" + quotedAndEscaped(it.path()) + ")).isInstanceOf(" + classToCheck(elementFromBody).getName() + ".class)"; bb.addLine(postProcessJsonPathCall.apply(method)); addColonIfRequired(lineSuffix, bb); } // we want to make the type more generic (e.g. not ArrayList but List) - private String sizeCheckMethod(BodyMatcher bodyMatcher, - String quotedAndEscaptedPath) { + private String sizeCheckMethod(BodyMatcher bodyMatcher, String quotedAndEscaptedPath) { String prefix = sizeCheckPrefix(bodyMatcher, quotedAndEscaptedPath); - if (bodyMatcher.minTypeOccurrence() != null - && bodyMatcher.maxTypeOccurrence() != null) { - return prefix + "Between(" + bodyMatcher.minTypeOccurrence() + ", " - + bodyMatcher.maxTypeOccurrence() + ")"; + if (bodyMatcher.minTypeOccurrence() != null && bodyMatcher.maxTypeOccurrence() != null) { + return prefix + "Between(" + bodyMatcher.minTypeOccurrence() + ", " + bodyMatcher.maxTypeOccurrence() + ")"; } else if (bodyMatcher.minTypeOccurrence() != null) { - return prefix + "GreaterThanOrEqualTo(" + bodyMatcher.minTypeOccurrence() - + ")"; + return prefix + "GreaterThanOrEqualTo(" + bodyMatcher.minTypeOccurrence() + ")"; } else if (bodyMatcher.maxTypeOccurrence() != null) { return prefix + "LessThanOrEqualTo(" + bodyMatcher.maxTypeOccurrence() + ")"; @@ -154,42 +144,35 @@ class JsonBodyVerificationBuilder implements BodyMethodGeneration, ClassVerifier return prefix; } - protected void buildCustomMatchingConditionForEachElement(BlockBuilder bb, - String path, String valueAsParam) { - String method = "assertThat((java.lang.Iterable) parsedJson.read(" + path - + ", java.util.Collection.class)).as(" + path + ").allElementsMatch(" - + valueAsParam + ")"; + protected void buildCustomMatchingConditionForEachElement(BlockBuilder bb, String path, String valueAsParam) { + String method = "assertThat((java.lang.Iterable) parsedJson.read(" + path + ", java.util.Collection.class)).as(" + + path + ").allElementsMatch(" + valueAsParam + ")"; bb.addLine(postProcessJsonPathCall.apply(method)); } @Override - public void methodForEqualityCheck(BodyMatcher bodyMatcher, BlockBuilder bb, - Object copiedBody) { + public void methodForEqualityCheck(BodyMatcher bodyMatcher, BlockBuilder bb, Object copiedBody) { String path = quotedAndEscaped(bodyMatcher.path()); Object retrievedValue = value(copiedBody, bodyMatcher); retrievedValue = retrievedValue instanceof RegexProperty - ? ((RegexProperty) retrievedValue).getPattern().pattern() - : retrievedValue; - String valueAsParam = retrievedValue instanceof String - ? quotedAndEscaped(retrievedValue.toString()) + ? ((RegexProperty) retrievedValue).getPattern().pattern() : retrievedValue; + String valueAsParam = retrievedValue instanceof String ? quotedAndEscaped(retrievedValue.toString()) : objectToString(retrievedValue); if (arrayRelated(path) && MatchingType.regexRelated(bodyMatcher.matchingType())) { buildCustomMatchingConditionForEachElement(bb, path, valueAsParam); } else { - String comparisonMethod = bodyMatcher.matchingType() == MatchingType.EQUALITY - ? "isEqualTo" : "matches"; + String comparisonMethod = bodyMatcher.matchingType() == MatchingType.EQUALITY ? "isEqualTo" : "matches"; String classToCastTo = className(retrievedValue) + ".class"; - String method = "assertThat(parsedJson.read(" + path + ", " + classToCastTo - + "))." + comparisonMethod + "(" + valueAsParam + ")"; + String method = "assertThat(parsedJson.read(" + path + ", " + classToCastTo + "))." + comparisonMethod + "(" + + valueAsParam + ")"; bb.addLine(postProcessJsonPathCall.apply(method)); } addColonIfRequired(lineSuffix, bb); } private String className(Object retrievedValue) { - return retrievedValue.getClass().getName().startsWith("java.lang") - ? retrievedValue.getClass().getSimpleName() + return retrievedValue.getClass().getName().startsWith("java.lang") ? retrievedValue.getClass().getSimpleName() : retrievedValue.getClass().getName(); } @@ -206,8 +189,7 @@ class JsonBodyVerificationBuilder implements BodyMethodGeneration, ClassVerifier return String.valueOf(value); } - protected String processIfTemplateIsPresent(String method, - DocumentContext parsedRequestBody) { + protected String processIfTemplateIsPresent(String method, DocumentContext parsedRequestBody) { if (textContainsJsonPathTemplate(method) && hasRequestBody()) { // Unquoting the values of non strings String jsonPathEntry = templateProcessor.jsonPathFromTemplateEntry(method); @@ -218,32 +200,27 @@ class JsonBodyVerificationBuilder implements BodyMethodGeneration, ClassVerifier contractTemplate.escapedOpeningTemplate()) .replace(contractTemplate.escapedClosingTemplate() + '"', contractTemplate.escapedClosingTemplate()) - .replace('"' + contractTemplate.openingTemplate(), - contractTemplate.openingTemplate()) - .replace(contractTemplate.closingTemplate() + '"', - contractTemplate.closingTemplate()); + .replace('"' + contractTemplate.openingTemplate(), contractTemplate.openingTemplate()) + .replace(contractTemplate.closingTemplate() + '"', contractTemplate.closingTemplate()); } } return method; } @Override - public void methodForCommandExecution(BodyMatcher bodyMatcher, BlockBuilder bb, - Object copiedBody) { + public void methodForCommandExecution(BodyMatcher bodyMatcher, BlockBuilder bb, Object copiedBody) { String path = quotedAndEscaped(bodyMatcher.path()); // assert that path exists retrieveObjectByPath(copiedBody, bodyMatcher.path()); ExecutionProperty property = (ExecutionProperty) bodyMatcher.value(); - bb.addLine(postProcessJsonPathCall - .apply(property.insertValue("parsedJson.read(" + path + ")"))); + bb.addLine(postProcessJsonPathCall.apply(property.insertValue("parsedJson.read(" + path + ")"))); addColonIfRequired(lineSuffix, bb); } @Override public void methodForNullCheck(BodyMatcher bodyMatcher, BlockBuilder bb) { String quotedAndEscapedPath = quotedAndEscaped(bodyMatcher.path()); - String method = "assertThat((Object) parsedJson.read(" + quotedAndEscapedPath - + ")).isNull()"; + String method = "assertThat((Object) parsedJson.read(" + quotedAndEscapedPath + ")).isNull()"; bb.addLine(postProcessJsonPathCall.apply(method)); addColonIfRequired(lineSuffix, bb); } @@ -253,16 +230,13 @@ class JsonBodyVerificationBuilder implements BodyMethodGeneration, ClassVerifier } @Override - public void methodForTypeCheck(BodyMatcher bodyMatcher, BlockBuilder bb, - Object copiedBody) { + public void methodForTypeCheck(BodyMatcher bodyMatcher, BlockBuilder bb, Object copiedBody) { Object elementFromBody = value(copiedBody, bodyMatcher); - if (bodyMatcher.minTypeOccurrence() != null - || bodyMatcher.maxTypeOccurrence() != null) { + if (bodyMatcher.minTypeOccurrence() != null || bodyMatcher.maxTypeOccurrence() != null) { checkType(bb, bodyMatcher, elementFromBody); String quotedAndEscaptedPath = quotedAndEscaped(bodyMatcher.path()); - String method = "assertThat((java.lang.Iterable) parsedJson.read(" - + quotedAndEscaptedPath + ", java.util.Collection.class))." - + sizeCheckMethod(bodyMatcher, quotedAndEscaptedPath); + String method = "assertThat((java.lang.Iterable) parsedJson.read(" + quotedAndEscaptedPath + + ", java.util.Collection.class))." + sizeCheckMethod(bodyMatcher, quotedAndEscaptedPath); bb.addLine(postProcessJsonPathCall.apply(method)); addColonIfRequired(lineSuffix, bb); } @@ -272,8 +246,7 @@ class JsonBodyVerificationBuilder implements BodyMethodGeneration, ClassVerifier } private static Object value(Object body, BodyMatcher bodyMatcher) { - if (bodyMatcher.matchingType() == MatchingType.EQUALITY - || bodyMatcher.value() == null) { + if (bodyMatcher.matchingType() == MatchingType.EQUALITY || bodyMatcher.value() == null) { return retrieveObjectByPath(body, bodyMatcher.path()); } return bodyMatcher.value(); @@ -289,31 +262,27 @@ class JsonBodyVerificationBuilder implements BodyMethodGeneration, ClassVerifier } } - private Closure returnReferencedEntries( - TestSideRequestTemplateModel templateModel) { + private Closure returnReferencedEntries(TestSideRequestTemplateModel templateModel) { return MapConverter.fromFunction(entry -> { if (!(entry instanceof String) || templateModel == null) { return entry; } String entryAsString = (String) entry; if (this.templateProcessor.containsTemplateEntry(entryAsString) - && !this.templateProcessor - .containsJsonPathTemplateEntry(entryAsString)) { + && !this.templateProcessor.containsJsonPathTemplateEntry(entryAsString)) { // TODO: HANDLEBARS LEAKING VIA request. - String justEntry = minus(entryAsString, - contractTemplate.escapedOpeningTemplate()); + String justEntry = minus(entryAsString, contractTemplate.escapedOpeningTemplate()); justEntry = minus(justEntry, contractTemplate.openingTemplate()); justEntry = minus(justEntry, contractTemplate.escapedClosingTemplate()); justEntry = minus(justEntry, contractTemplate.closingTemplate()); justEntry = minus(justEntry, FROM_REQUEST_PREFIX); if (FROM_REQUEST_BODY.equalsIgnoreCase(justEntry)) { // the body should be transformed by standard mechanism - return contractTemplate.escapedOpeningTemplate() + FROM_REQUEST_PREFIX - + "escapedBody" + contractTemplate.escapedClosingTemplate(); + return contractTemplate.escapedOpeningTemplate() + FROM_REQUEST_PREFIX + "escapedBody" + + contractTemplate.escapedClosingTemplate(); } try { - Object result = new PropertyUtilsBean().getProperty(templateModel, - justEntry); + Object result = new PropertyUtilsBean().getProperty(templateModel, justEntry); // Path from the Test model is an object and we'd like to return its // String representation if (FROM_REQUEST_PATH.equals(justEntry)) { @@ -365,12 +334,11 @@ class JsonBodyVerificationBuilder implements BodyMethodGeneration, ClassVerifier return prefix + "Size"; } - private void doBodyMatchingIfPresent(BodyMatchers bodyMatchers, BlockBuilder bb, - Object responseBody, boolean shouldCommentOutBDDBlocks) { + private void doBodyMatchingIfPresent(BodyMatchers bodyMatchers, BlockBuilder bb, Object responseBody, + boolean shouldCommentOutBDDBlocks) { if (bodyMatchers != null && bodyMatchers.hasMatchers()) { bb.addEmptyLine(); - addBodyMatchingBlock(bodyMatchers.matchers(), bb, responseBody, - shouldCommentOutBDDBlocks); + addBodyMatchingBlock(bodyMatchers.matchers(), bb, responseBody, shouldCommentOutBDDBlocks); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JsonPathImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JsonPathImports.java index 20d5fb6941..f506dcc4cf 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JsonPathImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JsonPathImports.java @@ -26,27 +26,23 @@ class JsonPathImports implements Imports { private final GeneratedClassMetaData generatedClassMetaData; - private static final String[] IMPORTS = { "com.jayway.jsonpath.DocumentContext", - "com.jayway.jsonpath.JsonPath" }; + private static final String[] IMPORTS = { "com.jayway.jsonpath.DocumentContext", "com.jayway.jsonpath.JsonPath" }; - JsonPathImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + JsonPathImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(metadata -> metadata.getConvertedContractWithMetadata().stream() - .anyMatch(SingleContractMetadata::isJson)); + return this.generatedClassMetaData.listOfFiles.stream().anyMatch(metadata -> metadata + .getConvertedContractWithMetadata().stream().anyMatch(SingleContractMetadata::isJson)); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingAssertThatThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingAssertThatThen.java index dd5fc803d2..942eb36598 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingAssertThatThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingAssertThatThen.java @@ -28,8 +28,8 @@ class MessagingAssertThatThen implements Then { @Override public MethodVisitor apply(SingleContractMetadata metadata) { - this.blockBuilder.addLineWithEnding(metadata.getContract().getOutputMessage() - .getAssertThat().getExecutionCommand()); + this.blockBuilder + .addLineWithEnding(metadata.getContract().getOutputMessage().getAssertThat().getExecutionCommand()); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingAssertThatWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingAssertThatWhen.java index 330b23d09d..a70ba2e7e6 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingAssertThatWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingAssertThatWhen.java @@ -28,8 +28,7 @@ class MessagingAssertThatWhen implements When { @Override public MethodVisitor apply(SingleContractMetadata metadata) { - this.blockBuilder.addIndented( - metadata.getContract().getInput().getAssertThat().getExecutionCommand()); + this.blockBuilder.addIndented(metadata.getContract().getInput().getAssertThat().getExecutionCommand()); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingBodyGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingBodyGiven.java index 9e24ce03f1..567929c70c 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingBodyGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingBodyGiven.java @@ -29,8 +29,7 @@ class MessagingBodyGiven implements Given, MethodVisitor { private final BodyParser bodyParser; - MessagingBodyGiven(BlockBuilder blockBuilder, BodyReader bodyReader, - BodyParser bodyParser) { + MessagingBodyGiven(BlockBuilder blockBuilder, BodyReader bodyReader, BodyParser bodyParser) { this.blockBuilder = blockBuilder; this.bodyReader = bodyReader; this.bodyParser = bodyParser; @@ -50,11 +49,9 @@ class MessagingBodyGiven implements Given, MethodVisitor { if (bodyValue instanceof FromFileProperty) { FromFileProperty fileProperty = (FromFileProperty) bodyValue; String byteText = fileProperty.isByte() - ? this.bodyReader.readBytesFromFileString(metadata, fileProperty, - CommunicationType.REQUEST) - : this.bodyParser.quotedLongText( - this.bodyReader.readStringFromFileString(metadata, - fileProperty, CommunicationType.REQUEST)); + ? this.bodyReader.readBytesFromFileString(metadata, fileProperty, CommunicationType.REQUEST) + : this.bodyParser.quotedLongText(this.bodyReader.readStringFromFileString(metadata, fileProperty, + CommunicationType.REQUEST)); this.blockBuilder.addIndented(byteText); } else { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingBodyThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingBodyThen.java index 9dcea668d0..e0f1cc4a39 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingBodyThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingBodyThen.java @@ -34,19 +34,15 @@ class MessagingBodyThen implements Then, BodyMethodVisitor { private final BodyParser bodyParser; - MessagingBodyThen(BlockBuilder blockBuilder, GeneratedClassMetaData metaData, - ComparisonBuilder comparisonBuilder) { + MessagingBodyThen(BlockBuilder blockBuilder, GeneratedClassMetaData metaData, ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = metaData; this.comparisonBuilder = comparisonBuilder; this.bodyParser = comparisonBuilder.bodyParser(); this.thens.addAll(Arrays.asList( - new GenericBinaryBodyThen(blockBuilder, metaData, this.bodyParser, - this.comparisonBuilder), - new GenericTextBodyThen(blockBuilder, metaData, this.bodyParser, - this.comparisonBuilder), - new GenericJsonBodyThen(blockBuilder, metaData, this.bodyParser, - this.comparisonBuilder), + new GenericBinaryBodyThen(blockBuilder, metaData, this.bodyParser, this.comparisonBuilder), + new GenericTextBodyThen(blockBuilder, metaData, this.bodyParser, this.comparisonBuilder), + new GenericJsonBodyThen(blockBuilder, metaData, this.bodyParser, this.comparisonBuilder), new GenericXmlBodyThen(blockBuilder, this.bodyParser))); } @@ -61,8 +57,7 @@ class MessagingBodyThen implements Then, BodyMethodVisitor { @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return singleContractMetadata.isMessaging() - && this.bodyParser.responseBody(singleContractMetadata) != null; + return singleContractMetadata.isMessaging() && this.bodyParser.responseBody(singleContractMetadata) != null; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingBodyWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingBodyWhen.java index e8843eb674..603710d94e 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingBodyWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingBodyWhen.java @@ -33,11 +33,9 @@ class MessagingBodyWhen implements When { public MethodVisitor apply(SingleContractMetadata metadata) { this.bodyReader.storeContractAsYaml(metadata); this.blockBuilder - .addIndented("contractVerifierMessaging.send(inputMessage, \"" + metadata - .getContract().getInput().getMessageFrom().getServerValue() - + "\",") - .addEmptyLine().indent() - .addIndented("contract(this, \"" + metadata.methodName() + ".yml\"))") + .addIndented("contractVerifierMessaging.send(inputMessage, \"" + + metadata.getContract().getInput().getMessageFrom().getServerValue() + "\",") + .addEmptyLine().indent().addIndented("contract(this, \"" + metadata.methodName() + ".yml\"))") .addEndingIfNotPresent().unindent(); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingFields.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingFields.java index 64d5b4584a..80013ec133 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingFields.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingFields.java @@ -26,12 +26,10 @@ class MessagingFields implements Field { private final GeneratedClassMetaData generatedClassMetaData; - private static final String[] FIELDS = { - "@Inject ContractVerifierMessaging contractVerifierMessaging", + private static final String[] FIELDS = { "@Inject ContractVerifierMessaging contractVerifierMessaging", "@Inject ContractVerifierObjectMapper contractVerifierObjectMapper" }; - MessagingFields(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + MessagingFields(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @@ -44,9 +42,8 @@ class MessagingFields implements Field { @Override public boolean accept() { - return this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(metadata -> metadata.getConvertedContractWithMetadata().stream() - .anyMatch(SingleContractMetadata::isMessaging)); + return this.generatedClassMetaData.listOfFiles.stream().anyMatch(metadata -> metadata + .getConvertedContractWithMetadata().stream().anyMatch(SingleContractMetadata::isMessaging)); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingGiven.java index 5c5fd30bc4..5e7a565520 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingGiven.java @@ -30,35 +30,31 @@ class MessagingGiven implements Given, MethodVisitor, BodyMethodVisitor { private final List givens = new LinkedList<>(); - MessagingGiven(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData, BodyParser bodyParser) { + MessagingGiven(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, BodyParser bodyParser) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; this.givens.addAll(Arrays.asList( - new MessagingBodyGiven(this.blockBuilder, - new BodyReader(this.generatedClassMetaData), bodyParser), + new MessagingBodyGiven(this.blockBuilder, new BodyReader(this.generatedClassMetaData), bodyParser), new MessagingHeadersGiven(this.blockBuilder))); } @Override public MethodVisitor apply(SingleContractMetadata metadata) { startBodyBlock(this.blockBuilder, "given:"); - this.blockBuilder.addIndented( - "ContractVerifierMessage inputMessage = contractVerifierMessaging.create(") + this.blockBuilder.addIndented("ContractVerifierMessage inputMessage = contractVerifierMessaging.create(") .addEmptyLine().indent(); this.givens.stream().filter(given -> given.accept(metadata)).forEach(given -> { given.apply(metadata); this.blockBuilder.addEmptyLine(); }); - this.blockBuilder.unindent().unindent().startBlock().addIndented(")") - .addEndingIfNotPresent().addEmptyLine().endBlock(); + this.blockBuilder.unindent().unindent().startBlock().addIndented(")").addEndingIfNotPresent().addEmptyLine() + .endBlock(); return this; } @Override public boolean accept(SingleContractMetadata metadata) { - return metadata.isMessaging() - && metadata.getContract().getInput().getTriggeredBy() == null; + return metadata.isMessaging() && metadata.getContract().getInput().getTriggeredBy() == null; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingHeadersGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingHeadersGiven.java index afb1a04b77..9f84d6131d 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingHeadersGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingHeadersGiven.java @@ -41,8 +41,7 @@ class MessagingHeadersGiven implements Given, MethodVisitor { } private String getHeaderString(Header header) { - return ".header(" + getTestSideValue(header.getName()) + ", " - + getTestSideValue(header.getServerValue()) + ")"; + return ".header(" + getTestSideValue(header.getName()) + ", " + getTestSideValue(header.getServerValue()) + ")"; } private String getTestSideValue(Object object) { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingHeadersThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingHeadersThen.java index cfc1213bae..0c88cf5f7b 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingHeadersThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingHeadersThen.java @@ -32,8 +32,7 @@ class MessagingHeadersThen implements Then, BodyMethodVisitor { private final ComparisonBuilder comparisonBuilder; - MessagingHeadersThen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData, + MessagingHeadersThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; @@ -44,20 +43,17 @@ class MessagingHeadersThen implements Then, BodyMethodVisitor { public MethodVisitor apply(SingleContractMetadata singleContractMetadata) { endBodyBlock(this.blockBuilder); startBodyBlock(this.blockBuilder, "and:"); - OutputMessage outputMessage = singleContractMetadata.getContract() - .getOutputMessage(); + OutputMessage outputMessage = singleContractMetadata.getContract().getOutputMessage(); outputMessage.getHeaders().executeForEachHeader(header -> { - processHeaderElement(header.getName(), - header.getServerValue() instanceof NotToEscapePattern - ? header.getServerValue() - : MapConverter.getTestSideValues(header.getServerValue())); + processHeaderElement(header.getName(), header.getServerValue() instanceof NotToEscapePattern + ? header.getServerValue() : MapConverter.getTestSideValues(header.getServerValue())); }); return this; } private void appendLineWithHeaderNotNull(String property) { - this.blockBuilder.addLineWithEnding(this.comparisonBuilder - .assertThatIsNotNull("response.getHeader(\"" + property + "\")")); + this.blockBuilder.addLineWithEnding( + this.comparisonBuilder.assertThatIsNotNull("response.getHeader(\"" + property + "\")")); } private void processHeaderElement(String property, Object value) { @@ -77,32 +73,31 @@ class MessagingHeadersThen implements Then, BodyMethodVisitor { private void processHeaderElement(String property, String value) { appendLineWithHeaderNotNull(property); - this.blockBuilder.addLineWithEnding(this.comparisonBuilder.assertThat( - "response.getHeader(\"" + property + "\").toString()", value)); + this.blockBuilder.addLineWithEnding( + this.comparisonBuilder.assertThat("response.getHeader(\"" + property + "\").toString()", value)); } private void processHeaderElement(String property, Number value) { appendLineWithHeaderNotNull(property); - blockBuilder.addLineWithEnding(this.comparisonBuilder - .assertThat("response.getHeader(\"" + property + "\")", value)); + blockBuilder.addLineWithEnding( + this.comparisonBuilder.assertThat("response.getHeader(\"" + property + "\")", value)); } private void processHeaderElement(String property, Pattern pattern) { appendLineWithHeaderNotNull(property); - blockBuilder.addLineWithEnding(this.comparisonBuilder.assertThat( - "response.getHeader(\"" + property + "\").toString()", pattern)); + blockBuilder.addLineWithEnding( + this.comparisonBuilder.assertThat("response.getHeader(\"" + property + "\").toString()", pattern)); } private void processHeaderElement(String property, ExecutionProperty exec) { appendLineWithHeaderNotNull(property); - blockBuilder.addLineWithEnding( - exec.insertValue("response.getHeader(\"" + property + "\").toString()")); + blockBuilder.addLineWithEnding(exec.insertValue("response.getHeader(\"" + property + "\").toString()")); } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return singleContractMetadata.isMessaging() && singleContractMetadata - .getContract().getOutputMessage().getHeaders() != null; + return singleContractMetadata.isMessaging() + && singleContractMetadata.getContract().getOutputMessage().getHeaders() != null; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingImports.java index 6b0e0b7e0e..7c90afcc6f 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingImports.java @@ -31,24 +31,21 @@ class MessagingImports implements Imports { "org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessage", "org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging" }; - MessagingImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + MessagingImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(metadata -> metadata.getConvertedContractWithMetadata().stream() - .anyMatch(SingleContractMetadata::isMessaging)); + return this.generatedClassMetaData.listOfFiles.stream().anyMatch(metadata -> metadata + .getConvertedContractWithMetadata().stream().anyMatch(SingleContractMetadata::isMessaging)); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingReceiveMessageThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingReceiveMessageThen.java index 122c9ed846..b982c01f86 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingReceiveMessageThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingReceiveMessageThen.java @@ -30,8 +30,7 @@ class MessagingReceiveMessageThen implements Then, BodyMethodVisitor { private final BodyReader bodyReader; - MessagingReceiveMessageThen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData, + MessagingReceiveMessageThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; @@ -41,17 +40,15 @@ class MessagingReceiveMessageThen implements Then, BodyMethodVisitor { @Override public MethodVisitor apply(SingleContractMetadata singleContractMetadata) { - OutputMessage outputMessage = singleContractMetadata.getContract() - .getOutputMessage(); + OutputMessage outputMessage = singleContractMetadata.getContract().getOutputMessage(); this.bodyReader.storeContractAsYaml(singleContractMetadata); - this.blockBuilder.addIndented( - "ContractVerifierMessage response = contractVerifierMessaging.receive(" + this.blockBuilder + .addIndented("ContractVerifierMessage response = contractVerifierMessaging.receive(" + sentToValue(outputMessage.getSentTo().getServerValue()) + ",") - .addEmptyLine().indent().addIndented("contract(this, \"" - + singleContractMetadata.methodName() + ".yml\"))") - .unindent().addEndingIfNotPresent().addEmptyLine(); - this.blockBuilder.addLineWithEnding( - this.comparisonBuilder.assertThatIsNotNull("response")); + .addEmptyLine().indent() + .addIndented("contract(this, \"" + singleContractMetadata.methodName() + ".yml\"))").unindent() + .addEndingIfNotPresent().addEmptyLine(); + this.blockBuilder.addLineWithEnding(this.comparisonBuilder.assertThatIsNotNull("response")); return this; } @@ -64,8 +61,8 @@ class MessagingReceiveMessageThen implements Then, BodyMethodVisitor { @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return singleContractMetadata.isMessaging() && singleContractMetadata - .getContract().getOutputMessage().getSentTo() != null; + return singleContractMetadata.isMessaging() + && singleContractMetadata.getContract().getOutputMessage().getSentTo() != null; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingSpockNoMessageThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingSpockNoMessageThen.java index cd2db4a308..762615ddba 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingSpockNoMessageThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingSpockNoMessageThen.java @@ -25,8 +25,7 @@ class MessagingSpockNoMessageThen implements Then, BodyMethodVisitor { private final GeneratedClassMetaData generatedClassMetaData; - MessagingSpockNoMessageThen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + MessagingSpockNoMessageThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @@ -39,10 +38,8 @@ class MessagingSpockNoMessageThen implements Then, BodyMethodVisitor { @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return singleContractMetadata.isMessaging() - && singleContractMetadata.getContract().getOutputMessage() == null - && this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.SPOCK; + return singleContractMetadata.isMessaging() && singleContractMetadata.getContract().getOutputMessage() == null + && this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingStaticImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingStaticImports.java index 42146907a3..2f7cfe419a 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingStaticImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingStaticImports.java @@ -30,24 +30,21 @@ class MessagingStaticImports implements Imports { "org.springframework.cloud.contract.verifier.messaging.util.ContractVerifierMessagingUtil.headers", "org.springframework.cloud.contract.verifier.util.ContractVerifierUtil.fileToBytes" }; - MessagingStaticImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + MessagingStaticImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import static " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import static " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(metadata -> metadata.getConvertedContractWithMetadata().stream() - .anyMatch(SingleContractMetadata::isMessaging)); + return this.generatedClassMetaData.listOfFiles.stream().anyMatch(metadata -> metadata + .getConvertedContractWithMetadata().stream().anyMatch(SingleContractMetadata::isMessaging)); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingTriggeredByWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingTriggeredByWhen.java index cf59bb2534..0bcebc5bbb 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingTriggeredByWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingTriggeredByWhen.java @@ -28,8 +28,7 @@ class MessagingTriggeredByWhen implements When { @Override public MethodVisitor apply(SingleContractMetadata metadata) { - this.blockBuilder.addIndented( - metadata.getContract().getInput().getTriggeredBy().getExecutionCommand()) + this.blockBuilder.addIndented(metadata.getContract().getInput().getTriggeredBy().getExecutionCommand()) .addEndingIfNotPresent(); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingWhen.java index f2440f181a..33ac66a97e 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingWhen.java @@ -28,8 +28,7 @@ class MessagingWhen implements When, BodyMethodVisitor { private final List whens = new LinkedList<>(); - MessagingWhen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + MessagingWhen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.whens.addAll(Arrays.asList(new MessagingTriggeredByWhen(this.blockBuilder), new MessagingBodyWhen(this.blockBuilder, generatedClassMetaData), diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingWithBodyThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingWithBodyThen.java index 8203ee0864..e692d3c9a3 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingWithBodyThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingWithBodyThen.java @@ -32,21 +32,15 @@ class MessagingWithBodyThen implements Then, BodyMethodVisitor { private final List thens = new LinkedList<>(); - MessagingWithBodyThen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData, + MessagingWithBodyThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; this.comparisonBuilder = comparisonBuilder; - this.thens.addAll(Arrays.asList( - new MessagingSpockNoMessageThen(this.blockBuilder, - generatedClassMetaData), - new MessagingReceiveMessageThen(this.blockBuilder, generatedClassMetaData, - this.comparisonBuilder), - new MessagingHeadersThen(this.blockBuilder, generatedClassMetaData, - this.comparisonBuilder), - new MessagingBodyThen(this.blockBuilder, generatedClassMetaData, - comparisonBuilder), + this.thens.addAll(Arrays.asList(new MessagingSpockNoMessageThen(this.blockBuilder, generatedClassMetaData), + new MessagingReceiveMessageThen(this.blockBuilder, generatedClassMetaData, this.comparisonBuilder), + new MessagingHeadersThen(this.blockBuilder, generatedClassMetaData, this.comparisonBuilder), + new MessagingBodyThen(this.blockBuilder, generatedClassMetaData, comparisonBuilder), new MessagingAssertThatThen(this.blockBuilder))); } @@ -59,8 +53,7 @@ class MessagingWithBodyThen implements Then, BodyMethodVisitor { @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return singleContractMetadata.isMessaging() - && singleContractMetadata.getContract().getOutputMessage() != null; + return singleContractMetadata.isMessaging() && singleContractMetadata.getContract().getOutputMessage() != null; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodAnnotationBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodAnnotationBuilder.java index 7973b57ff2..be738493fe 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodAnnotationBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodAnnotationBuilder.java @@ -31,28 +31,24 @@ class MethodAnnotationBuilder { } MethodAnnotationBuilder jUnit4() { - this.singleMethodBuilder.methodAnnotation( - new JUnit4MethodAnnotation(this.builder, this.metaData), + this.singleMethodBuilder.methodAnnotation(new JUnit4MethodAnnotation(this.builder, this.metaData), new JUnit4IgnoreMethodAnnotation(this.builder, this.metaData)); return this; } MethodAnnotationBuilder jUnit5() { - this.singleMethodBuilder.methodAnnotation( - new JUnit5MethodAnnotation(this.builder, this.metaData), + this.singleMethodBuilder.methodAnnotation(new JUnit5MethodAnnotation(this.builder, this.metaData), new JUnit5IgnoreMethodAnnotation(this.builder, this.metaData)); return this; } MethodAnnotationBuilder testNG() { - this.singleMethodBuilder.methodAnnotation( - new TestNGMethodAnnotation(this.builder, this.metaData)); + this.singleMethodBuilder.methodAnnotation(new TestNGMethodAnnotation(this.builder, this.metaData)); return this; } MethodAnnotationBuilder spock() { - this.singleMethodBuilder.methodAnnotation( - new SpockIgnoreMethodAnnotation(this.builder, this.metaData)); + this.singleMethodBuilder.methodAnnotation(new SpockIgnoreMethodAnnotation(this.builder, this.metaData)); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodMetadataBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodMetadataBuilder.java index e1520dcd8b..48863c9176 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodMetadataBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodMetadataBuilder.java @@ -31,14 +31,12 @@ class MethodMetadataBuilder { } MethodMetadataBuilder jUnit() { - this.singleMethodBuilder - .methodMetadata(new JUnitMethodMetadata(this.builder, this.metaData)); + this.singleMethodBuilder.methodMetadata(new JUnitMethodMetadata(this.builder, this.metaData)); return this; } MethodMetadataBuilder spock() { - this.singleMethodBuilder - .methodMetadata(new SpockMethodMetadata(this.builder, this.metaData)); + this.singleMethodBuilder.methodMetadata(new SpockMethodMetadata(this.builder, this.metaData)); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodPreProcessor.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodPreProcessor.java index 9a626f3fac..84fb213c9d 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodPreProcessor.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodPreProcessor.java @@ -21,8 +21,7 @@ import org.springframework.cloud.contract.verifier.file.SingleContractMetadata; interface MethodPreProcessor extends MethodVisitor { @Override - default MethodVisitor apply( - SingleContractMetadata singleContractMetadata) { + default MethodVisitor apply(SingleContractMetadata singleContractMetadata) { return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodVisitor.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodVisitor.java index 1539133313..b0c8a45b9c 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodVisitor.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MethodVisitor.java @@ -20,7 +20,6 @@ import java.util.function.Function; import org.springframework.cloud.contract.verifier.file.SingleContractMetadata; -interface MethodVisitor - extends MethodAcceptor, Function> { +interface MethodVisitor extends MethodAcceptor, Function> { } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcAsyncWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcAsyncWhen.java index d70139c691..ed482cd950 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcAsyncWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcAsyncWhen.java @@ -25,8 +25,7 @@ class MockMvcAsyncWhen implements When, MockMvcAcceptor { private final GeneratedClassMetaData generatedClassMetaData; - MockMvcAsyncWhen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + MockMvcAsyncWhen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcBodyGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcBodyGiven.java index ac471d8514..e34bf3dcf8 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcBodyGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcBodyGiven.java @@ -30,8 +30,7 @@ class MockMvcBodyGiven implements Given { private final BodyParser bodyParser; - MockMvcBodyGiven(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData, BodyParser bodyParser) { + MockMvcBodyGiven(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, BodyParser bodyParser) { this.blockBuilder = blockBuilder; this.bodyReader = new BodyReader(generatedClassMetaData); this.bodyParser = bodyParser; @@ -47,8 +46,7 @@ class MockMvcBodyGiven implements Given { Object body; Request request = metadata.getContract().getRequest(); Object serverValue = request.getBody().getServerValue(); - if (serverValue instanceof ExecutionProperty - || serverValue instanceof FromFileProperty) { + if (serverValue instanceof ExecutionProperty || serverValue instanceof FromFileProperty) { body = request.getBody().getServerValue(); } else { @@ -65,10 +63,8 @@ class MockMvcBodyGiven implements Given { else if (body instanceof FromFileProperty) { FromFileProperty fileProperty = (FromFileProperty) body; value = fileProperty.isByte() - ? this.bodyReader.readBytesFromFileString(metadata, fileProperty, - CommunicationType.REQUEST) - : this.bodyReader.readStringFromFileString(metadata, fileProperty, - CommunicationType.REQUEST); + ? this.bodyReader.readBytesFromFileString(metadata, fileProperty, CommunicationType.REQUEST) + : this.bodyReader.readStringFromFileString(metadata, fileProperty, CommunicationType.REQUEST); } else { String escaped = escapeRequestSpecialChars(metadata, body.toString()); @@ -77,8 +73,7 @@ class MockMvcBodyGiven implements Given { return ".body(" + value + ")"; } - private String escapeRequestSpecialChars(SingleContractMetadata metadata, - String string) { + private String escapeRequestSpecialChars(SingleContractMetadata metadata, String string) { if (metadata.getInputTestContentType() == ContentType.JSON) { return string.replaceAll("\\\\n", "\\\\\\\\n"); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcCookiesGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcCookiesGiven.java index 2cf0535d04..5314aec80f 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcCookiesGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcCookiesGiven.java @@ -54,15 +54,13 @@ class MockMvcCookiesGiven implements Given { } private String string(Cookie cookie) { - return ".cookie(" + ContentHelper.getTestSideForNonBodyValue(cookie.getKey()) - + ", " + ContentHelper.getTestSideForNonBodyValue(cookie.getServerValue()) - + ")"; + return ".cookie(" + ContentHelper.getTestSideForNonBodyValue(cookie.getKey()) + ", " + + ContentHelper.getTestSideForNonBodyValue(cookie.getServerValue()) + ")"; } private boolean ofAbsentType(Cookie cookie) { return cookie.getServerValue() instanceof MatchingStrategy - && MatchingStrategy.Type.ABSENT - .equals(((MatchingStrategy) cookie.getServerValue()).getType()); + && MatchingStrategy.Type.ABSENT.equals(((MatchingStrategy) cookie.getServerValue()).getType()); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcHeadersGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcHeadersGiven.java index 81f6b20cdb..eb2c21b7f5 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcHeadersGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcHeadersGiven.java @@ -56,17 +56,15 @@ class MockMvcHeadersGiven implements Given { } private String string(Header header) { - return ".header(" + ContentHelper.getTestSideForNonBodyValue(header.getName()) - + ", " - + ContentHelper.getTestSideForNonBodyValue( - MapConverter.getTestSideValuesForNonBody(header.getServerValue())) + return ".header(" + + ContentHelper.getTestSideForNonBodyValue(header.getName()) + ", " + ContentHelper + .getTestSideForNonBodyValue(MapConverter.getTestSideValuesForNonBody(header.getServerValue())) + ")"; } private boolean ofAbsentType(Header header) { return header.getServerValue() instanceof MatchingStrategy - && MatchingStrategy.Type.ABSENT - .equals(((MatchingStrategy) header.getServerValue()).getType()); + && MatchingStrategy.Type.ABSENT.equals(((MatchingStrategy) header.getServerValue()).getType()); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcMultipartGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcMultipartGiven.java index e89a11882c..0bd899c547 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcMultipartGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcMultipartGiven.java @@ -36,8 +36,8 @@ class MockMvcMultipartGiven implements Given { private final BodyParser bodyParser; - MockMvcMultipartGiven(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData, BodyParser bodyParser) { + MockMvcMultipartGiven(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, + BodyParser bodyParser) { this.blockBuilder = blockBuilder; this.bodyReader = new BodyReader(generatedClassMetaData); this.bodyParser = bodyParser; @@ -46,46 +46,40 @@ class MockMvcMultipartGiven implements Given { @Override public MethodVisitor apply(SingleContractMetadata metadata) { - getMultipartParameters(metadata).entrySet().forEach(entry -> this.blockBuilder - .addLine(getMultipartParameterLine(metadata, entry))); + getMultipartParameters(metadata).entrySet() + .forEach(entry -> this.blockBuilder.addLine(getMultipartParameterLine(metadata, entry))); return this; } - private String getMultipartParameterLine(SingleContractMetadata metadata, - Map.Entry parameter) { + private String getMultipartParameterLine(SingleContractMetadata metadata, Map.Entry parameter) { if (parameter.getValue() instanceof NamedProperty) { - return ".multiPart(" + getMultipartFileParameterContent(metadata, - parameter.getKey(), (NamedProperty) parameter.getValue()) + ")"; + return ".multiPart(" + getMultipartFileParameterContent(metadata, parameter.getKey(), + (NamedProperty) parameter.getValue()) + ")"; } return getParameterString(parameter); } @SuppressWarnings("unchecked") private Map getMultipartParameters(SingleContractMetadata metadata) { - return (Map) metadata.getContract().getRequest().getMultipart() - .getServerValue(); + return (Map) metadata.getContract().getRequest().getMultipart().getServerValue(); } - private String getMultipartFileParameterContent(SingleContractMetadata metadata, - String propertyName, NamedProperty propertyValue) { + private String getMultipartFileParameterContent(SingleContractMetadata metadata, String propertyName, + NamedProperty propertyValue) { return getJavaMultipartFileParameterContent(propertyName, propertyValue, - fileProp -> this.bodyReader.readBytesFromFileString(metadata, fileProp, - CommunicationType.REQUEST)); + fileProp -> this.bodyReader.readBytesFromFileString(metadata, fileProp, CommunicationType.REQUEST)); } private String getParameterString(Map.Entry parameter) { return ".param(" + this.bodyParser.quotedShortText(parameter.getKey()) + ", " - + this.bodyParser.quotedShortText( - MapConverter.getTestSideValuesForNonBody(parameter.getValue())) - + ")"; + + this.bodyParser.quotedShortText(MapConverter.getTestSideValuesForNonBody(parameter.getValue())) + ")"; } @Override public boolean accept(SingleContractMetadata metadata) { Request request = metadata.getContract().getRequest(); return request != null && request.getMultipart() != null - && this.generatedClassMetaData.configProperties - .getTestFramework() != TestFramework.SPOCK; + && this.generatedClassMetaData.configProperties.getTestFramework() != TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcQueryParamsWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcQueryParamsWhen.java index ac097beeb8..34a04790ef 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcQueryParamsWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcQueryParamsWhen.java @@ -59,9 +59,8 @@ class MockMvcQueryParamsWhen implements When, MockMvcAcceptor, QueryParamsResolv } private void addQueryParameters(Url buildUrl) { - List queryParameters = buildUrl.getQueryParameters() - .getParameters().stream().filter(this::allowedQueryParameter) - .collect(Collectors.toList()); + List queryParameters = buildUrl.getQueryParameters().getParameters().stream() + .filter(this::allowedQueryParameter).collect(Collectors.toList()); Iterator iterator = queryParameters.iterator(); while (iterator.hasNext()) { QueryParameter parameter = iterator.next(); @@ -86,10 +85,9 @@ class MockMvcQueryParamsWhen implements When, MockMvcAcceptor, QueryParamsResolv } private String addQueryParameter(QueryParameter queryParam) { - return "." + QUERY_PARAM_METHOD + "(" - + this.bodyParser.quotedLongText(queryParam.getName()) + "," - + this.bodyParser.quotedLongText(resolveParamValue( - MapConverter.getTestSideValuesForNonBody(queryParam))) + return "." + QUERY_PARAM_METHOD + "(" + this.bodyParser.quotedLongText(queryParam.getName()) + "," + + this.bodyParser + .quotedLongText(resolveParamValue(MapConverter.getTestSideValuesForNonBody(queryParam))) + ")"; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcRestAssuredImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcRestAssuredImports.java index 0e1704dfd1..7003aab72b 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcRestAssuredImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcRestAssuredImports.java @@ -35,24 +35,21 @@ class MockMvcRestAssuredImports implements Imports, RestAssuredVerifier { "io.restassured.module.mockmvc.specification.MockMvcRequestSpecification", "io.restassured.response.ResponseOptions" }; - MockMvcRestAssuredImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + MockMvcRestAssuredImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream( - isRestAssured2Present() ? REST_ASSURED_2_IMPORTS : REST_ASSURED_3_IMPORTS) + Arrays.stream(isRestAssured2Present() ? REST_ASSURED_2_IMPORTS : REST_ASSURED_3_IMPORTS) .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestMode() == TestMode.MOCKMVC + return this.generatedClassMetaData.configProperties.getTestMode() == TestMode.MOCKMVC && this.generatedClassMetaData.isAnyHttp(); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcRestAssuredStaticImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcRestAssuredStaticImports.java index 44eb4f83ab..f9db09398d 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcRestAssuredStaticImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MockMvcRestAssuredStaticImports.java @@ -29,27 +29,23 @@ class MockMvcRestAssuredStaticImports implements Imports, RestAssuredVerifier { private static final String[] REST_ASSURED_2_IMPORTS = { "com.jayway.restassured.module.mockmvc.RestAssuredMockMvc.*" }; - private static final String[] REST_ASSURED_3_IMPORTS = { - "io.restassured.module.mockmvc.RestAssuredMockMvc.*" }; + private static final String[] REST_ASSURED_3_IMPORTS = { "io.restassured.module.mockmvc.RestAssuredMockMvc.*" }; - MockMvcRestAssuredStaticImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + MockMvcRestAssuredStaticImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream( - isRestAssured2Present() ? REST_ASSURED_2_IMPORTS : REST_ASSURED_3_IMPORTS) + Arrays.stream(isRestAssured2Present() ? REST_ASSURED_2_IMPORTS : REST_ASSURED_3_IMPORTS) .forEach(s -> this.blockBuilder.addLineWithEnding("import static " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestMode() == TestMode.MOCKMVC + return this.generatedClassMetaData.configProperties.getTestMode() == TestMode.MOCKMVC && this.generatedClassMetaData.isAnyHttp(); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/NameProvider.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/NameProvider.java index f0cd7142f7..1dcfa55623 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/NameProvider.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/NameProvider.java @@ -34,8 +34,7 @@ class NameProvider { private static final Log log = LogFactory.getLog(NameProvider.class); String methodName(SingleContractMetadata singleContractMetadata) { - return ContractVerifierUtil.TEST_METHOD_PREFIX - + generateMethodName(singleContractMetadata); + return ContractVerifierUtil.TEST_METHOD_PREFIX + generateMethodName(singleContractMetadata); } private String generateMethodName(SingleContractMetadata singleContractMetadata) { @@ -43,8 +42,7 @@ class NameProvider { File stubsFile = contractMetadata.getPath().toFile(); Contract stubContent = singleContractMetadata.getContract(); if (StringUtils.hasText(stubContent.getName())) { - String name = NamesUtil.camelCase( - NamesUtil.convertIllegalPackageChars(stubContent.getName())); + String name = NamesUtil.camelCase(NamesUtil.convertIllegalPackageChars(stubContent.getName())); if (log.isDebugEnabled()) { log.debug("Overriding the default test name with [" + name + "]"); } @@ -77,8 +75,8 @@ class NameProvider { } private String camelCasedMethodFromFileName(File stubsFile) { - return NamesUtil.camelCase(NamesUtil.convertIllegalMethodNameChars(NamesUtil - .toLastDot(NamesUtil.afterLast(stubsFile.getPath(), File.separator)))); + return NamesUtil.camelCase(NamesUtil.convertIllegalMethodNameChars( + NamesUtil.toLastDot(NamesUtil.afterLast(stubsFile.getPath(), File.separator)))); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredCookiesThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredCookiesThen.java index ab5edfb138..b9aec10638 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredCookiesThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredCookiesThen.java @@ -25,8 +25,7 @@ class RestAssuredCookiesThen implements Then, MockMvcAcceptor, CookieElementProc private final ComparisonBuilder comparisonBuilder; - RestAssuredCookiesThen(BlockBuilder blockBuilder, - ComparisonBuilder comparisonBuilder) { + RestAssuredCookiesThen(BlockBuilder blockBuilder, ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.comparisonBuilder = comparisonBuilder; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredGiven.java index 3dc4cd7751..3d6d19de8a 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredGiven.java @@ -33,22 +33,18 @@ class RestAssuredGiven implements Given, BodyMethodVisitor { private final List bodyGivens = new LinkedList<>(); - RestAssuredGiven(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData, BodyParser bodyParser) { + RestAssuredGiven(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, BodyParser bodyParser) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; - this.requestGivens.addAll(Arrays.asList( - new MockMvcRequestGiven(blockBuilder, generatedClassMetaData), + this.requestGivens.addAll(Arrays.asList(new MockMvcRequestGiven(blockBuilder, generatedClassMetaData), new SpockMockMvcRequestGiven(blockBuilder, generatedClassMetaData), new ExplicitRequestGiven(blockBuilder, generatedClassMetaData), new WebTestClientRequestGiven(blockBuilder, generatedClassMetaData))); - this.bodyGivens.addAll(Arrays.asList(new MockMvcHeadersGiven(blockBuilder), - new MockMvcCookiesGiven(blockBuilder), - new MockMvcBodyGiven(blockBuilder, generatedClassMetaData, bodyParser), - new MockMvcMultipartGiven(blockBuilder, generatedClassMetaData, - bodyParser), - new SpockMockMvcMultipartGiven(blockBuilder, generatedClassMetaData, - bodyParser))); + this.bodyGivens + .addAll(Arrays.asList(new MockMvcHeadersGiven(blockBuilder), new MockMvcCookiesGiven(blockBuilder), + new MockMvcBodyGiven(blockBuilder, generatedClassMetaData, bodyParser), + new MockMvcMultipartGiven(blockBuilder, generatedClassMetaData, bodyParser), + new SpockMockMvcMultipartGiven(blockBuilder, generatedClassMetaData, bodyParser))); } @Override @@ -61,18 +57,15 @@ class RestAssuredGiven implements Given, BodyMethodVisitor { } private void addRequestGivenLine(SingleContractMetadata singleContractMetadata) { - this.requestGivens.stream().filter(given -> given.accept(singleContractMetadata)) - .findFirst() - .orElseThrow(() -> new IllegalStateException( - "No matching request building Given implementation for Rest Assured")) + this.requestGivens.stream().filter(given -> given.accept(singleContractMetadata)).findFirst().orElseThrow( + () -> new IllegalStateException("No matching request building Given implementation for Rest Assured")) .apply(singleContractMetadata); } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { return singleContractMetadata.isHttp() - && this.generatedClassMetaData.configProperties - .getTestMode() != TestMode.JAXRSCLIENT; + && this.generatedClassMetaData.configProperties.getTestMode() != TestMode.JAXRSCLIENT; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredHeadersThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredHeadersThen.java index 73af686014..6485ad8ac5 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredHeadersThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredHeadersThen.java @@ -32,8 +32,7 @@ class RestAssuredHeadersThen implements Then, MockMvcAcceptor { private final ComparisonBuilder comparisonBuilder; - RestAssuredHeadersThen(BlockBuilder blockBuilder, - ComparisonBuilder comparisonBuilder) { + RestAssuredHeadersThen(BlockBuilder blockBuilder, ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.comparisonBuilder = comparisonBuilder; } @@ -45,10 +44,8 @@ class RestAssuredHeadersThen implements Then, MockMvcAcceptor { Iterator
iterator = headers.getEntries().iterator(); while (iterator.hasNext()) { Header header = iterator.next(); - String text = processHeaderElement(header.getName(), - header.getServerValue() instanceof NotToEscapePattern - ? header.getServerValue() - : MapConverter.getTestSideValues(header.getServerValue())); + String text = processHeaderElement(header.getName(), header.getServerValue() instanceof NotToEscapePattern + ? header.getServerValue() : MapConverter.getTestSideValues(header.getServerValue())); if (iterator.hasNext()) { this.blockBuilder.addLineWithEnding(text); } @@ -62,22 +59,18 @@ class RestAssuredHeadersThen implements Then, MockMvcAcceptor { private String processHeaderElement(String property, Object value) { if (value instanceof NotToEscapePattern) { - return this.comparisonBuilder - .assertThat("response.header(\"" + property + "\")") + return this.comparisonBuilder.assertThat("response.header(\"" + property + "\")") + matchesManuallyEscapedPattern((NotToEscapePattern) value); } else if (value instanceof ExecutionProperty) { - return ((ExecutionProperty) value) - .insertValue("response.header(\"" + property + "\")"); + return ((ExecutionProperty) value).insertValue("response.header(\"" + property + "\")"); } - return this.comparisonBuilder.assertThat("response.header(\"" + property + "\")", - value); + return this.comparisonBuilder.assertThat("response.header(\"" + property + "\")", value); } private String matchesManuallyEscapedPattern(NotToEscapePattern value) { - return this.comparisonBuilder - .matchesEscaped(value.getServerValue().pattern().replace("\\", "\\\\")); + return this.comparisonBuilder.matchesEscaped(value.getServerValue().pattern().replace("\\", "\\\\")); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredStatusCodeThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredStatusCodeThen.java index 3cff94c17f..0bf1be99c2 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredStatusCodeThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredStatusCodeThen.java @@ -25,8 +25,7 @@ class RestAssuredStatusCodeThen implements Then { private final ComparisonBuilder comparisonBuilder; - RestAssuredStatusCodeThen(BlockBuilder blockBuilder, - ComparisonBuilder comparisonBuilder) { + RestAssuredStatusCodeThen(BlockBuilder blockBuilder, ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.comparisonBuilder = comparisonBuilder; } @@ -34,9 +33,8 @@ class RestAssuredStatusCodeThen implements Then { @Override public MethodVisitor apply(SingleContractMetadata metadata) { Response response = metadata.getContract().getResponse(); - this.blockBuilder - .addIndented(this.comparisonBuilder.assertThat("response.statusCode()", - response.getStatus().getServerValue())) + this.blockBuilder.addIndented( + this.comparisonBuilder.assertThat("response.statusCode()", response.getStatus().getServerValue())) .addEndingIfNotPresent(); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredThen.java index c7ffd80c7e..e0ecf8e7cb 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredThen.java @@ -31,17 +31,14 @@ class RestAssuredThen implements Then, BodyMethodVisitor { private final List thens = new LinkedList<>(); - RestAssuredThen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData, BodyParser bodyParser, + RestAssuredThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, BodyParser bodyParser, ComparisonBuilder comparisonBuilder) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; - this.thens.addAll(Arrays.asList( - new RestAssuredStatusCodeThen(this.blockBuilder, comparisonBuilder), + this.thens.addAll(Arrays.asList(new RestAssuredStatusCodeThen(this.blockBuilder, comparisonBuilder), new RestAssuredHeadersThen(this.blockBuilder, comparisonBuilder), new RestAssuredCookiesThen(this.blockBuilder, comparisonBuilder), - new GenericHttpBodyThen(this.blockBuilder, generatedClassMetaData, - bodyParser, comparisonBuilder))); + new GenericHttpBodyThen(this.blockBuilder, generatedClassMetaData, bodyParser, comparisonBuilder))); } @Override @@ -54,8 +51,7 @@ class RestAssuredThen implements Then, BodyMethodVisitor { @Override public boolean accept(SingleContractMetadata singleContractMetadata) { return singleContractMetadata.isHttp() - && this.generatedClassMetaData.configProperties - .getTestMode() != TestMode.JAXRSCLIENT; + && this.generatedClassMetaData.configProperties.getTestMode() != TestMode.JAXRSCLIENT; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredVerifier.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredVerifier.java index cd3d2e6320..d7afa4ff37 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredVerifier.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredVerifier.java @@ -32,8 +32,7 @@ interface RestAssuredVerifier { default boolean isRestAssured2Present() { boolean restAssured2Present = checker.isClassPresent(REST_ASSURED_2_0_CLASS); if (restAssured2Present) { - log.warn( - "Rest Assured 2 found on the classpath. Please upgrade to the latest version of Rest Assured"); + log.warn("Rest Assured 2 found on the classpath. Please upgrade to the latest version of Rest Assured"); } return restAssured2Present; diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredWhen.java index f3ad438dc6..2699cc00e2 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredWhen.java @@ -33,21 +33,16 @@ class RestAssuredWhen implements When, BodyMethodVisitor { private final List whens = new LinkedList<>(); - RestAssuredWhen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData, BodyParser bodyParser) { + RestAssuredWhen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, BodyParser bodyParser) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; - this.responseWhens.addAll(Arrays.asList( - new MockMvcResponseWhen(blockBuilder, this.generatedClassMetaData), + this.responseWhens.addAll(Arrays.asList(new MockMvcResponseWhen(blockBuilder, this.generatedClassMetaData), new SpockMockMvcResponseWhen(blockBuilder, this.generatedClassMetaData), new ExplicitResponseWhen(blockBuilder, this.generatedClassMetaData), - new WebTestClientResponseWhen(blockBuilder, - this.generatedClassMetaData))); - this.whens.addAll( - Arrays.asList(new MockMvcQueryParamsWhen(this.blockBuilder, bodyParser), - new MockMvcAsyncWhen(this.blockBuilder, - this.generatedClassMetaData), - new MockMvcUrlWhen(this.blockBuilder, bodyParser))); + new WebTestClientResponseWhen(blockBuilder, this.generatedClassMetaData))); + this.whens.addAll(Arrays.asList(new MockMvcQueryParamsWhen(this.blockBuilder, bodyParser), + new MockMvcAsyncWhen(this.blockBuilder, this.generatedClassMetaData), + new MockMvcUrlWhen(this.blockBuilder, bodyParser))); } @Override @@ -60,18 +55,15 @@ class RestAssuredWhen implements When, BodyMethodVisitor { } private void addResponseWhenLine(SingleContractMetadata singleContractMetadata) { - this.responseWhens.stream().filter(when -> when.accept(singleContractMetadata)) - .findFirst() - .orElseThrow(() -> new IllegalStateException( - "No matching request building When implementation for Rest Assured")) + this.responseWhens.stream().filter(when -> when.accept(singleContractMetadata)).findFirst().orElseThrow( + () -> new IllegalStateException("No matching request building When implementation for Rest Assured")) .apply(singleContractMetadata); } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { return singleContractMetadata.isHttp() - && this.generatedClassMetaData.configProperties - .getTestMode() != TestMode.JAXRSCLIENT; + && this.generatedClassMetaData.configProperties.getTestMode() != TestMode.JAXRSCLIENT; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SingleMethodBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SingleMethodBuilder.java index 034d6f8c7f..0bd7e13258 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SingleMethodBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SingleMethodBuilder.java @@ -56,14 +56,12 @@ class SingleMethodBuilder { final BlockBuilder blockBuilder; - private SingleMethodBuilder(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + private SingleMethodBuilder(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } - static SingleMethodBuilder builder(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + static SingleMethodBuilder builder(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { return new SingleMethodBuilder(blockBuilder, generatedClassMetaData); } @@ -91,21 +89,14 @@ class SingleMethodBuilder { } SingleMethodBuilder restAssured() { - return given( - new JavaRestAssuredGiven(this.blockBuilder, this.generatedClassMetaData)) - .methodPreProcessor(new InProgressContractMethodPreProcessor()) - .given(new SpockRestAssuredGiven(this.blockBuilder, - this.generatedClassMetaData)) - .when(new JavaRestAssuredWhen(this.blockBuilder, - this.generatedClassMetaData)) - .when(new SpockRestAssuredWhen(this.blockBuilder, - this.generatedClassMetaData)) - .then(new JavaRestAssuredThen(this.blockBuilder, - this.generatedClassMetaData)) - .then(new SpockRestAssuredThen(this.blockBuilder, - this.generatedClassMetaData)) - .methodPostProcessor(new TemplateUpdatingMethodPostProcessor( - this.blockBuilder)); + return given(new JavaRestAssuredGiven(this.blockBuilder, this.generatedClassMetaData)) + .methodPreProcessor(new InProgressContractMethodPreProcessor()) + .given(new SpockRestAssuredGiven(this.blockBuilder, this.generatedClassMetaData)) + .when(new JavaRestAssuredWhen(this.blockBuilder, this.generatedClassMetaData)) + .when(new SpockRestAssuredWhen(this.blockBuilder, this.generatedClassMetaData)) + .then(new JavaRestAssuredThen(this.blockBuilder, this.generatedClassMetaData)) + .then(new SpockRestAssuredThen(this.blockBuilder, this.generatedClassMetaData)) + .methodPostProcessor(new TemplateUpdatingMethodPostProcessor(this.blockBuilder)); } SingleMethodBuilder jaxRs() { @@ -115,8 +106,7 @@ class SingleMethodBuilder { .when(new SpockJaxRsWhen(this.blockBuilder, this.generatedClassMetaData)) .then(new JavaJaxRsThen(this.blockBuilder, this.generatedClassMetaData)) .then(new SpockJaxRsThen(this.blockBuilder, this.generatedClassMetaData)) - .methodPostProcessor( - new TemplateUpdatingMethodPostProcessor(this.blockBuilder)); + .methodPostProcessor(new TemplateUpdatingMethodPostProcessor(this.blockBuilder)); } SingleMethodBuilder messaging() { @@ -212,27 +202,23 @@ class SingleMethodBuilder { private boolean shouldStopProcessing(SingleContractMetadata metaData) { List matchingPreProcessors = this.methodPreProcessors.stream() - .filter(m -> m.accept(metaData)) - .collect(Collectors.toCollection(LinkedList::new)); + .filter(m -> m.accept(metaData)).collect(Collectors.toCollection(LinkedList::new)); matchingPreProcessors.forEach(m -> m.apply(metaData)); return matchingPreProcessors.stream().anyMatch(m -> !m.shouldContinue()); } private MethodMetadata pickMetadatum() { return this.methodMetadata.stream().filter(Acceptor::accept).findFirst() - .orElseThrow(() -> new IllegalStateException( - "No matching method metadata found")); + .orElseThrow(() -> new IllegalStateException("No matching method metadata found")); } - private boolean visit(List list, - SingleContractMetadata metaData) { + private boolean visit(List list, SingleContractMetadata metaData) { return visit(list, metaData, true); } - private boolean visit(List list, - SingleContractMetadata metaData, boolean addLineEnding) { - List visitors = list.stream() - .filter(o -> o.accept(metaData)).collect(Collectors.toList()); + private boolean visit(List list, SingleContractMetadata metaData, boolean addLineEnding) { + List visitors = list.stream().filter(o -> o.accept(metaData)) + .collect(Collectors.toList()); Iterator iterator = visitors.iterator(); while (iterator.hasNext()) { MethodVisitor visitor = iterator.next(); diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SingleTestGenerator.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SingleTestGenerator.java index b50c028b7f..40f03d6adf 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SingleTestGenerator.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SingleTestGenerator.java @@ -42,9 +42,8 @@ public interface SingleTestGenerator { * @deprecated use{@link SingleTestGenerator#buildClass(ContractVerifierConfigProperties, Collection, String, GeneratedClassData)} */ @Deprecated - String buildClass(ContractVerifierConfigProperties properties, - Collection listOfFiles, String className, - String classPackage, String includedDirectoryRelativePath); + String buildClass(ContractVerifierConfigProperties properties, Collection listOfFiles, + String className, String classPackage, String includedDirectoryRelativePath); /** * Creates contents of a single test class in which all test scenarios from the @@ -55,8 +54,7 @@ public interface SingleTestGenerator { * @param includedDirectoryRelativePath - relative path to the included directory * @return contents of a single test class */ - String buildClass(ContractVerifierConfigProperties properties, - Collection listOfFiles, + String buildClass(ContractVerifierConfigProperties properties, Collection listOfFiles, String includedDirectoryRelativePath, GeneratedClassData generatedClassData); class GeneratedClassData { @@ -67,8 +65,7 @@ public interface SingleTestGenerator { public final Path testClassPath; - public GeneratedClassData(String className, String classPackage, - Path testClassPath) { + public GeneratedClassData(String className, String classPackage, Path testClassPath) { this.className = className; this.classPackage = classPackage; this.testClassPath = testClassPath; diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockIgnoreImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockIgnoreImports.java index 851e8b25f7..dac90db5eb 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockIgnoreImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockIgnoreImports.java @@ -25,8 +25,7 @@ class SpockIgnoreImports implements Imports { private final GeneratedClassMetaData generatedClassMetaData; - SpockIgnoreImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + SpockIgnoreImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @@ -39,12 +38,10 @@ class SpockIgnoreImports implements Imports { @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.SPOCK + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.SPOCK && this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(metadata -> metadata.isIgnored() - || metadata.getConvertedContractWithMetadata().stream() - .anyMatch(SingleContractMetadata::isIgnored)); + .anyMatch(metadata -> metadata.isIgnored() || metadata.getConvertedContractWithMetadata() + .stream().anyMatch(SingleContractMetadata::isIgnored)); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockIgnoreMethodAnnotation.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockIgnoreMethodAnnotation.java index bbd985dd5c..d9cacaa759 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockIgnoreMethodAnnotation.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockIgnoreMethodAnnotation.java @@ -29,23 +29,20 @@ class SpockIgnoreMethodAnnotation implements MethodAnnotations { private static final String[] ANNOTATIONS = { "@Ignore" }; - SpockIgnoreMethodAnnotation(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + SpockIgnoreMethodAnnotation(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override - public MethodVisitor apply( - SingleContractMetadata singleContractMetadata) { + public MethodVisitor apply(SingleContractMetadata singleContractMetadata) { Arrays.stream(ANNOTATIONS).forEach(this.blockBuilder::addIndented); return this; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.SPOCK + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.SPOCK && (singleContractMetadata.getContractMetadata().isIgnored() || singleContractMetadata.getContract().isIgnored()); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockImports.java index 08b92a0ef8..52f8f0a2f8 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockImports.java @@ -28,23 +28,20 @@ class SpockImports implements Imports { private static final String[] IMPORTS = { "spock.lang.Specification" }; - SpockImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + SpockImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.SPOCK; + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockJaxRsThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockJaxRsThen.java index bb5792e5f8..5056aebcf0 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockJaxRsThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockJaxRsThen.java @@ -23,8 +23,7 @@ class SpockJaxRsThen extends JaxRsThen { private final GeneratedClassMetaData metaData; - SpockJaxRsThen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + SpockJaxRsThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { super(blockBuilder, generatedClassMetaData, SpockJaxRsBodyParser.INSTANCE, GroovyComparisonBuilder.JAXRS_HTTP_INSTANCE); this.metaData = generatedClassMetaData; @@ -32,8 +31,8 @@ class SpockJaxRsThen extends JaxRsThen { @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return super.accept(singleContractMetadata) && this.metaData.configProperties - .getTestFramework() == TestFramework.SPOCK; + return super.accept(singleContractMetadata) + && this.metaData.configProperties.getTestFramework() == TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockJaxRsWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockJaxRsWhen.java index cf72003c4b..48c2304912 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockJaxRsWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockJaxRsWhen.java @@ -23,16 +23,15 @@ class SpockJaxRsWhen extends JaxRsWhen { private final GeneratedClassMetaData metaData; - SpockJaxRsWhen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + SpockJaxRsWhen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { super(blockBuilder, generatedClassMetaData, SpockJaxRsBodyParser.INSTANCE); this.metaData = generatedClassMetaData; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return super.accept(singleContractMetadata) && this.metaData.configProperties - .getTestFramework() == TestFramework.SPOCK; + return super.accept(singleContractMetadata) + && this.metaData.configProperties.getTestFramework() == TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMessagingEmptyThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMessagingEmptyThen.java index 58fe031cde..f71bca69e8 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMessagingEmptyThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMessagingEmptyThen.java @@ -41,8 +41,7 @@ class SpockMessagingEmptyThen implements Then, BodyMethodVisitor { @Override public boolean accept(SingleContractMetadata metadata) { return metadata.isMessaging() - && this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.SPOCK + && this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.SPOCK && metadata.getContract().getOutputMessage() == null; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMessagingGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMessagingGiven.java index 554deb78dc..082aa7e5bf 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMessagingGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMessagingGiven.java @@ -23,16 +23,15 @@ class SpockMessagingGiven extends MessagingGiven { private final GeneratedClassMetaData generatedClassMetaData; - SpockMessagingGiven(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + SpockMessagingGiven(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { super(blockBuilder, generatedClassMetaData, SpockMessagingBodyParser.INSTANCE); this.generatedClassMetaData = generatedClassMetaData; } @Override public boolean accept(SingleContractMetadata metadata) { - return super.accept(metadata) && this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.SPOCK; + return super.accept(metadata) + && this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMessagingWithBodyThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMessagingWithBodyThen.java index 18b0453363..b703fe1710 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMessagingWithBodyThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMessagingWithBodyThen.java @@ -23,17 +23,15 @@ class SpockMessagingWithBodyThen extends MessagingWithBodyThen { private final GeneratedClassMetaData metaData; - SpockMessagingWithBodyThen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { - super(blockBuilder, generatedClassMetaData, - GroovyComparisonBuilder.SPOCK_MESSAGING_INSTANCE); + SpockMessagingWithBodyThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { + super(blockBuilder, generatedClassMetaData, GroovyComparisonBuilder.SPOCK_MESSAGING_INSTANCE); this.metaData = generatedClassMetaData; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return super.accept(singleContractMetadata) && this.metaData.configProperties - .getTestFramework() == TestFramework.SPOCK; + return super.accept(singleContractMetadata) + && this.metaData.configProperties.getTestFramework() == TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMockMvcMultipartGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMockMvcMultipartGiven.java index f6ab6542e3..48f69c30ad 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMockMvcMultipartGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMockMvcMultipartGiven.java @@ -35,8 +35,8 @@ class SpockMockMvcMultipartGiven implements Given { private final BodyParser bodyParser; - SpockMockMvcMultipartGiven(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData, BodyParser bodyParser) { + SpockMockMvcMultipartGiven(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData, + BodyParser bodyParser) { this.blockBuilder = blockBuilder; this.bodyReader = new BodyReader(generatedClassMetaData); this.bodyParser = bodyParser; @@ -45,47 +45,40 @@ class SpockMockMvcMultipartGiven implements Given { @Override public MethodVisitor apply(SingleContractMetadata metadata) { - getMultipartParameters(metadata).entrySet().forEach(entry -> this.blockBuilder - .addLine(getMultipartParameterLine(metadata, entry))); + getMultipartParameters(metadata).entrySet() + .forEach(entry -> this.blockBuilder.addLine(getMultipartParameterLine(metadata, entry))); return this; } - private String getMultipartParameterLine(SingleContractMetadata metadata, - Map.Entry parameter) { + private String getMultipartParameterLine(SingleContractMetadata metadata, Map.Entry parameter) { if (parameter.getValue() instanceof NamedProperty) { - return ".multiPart(" + getMultipartFileParameterContent(metadata, - parameter.getKey(), (NamedProperty) parameter.getValue()) + ")"; + return ".multiPart(" + getMultipartFileParameterContent(metadata, parameter.getKey(), + (NamedProperty) parameter.getValue()) + ")"; } return getParameterString(parameter); } @SuppressWarnings("unchecked") private Map getMultipartParameters(SingleContractMetadata metadata) { - return (Map) metadata.getContract().getRequest().getMultipart() - .getServerValue(); + return (Map) metadata.getContract().getRequest().getMultipart().getServerValue(); } - private String getMultipartFileParameterContent(SingleContractMetadata metadata, - String propertyName, NamedProperty propertyValue) { - return ContentUtils.getGroovyMultipartFileParameterContent(propertyName, - propertyValue, - fileProp -> this.bodyReader.readBytesFromFileString(metadata, fileProp, - CommunicationType.REQUEST)); + private String getMultipartFileParameterContent(SingleContractMetadata metadata, String propertyName, + NamedProperty propertyValue) { + return ContentUtils.getGroovyMultipartFileParameterContent(propertyName, propertyValue, + fileProp -> this.bodyReader.readBytesFromFileString(metadata, fileProp, CommunicationType.REQUEST)); } private String getParameterString(Map.Entry parameter) { return ".param(" + this.bodyParser.quotedShortText(parameter.getKey()) + ", " - + this.bodyParser.quotedShortText( - MapConverter.getTestSideValuesForNonBody(parameter.getValue())) - + ")"; + + this.bodyParser.quotedShortText(MapConverter.getTestSideValuesForNonBody(parameter.getValue())) + ")"; } @Override public boolean accept(SingleContractMetadata metadata) { Request request = metadata.getContract().getRequest(); return request != null && request.getMultipart() != null - && this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.SPOCK; + && this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMockMvcRequestGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMockMvcRequestGiven.java index ca8499f6fa..cfbc3d9e67 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMockMvcRequestGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMockMvcRequestGiven.java @@ -39,8 +39,7 @@ class SpockMockMvcRequestGiven implements Given, MockMvcAcceptor { @Override public boolean accept(SingleContractMetadata metadata) { return acceptType(this.generatedClassMetaData, metadata) - && this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.SPOCK; + && this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMockMvcResponseWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMockMvcResponseWhen.java index 57af7fc665..625542b8af 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMockMvcResponseWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockMockMvcResponseWhen.java @@ -39,8 +39,7 @@ class SpockMockMvcResponseWhen implements When, MockMvcAcceptor { @Override public boolean accept(SingleContractMetadata metadata) { return acceptType(this.generatedClassMetaData, metadata) - && this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.SPOCK; + && this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockOrderClassAnnotation.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockOrderClassAnnotation.java index 1889fe999b..e30d8a39b9 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockOrderClassAnnotation.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockOrderClassAnnotation.java @@ -28,8 +28,7 @@ class SpockOrderClassAnnotation implements ClassAnnotation { private static final String[] ANNOTATIONS = { "@Stepwise" }; - SpockOrderClassAnnotation(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + SpockOrderClassAnnotation(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @@ -42,10 +41,8 @@ class SpockOrderClassAnnotation implements ClassAnnotation { @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.SPOCK - && this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(meta -> meta.getOrder() != null); + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.SPOCK + && this.generatedClassMetaData.listOfFiles.stream().anyMatch(meta -> meta.getOrder() != null); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockOrderImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockOrderImports.java index b296d45846..aea98b3122 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockOrderImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockOrderImports.java @@ -28,25 +28,21 @@ class SpockOrderImports implements Imports { private static final String[] IMPORTS = { "spock.lang.Stepwise" }; - SpockOrderImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + SpockOrderImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.SPOCK - && this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(meta -> meta.getOrder() != null); + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.SPOCK + && this.generatedClassMetaData.listOfFiles.stream().anyMatch(meta -> meta.getOrder() != null); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockRestAssuredGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockRestAssuredGiven.java index 582735b7e2..b55da222ca 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockRestAssuredGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockRestAssuredGiven.java @@ -23,16 +23,15 @@ class SpockRestAssuredGiven extends RestAssuredGiven { private final GeneratedClassMetaData metaData; - SpockRestAssuredGiven(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + SpockRestAssuredGiven(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { super(blockBuilder, generatedClassMetaData, SpockRestAssuredBodyParser.INSTANCE); this.metaData = generatedClassMetaData; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return super.accept(singleContractMetadata) && this.metaData.configProperties - .getTestFramework() == TestFramework.SPOCK; + return super.accept(singleContractMetadata) + && this.metaData.configProperties.getTestFramework() == TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockRestAssuredThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockRestAssuredThen.java index 30df241d9f..5a6f703e00 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockRestAssuredThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockRestAssuredThen.java @@ -23,8 +23,7 @@ class SpockRestAssuredThen extends RestAssuredThen { private final GeneratedClassMetaData metaData; - SpockRestAssuredThen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + SpockRestAssuredThen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { super(blockBuilder, generatedClassMetaData, SpockRestAssuredBodyParser.INSTANCE, GroovyComparisonBuilder.SPOCK_HTTP_INSTANCE); this.metaData = generatedClassMetaData; @@ -32,8 +31,8 @@ class SpockRestAssuredThen extends RestAssuredThen { @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return super.accept(singleContractMetadata) && this.metaData.configProperties - .getTestFramework() == TestFramework.SPOCK; + return super.accept(singleContractMetadata) + && this.metaData.configProperties.getTestFramework() == TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockRestAssuredWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockRestAssuredWhen.java index ff6be1a1ba..18e4824bf6 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockRestAssuredWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockRestAssuredWhen.java @@ -23,16 +23,15 @@ class SpockRestAssuredWhen extends RestAssuredWhen { private final GeneratedClassMetaData metaData; - SpockRestAssuredWhen(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + SpockRestAssuredWhen(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { super(blockBuilder, generatedClassMetaData, RestAssuredBodyParser.INSTANCE); this.metaData = generatedClassMetaData; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return super.accept(singleContractMetadata) && this.metaData.configProperties - .getTestFramework() == TestFramework.SPOCK; + return super.accept(singleContractMetadata) + && this.metaData.configProperties.getTestFramework() == TestFramework.SPOCK; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TemplateUpdatingMethodPostProcessor.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TemplateUpdatingMethodPostProcessor.java index 511f277947..fc6bb398d8 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TemplateUpdatingMethodPostProcessor.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TemplateUpdatingMethodPostProcessor.java @@ -35,8 +35,7 @@ class TemplateUpdatingMethodPostProcessor implements MethodPostProcessor { @Override public MethodVisitor apply(SingleContractMetadata metadata) { Request request = metadata.getContract().getRequest(); - String newBody = this.templateProcessor.transform(request, - this.blockBuilder.toString()); + String newBody = this.templateProcessor.transform(request, this.blockBuilder.toString()); this.blockBuilder.updateContents(newBody); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TestNGImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TestNGImports.java index 7b1d877c55..36ad16cdfd 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TestNGImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TestNGImports.java @@ -28,23 +28,20 @@ class TestNGImports implements Imports { private static final String[] IMPORTS = { "org.testng.annotations.Test" }; - TestNGImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + TestNGImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.TESTNG; + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.TESTNG; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TestNGMethodAnnotation.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TestNGMethodAnnotation.java index b78508811e..d2be583969 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TestNGMethodAnnotation.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TestNGMethodAnnotation.java @@ -25,25 +25,21 @@ class TestNGMethodAnnotation implements MethodAnnotations { private final GeneratedClassMetaData generatedClassMetaData; - TestNGMethodAnnotation(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + TestNGMethodAnnotation(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override - public MethodVisitor apply( - SingleContractMetadata singleContractMetadata) { - final String annotation = singleContractMetadata.isIgnored() - ? "@Test(enabled = false)" : "@Test"; + public MethodVisitor apply(SingleContractMetadata singleContractMetadata) { + final String annotation = singleContractMetadata.isIgnored() ? "@Test(enabled = false)" : "@Test"; this.blockBuilder.addIndented(annotation); return this; } @Override public boolean accept(SingleContractMetadata singleContractMetadata) { - return this.generatedClassMetaData.configProperties - .getTestFramework() == TestFramework.TESTNG; + return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.TESTNG; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TestSideRequestTemplateModel.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TestSideRequestTemplateModel.java index 61f6fce803..667e332b31 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TestSideRequestTemplateModel.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/TestSideRequestTemplateModel.java @@ -80,9 +80,8 @@ public class TestSideRequestTemplateModel { */ private final String escapedBody; - private TestSideRequestTemplateModel(String url, Map> query, - Path path, Map> headers, String body, - String escapedBody) { + private TestSideRequestTemplateModel(String url, Map> query, Path path, + Map> headers, String body, String escapedBody) { this.url = url; this.query = query; this.path = path; @@ -123,36 +122,29 @@ public class TestSideRequestTemplateModel { Map> query = query(queryParameters); boolean queryParamsPresent = query == null || query.isEmpty(); String fullUrl = fullUrl(url, query, queryParamsPresent); - boolean headersEntriesPresent = request.getHeaders() != null - && !request.getHeaders().getEntries().isEmpty(); + boolean headersEntriesPresent = request.getHeaders() != null && !request.getHeaders().getEntries().isEmpty(); Map> headers = headers(request, headersEntriesPresent); String escapedBody = trimmedAndEscapedBody(request.getBody()); String body = getBodyAsRawJson(request.getBody()); - return new TestSideRequestTemplateModel(fullUrl, query, paths, headers, body, - escapedBody); + return new TestSideRequestTemplateModel(fullUrl, query, paths, headers, body, escapedBody); } - private static Map> headers(Request request, - boolean headersEntriesPresent) { + private static Map> headers(Request request, boolean headersEntriesPresent) { if (!headersEntriesPresent) { return new HashMap<>(); } return request.getHeaders().getEntries().stream() .collect(Collectors.groupingBy(Header::getName, - Collectors.mapping( - (Function) o -> MapConverter - .getTestSideValues(o).toString(), + Collectors.mapping((Function) o -> MapConverter.getTestSideValues(o).toString(), Collectors.toList()))); } - private static String fullUrl(String url, Map> query, - boolean queryParamsPresent) { + private static String fullUrl(String url, Map> query, boolean queryParamsPresent) { if (queryParamsPresent) { return url; } - String joinedParams = query.entrySet().stream() - .map(entry -> entry.getValue().stream().map(s -> entry.getKey() + "=" + s) - .collect(Collectors.joining("&"))) + String joinedParams = query.entrySet().stream().map( + entry -> entry.getValue().stream().map(s -> entry.getKey() + "=" + s).collect(Collectors.joining("&"))) .collect(Collectors.joining("&")); return url + "?" + joinedParams; } @@ -161,17 +153,15 @@ public class TestSideRequestTemplateModel { if (queryParameters == null) { return new HashMap<>(); } - return queryParameters.getParameters().stream() - .collect(Collectors.groupingBy(QueryParameter::getName, Collectors - .mapping(MapConverter::getTestSideValues, Collectors.toList()))); + return queryParameters.getParameters().stream().collect(Collectors.groupingBy(QueryParameter::getName, + Collectors.mapping(MapConverter::getTestSideValues, Collectors.toList()))); } private static List buildPathsFromUrl(String url) { String fakeUrl = "https://foo.bar" + (url.startsWith("/") ? url : "/" + url); List paths; try { - paths = new LinkedList<>( - Arrays.asList(new URL(fakeUrl).getPath().split("/"))); + paths = new LinkedList<>(Arrays.asList(new URL(fakeUrl).getPath().split("/"))); } catch (MalformedURLException ex) { throw new IllegalStateException(ex); @@ -200,12 +190,10 @@ public class TestSideRequestTemplateModel { private static Object extractServerValueFromBody(Object bodyValue) { if (bodyValue instanceof GString) { - bodyValue = ContentUtils.extractValue((GString) bodyValue, - ContentUtils.GET_TEST_SIDE_FUNCTION); + bodyValue = ContentUtils.extractValue((GString) bodyValue, ContentUtils.GET_TEST_SIDE_FUNCTION); } else { - bodyValue = MapConverter.transformValues(bodyValue, - ContentUtils.GET_TEST_SIDE); + bodyValue = MapConverter.transformValues(bodyValue, ContentUtils.GET_TEST_SIDE); } return bodyValue; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientAcceptor.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientAcceptor.java index 95dc1053c7..7e9836c196 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientAcceptor.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientAcceptor.java @@ -21,8 +21,7 @@ import org.springframework.cloud.contract.verifier.config.TestMode; interface WebTestClientAcceptor { default boolean acceptType(GeneratedClassMetaData generatedClassMetaData) { - return generatedClassMetaData.configProperties - .getTestMode() == TestMode.WEBTESTCLIENT; + return generatedClassMetaData.configProperties.getTestMode() == TestMode.WEBTESTCLIENT; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientRequestGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientRequestGiven.java index d706b616f5..5847955d61 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientRequestGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientRequestGiven.java @@ -24,16 +24,14 @@ class WebTestClientRequestGiven implements Given, WebTestClientAcceptor { private final GeneratedClassMetaData generatedClassMetaData; - WebTestClientRequestGiven(BlockBuilder blockBuilder, - GeneratedClassMetaData metaData) { + WebTestClientRequestGiven(BlockBuilder blockBuilder, GeneratedClassMetaData metaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = metaData; } @Override public MethodVisitor apply(SingleContractMetadata metadata) { - this.blockBuilder - .addIndented("WebTestClientRequestSpecification request = given()"); + this.blockBuilder.addIndented("WebTestClientRequestSpecification request = given()"); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientResponseWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientResponseWhen.java index 38fc72c854..f54dedbc8b 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientResponseWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientResponseWhen.java @@ -24,16 +24,14 @@ class WebTestClientResponseWhen implements When, WebTestClientAcceptor { private final GeneratedClassMetaData generatedClassMetaData; - WebTestClientResponseWhen(BlockBuilder blockBuilder, - GeneratedClassMetaData metaData) { + WebTestClientResponseWhen(BlockBuilder blockBuilder, GeneratedClassMetaData metaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = metaData; } @Override public MethodVisitor apply(SingleContractMetadata metadata) { - this.blockBuilder - .addIndented("WebTestClientResponse response = given().spec(request)"); + this.blockBuilder.addIndented("WebTestClientResponse response = given().spec(request)"); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientRestAssured3StaticImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientRestAssured3StaticImports.java index bd1debca81..361fc40ada 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientRestAssured3StaticImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientRestAssured3StaticImports.java @@ -26,26 +26,22 @@ class WebTestClientRestAssured3StaticImports implements Imports { private final GeneratedClassMetaData generatedClassMetaData; - private static final String[] IMPORTS = { - "io.restassured.module.webtestclient.RestAssuredWebTestClient.*" }; + private static final String[] IMPORTS = { "io.restassured.module.webtestclient.RestAssuredWebTestClient.*" }; - WebTestClientRestAssured3StaticImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + WebTestClientRestAssured3StaticImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import static " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import static " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestMode() == TestMode.WEBTESTCLIENT + return this.generatedClassMetaData.configProperties.getTestMode() == TestMode.WEBTESTCLIENT && this.generatedClassMetaData.isAnyHttp(); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientRestAssuredImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientRestAssuredImports.java index 536976abbf..5300a81cb8 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientRestAssuredImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/WebTestClientRestAssuredImports.java @@ -34,24 +34,21 @@ class WebTestClientRestAssuredImports implements Imports, RestAssuredVerifier { "io.restassured.module.webtestclient.specification.WebTestClientRequestSpecification", "io.restassured.module.webtestclient.response.WebTestClientResponse" }; - WebTestClientRestAssuredImports(BlockBuilder blockBuilder, - GeneratedClassMetaData generatedClassMetaData) { + WebTestClientRestAssuredImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; } @Override public Imports call() { - Arrays.stream( - isRestAssured2Present() ? REST_ASSURED_2_IMPORTS : REST_ASSURED_3_IMPORTS) + Arrays.stream(isRestAssured2Present() ? REST_ASSURED_2_IMPORTS : REST_ASSURED_3_IMPORTS) .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.configProperties - .getTestMode() == TestMode.WEBTESTCLIENT + return this.generatedClassMetaData.configProperties.getTestMode() == TestMode.WEBTESTCLIENT && this.generatedClassMetaData.isAnyHttp(); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/XmlBodyVerificationBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/XmlBodyVerificationBuilder.java index f8d41dfed1..82149eca2c 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/XmlBodyVerificationBuilder.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/XmlBodyVerificationBuilder.java @@ -26,30 +26,23 @@ class XmlBodyVerificationBuilder implements BodyMethodGeneration { this.lineSuffix = lineSuffix; } - void addXmlResponseBodyCheck(BlockBuilder blockBuilder, Object responseBody, - BodyMatchers bodyMatchers, String responseString, - boolean shouldCommentOutBDDBlocks) { + void addXmlResponseBodyCheck(BlockBuilder blockBuilder, Object responseBody, BodyMatchers bodyMatchers, + String responseString, boolean shouldCommentOutBDDBlocks) { addXmlProcessingLines(blockBuilder, responseString); - Object processedBody = XmlToXPathsConverter.removeMatchingXPaths(responseBody, - bodyMatchers); - List matchers = new XmlToXPathsConverter() - .mapToMatchers(processedBody); + Object processedBody = XmlToXPathsConverter.removeMatchingXPaths(responseBody, bodyMatchers); + List matchers = new XmlToXPathsConverter().mapToMatchers(processedBody); if (bodyMatchers != null && bodyMatchers.hasMatchers()) { matchers.addAll(bodyMatchers.matchers()); } - addBodyMatchingBlock(matchers, blockBuilder, responseBody, - shouldCommentOutBDDBlocks); + addBodyMatchingBlock(matchers, blockBuilder, responseBody, shouldCommentOutBDDBlocks); } - private void addXmlProcessingLines(final BlockBuilder blockBuilder, - String responseString) { - Arrays.asList( - "DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance()", + private void addXmlProcessingLines(final BlockBuilder blockBuilder, String responseString) { + Arrays.asList("DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance()", "builderFactory.setNamespaceAware(true)", "DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder()", - "Document parsedXml = documentBuilder.parse(new InputSource(new StringReader(" - + responseString + ")))") + "Document parsedXml = documentBuilder.parse(new InputSource(new StringReader(" + responseString + ")))") .forEach(it -> { blockBuilder.addLine(it); addColonIfRequired(lineSuffix, blockBuilder); @@ -59,39 +52,31 @@ class XmlBodyVerificationBuilder implements BodyMethodGeneration { @Override public void methodForNullCheck(BodyMatcher bodyMatcher, BlockBuilder bb) { String quotedAndEscapedPath = quotedAndEscaped(bodyMatcher.path()); - String method = "assertThat(nodeFromXPath(parsedXml, " + quotedAndEscapedPath - + ")).isNull()"; + String method = "assertThat(nodeFromXPath(parsedXml, " + quotedAndEscapedPath + ")).isNull()"; bb.addLine(method.replace("$", "\\$")); addColonIfRequired(lineSuffix, bb); } @Override - public void methodForEqualityCheck(BodyMatcher bodyMatcher, BlockBuilder bb, - Object body) { - Object retrievedValue = quotedAndEscaped( - XmlToXPathsConverter.retrieveValue(bodyMatcher, body)); - String comparisonMethod = bodyMatcher.matchingType().equals(MatchingType.EQUALITY) - ? "isEqualTo" : "matches"; - String method = "assertThat(valueFromXPath(parsedXml, " - + quotedAndEscaped(bodyMatcher.path()) + "))." + comparisonMethod + "(" - + retrievedValue + ")"; + public void methodForEqualityCheck(BodyMatcher bodyMatcher, BlockBuilder bb, Object body) { + Object retrievedValue = quotedAndEscaped(XmlToXPathsConverter.retrieveValue(bodyMatcher, body)); + String comparisonMethod = bodyMatcher.matchingType().equals(MatchingType.EQUALITY) ? "isEqualTo" : "matches"; + String method = "assertThat(valueFromXPath(parsedXml, " + quotedAndEscaped(bodyMatcher.path()) + "))." + + comparisonMethod + "(" + retrievedValue + ")"; bb.addLine(method.replace("$", "\\$")); addColonIfRequired(lineSuffix, bb); } @Override - public void methodForCommandExecution(BodyMatcher bodyMatcher, BlockBuilder bb, - Object body) { - Object retrievedValue = quotedAndEscaped( - XmlToXPathsConverter.retrieveValueFromBody(bodyMatcher.path(), body)); + public void methodForCommandExecution(BodyMatcher bodyMatcher, BlockBuilder bb, Object body) { + Object retrievedValue = quotedAndEscaped(XmlToXPathsConverter.retrieveValueFromBody(bodyMatcher.path(), body)); ExecutionProperty property = (ExecutionProperty) bodyMatcher.value(); bb.addLine(property.insertValue(((String) retrievedValue).replace("$", "\\$"))); addColonIfRequired(lineSuffix, bb); } @Override - public void methodForTypeCheck(BodyMatcher bodyMatcher, BlockBuilder bb, - Object copiedBody) { + public void methodForTypeCheck(BodyMatcher bodyMatcher, BlockBuilder bb, Object copiedBody) { throw new UnsupportedOperationException( "The `getNodeValue()` method in `org.w3c.dom.Node` always returns String."); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/XmlImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/XmlImports.java index 5db676c059..95e161cf24 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/XmlImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/XmlImports.java @@ -27,8 +27,8 @@ class XmlImports implements Imports { private final GeneratedClassMetaData generatedClassMetaData; private static final String[] IMPORTS = { "javax.xml.parsers.DocumentBuilder", - "javax.xml.parsers.DocumentBuilderFactory", "org.w3c.dom.Document", - "org.xml.sax.InputSource", "java.io.StringReader" }; + "javax.xml.parsers.DocumentBuilderFactory", "org.w3c.dom.Document", "org.xml.sax.InputSource", + "java.io.StringReader" }; XmlImports(BlockBuilder blockBuilder, GeneratedClassMetaData generatedClassMetaData) { this.blockBuilder = blockBuilder; @@ -37,16 +37,14 @@ class XmlImports implements Imports { @Override public Imports call() { - Arrays.stream(IMPORTS) - .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); + Arrays.stream(IMPORTS).forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } @Override public boolean accept() { - return this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(metadata -> metadata.getConvertedContractWithMetadata().stream() - .anyMatch(SingleContractMetadata::isXml)); + return this.generatedClassMetaData.listOfFiles.stream().anyMatch(metadata -> metadata + .getConvertedContractWithMetadata().stream().anyMatch(SingleContractMetadata::isXml)); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/handlebars/HandlebarsJsonPathHelper.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/handlebars/HandlebarsJsonPathHelper.java index 9760da8c03..331fd7fbdf 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/handlebars/HandlebarsJsonPathHelper.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/handlebars/HandlebarsJsonPathHelper.java @@ -48,8 +48,7 @@ public class HandlebarsJsonPathHelper implements Helper { String jsonPath = options.param(0); Object model = oldContext.get(REQUEST_MODEL_NAME); if (model instanceof TestSideRequestTemplateModel) { - return returnObjectForTest((TestSideRequestTemplateModel) model, - jsonPath); + return returnObjectForTest((TestSideRequestTemplateModel) model, jsonPath); } else if (model instanceof RequestTemplateModel) { return returnObjectForStub(model, jsonPath); @@ -73,20 +72,16 @@ public class HandlebarsJsonPathHelper implements Helper { } Map map = (Map) model; - return map.values().stream() - .anyMatch(o -> o instanceof TestSideRequestTemplateModel); + return map.values().stream().anyMatch(o -> o instanceof TestSideRequestTemplateModel); } private Object returnObjectForStub(Object model, String jsonPath) { - DocumentContext documentContext = JsonPath - .parse(((RequestTemplateModel) model).getBody()); + DocumentContext documentContext = JsonPath.parse(((RequestTemplateModel) model).getBody()); return documentContext.read(jsonPath); } - private Object returnObjectForTest(TestSideRequestTemplateModel model, - String jsonPath) { - String body = removeSurroundingQuotes(model.getEscapedBody()).replace("\\\"", - "\""); + private Object returnObjectForTest(TestSideRequestTemplateModel model, String jsonPath) { + String body = removeSurroundingQuotes(model.getEscapedBody()).replace("\\\"", "\""); DocumentContext documentContext = JsonPath.parse(body); Object value = documentContext.read(jsonPath); return processTestResponseValue(value); 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 04ead5831d..caa5edd83b 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 @@ -42,8 +42,7 @@ import org.springframework.cloud.contract.verifier.config.TestFramework; @Deprecated public class BaseImportProvider { - private static final ImportDefinitions GENERAL_IMPORTS = new ImportDefinitions( - emptyList(), + private static final ImportDefinitions GENERAL_IMPORTS = new ImportDefinitions(emptyList(), Arrays.asList( "org.springframework.cloud.contract.verifier.assertion.SpringCloudContractAssertions.assertThat", "org.springframework.cloud.contract.verifier.util.ContractVerifierUtil.*")); @@ -54,10 +53,8 @@ public class BaseImportProvider { static { TEST_FRAMEWORK_SPECIFIC_IMPORTS = new HashMap<>(5); - TEST_FRAMEWORK_SPECIFIC_IMPORTS.put(JUNIT, - new ImportDefinitions(singletonList("org.junit.Test"))); - TEST_FRAMEWORK_SPECIFIC_IMPORTS.put(JUNIT5, - new ImportDefinitions(singletonList("org.junit.jupiter.api.Test"))); + TEST_FRAMEWORK_SPECIFIC_IMPORTS.put(JUNIT, new ImportDefinitions(singletonList("org.junit.Test"))); + TEST_FRAMEWORK_SPECIFIC_IMPORTS.put(JUNIT5, new ImportDefinitions(singletonList("org.junit.jupiter.api.Test"))); TEST_FRAMEWORK_SPECIFIC_IMPORTS.put(SPOCK, new ImportDefinitions(emptyList())); TEST_FRAMEWORK_SPECIFIC_IMPORTS.put(TESTNG, new ImportDefinitions(singletonList("org.testng.annotations.Test"))); @@ -88,8 +85,7 @@ public class BaseImportProvider { */ public static List getStaticImports(TestFramework testFramework) { List result = new ArrayList<>(GENERAL_IMPORTS.getStaticImports()); - result.addAll( - TEST_FRAMEWORK_SPECIFIC_IMPORTS.get(testFramework).getStaticImports()); + result.addAll(TEST_FRAMEWORK_SPECIFIC_IMPORTS.get(testFramework).getStaticImports()); return result; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/imports/HttpImportProvider.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/imports/HttpImportProvider.java index b7179c85d2..7a22ef3714 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/imports/HttpImportProvider.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/imports/HttpImportProvider.java @@ -61,69 +61,57 @@ public class HttpImportProvider { FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(TESTNG, JAXRSCLIENT), new ImportDefinitions(singletonList("javax.ws.rs.core.Response"))); FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(JUNIT, MOCKMVC), - new ImportDefinitions(Arrays.asList(restAssuredPackage - + ".module.mockmvc.specification.MockMvcRequestSpecification", - restAssuredPackage + ".response.ResponseOptions"))); + new ImportDefinitions( + Arrays.asList(restAssuredPackage + ".module.mockmvc.specification.MockMvcRequestSpecification", + restAssuredPackage + ".response.ResponseOptions"))); FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(JUNIT, WEBTESTCLIENT), new ImportDefinitions(Arrays.asList( "io.restassured.module.webtestclient.specification.WebTestClientRequestSpecification", "io.restassured.module.webtestclient.response.WebTestClientResponse"))); FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(JUNIT5, MOCKMVC), - new ImportDefinitions(Arrays.asList(restAssuredPackage - + ".module.mockmvc.specification.MockMvcRequestSpecification", - restAssuredPackage + ".response.ResponseOptions"))); + new ImportDefinitions( + Arrays.asList(restAssuredPackage + ".module.mockmvc.specification.MockMvcRequestSpecification", + restAssuredPackage + ".response.ResponseOptions"))); FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(JUNIT5, WEBTESTCLIENT), new ImportDefinitions(Arrays.asList( "io.restassured.module.webtestclient.specification.WebTestClientRequestSpecification", "io.restassured.module.webtestclient.response.WebTestClientResponse"))); FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(TESTNG, MOCKMVC), - new ImportDefinitions(Arrays.asList(restAssuredPackage - + ".module.mockmvc.specification.MockMvcRequestSpecification", - restAssuredPackage + ".response.ResponseOptions"))); + new ImportDefinitions( + Arrays.asList(restAssuredPackage + ".module.mockmvc.specification.MockMvcRequestSpecification", + restAssuredPackage + ".response.ResponseOptions"))); FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(TESTNG, WEBTESTCLIENT), new ImportDefinitions(Arrays.asList( "io.restassured.module.webtestclient.specification.WebTestClientRequestSpecification", "io.restassured.module.webtestclient.response.WebTestClientResponse"))); FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(JUNIT, EXPLICIT), - new ImportDefinitions(Arrays.asList( - restAssuredPackage + ".specification.RequestSpecification", + new ImportDefinitions(Arrays.asList(restAssuredPackage + ".specification.RequestSpecification", restAssuredPackage + ".response.Response"))); FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(JUNIT5, EXPLICIT), - new ImportDefinitions(Arrays.asList( - restAssuredPackage + ".specification.RequestSpecification", + new ImportDefinitions(Arrays.asList(restAssuredPackage + ".specification.RequestSpecification", restAssuredPackage + ".response.Response"))); FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(TESTNG, EXPLICIT), - new ImportDefinitions(Arrays.asList( - restAssuredPackage + ".specification.RequestSpecification", + new ImportDefinitions(Arrays.asList(restAssuredPackage + ".specification.RequestSpecification", restAssuredPackage + ".response.Response"))); - FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(SPOCK, JAXRSCLIENT), - new ImportDefinitions(emptyList())); - FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(CUSTOM, JAXRSCLIENT), - new ImportDefinitions(emptyList())); - FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(SPOCK, MOCKMVC), - new ImportDefinitions(emptyList())); - FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(CUSTOM, MOCKMVC), - new ImportDefinitions(emptyList())); - FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(SPOCK, EXPLICIT), - new ImportDefinitions(emptyList())); - FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(CUSTOM, EXPLICIT), - new ImportDefinitions(emptyList())); - FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(SPOCK, WEBTESTCLIENT), - new ImportDefinitions(emptyList())); + FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(SPOCK, JAXRSCLIENT), new ImportDefinitions(emptyList())); + FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(CUSTOM, JAXRSCLIENT), new ImportDefinitions(emptyList())); + FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(SPOCK, MOCKMVC), new ImportDefinitions(emptyList())); + FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(CUSTOM, MOCKMVC), new ImportDefinitions(emptyList())); + FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(SPOCK, EXPLICIT), new ImportDefinitions(emptyList())); + FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(CUSTOM, EXPLICIT), new ImportDefinitions(emptyList())); + FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(SPOCK, WEBTESTCLIENT), new ImportDefinitions(emptyList())); FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.put(Pair.of(CUSTOM, WEBTESTCLIENT), new ImportDefinitions(emptyList())); TEST_MODE_SPECIFIC_IMPORTS = new HashMap<>(4); - TEST_MODE_SPECIFIC_IMPORTS.put(JAXRSCLIENT, new ImportDefinitions(emptyList(), - singletonList("javax.ws.rs.client.Entity.*"))); - TEST_MODE_SPECIFIC_IMPORTS.put(MOCKMVC, - new ImportDefinitions(emptyList(), singletonList( - restAssuredPackage + ".module.mockmvc.RestAssuredMockMvc.*"))); - TEST_MODE_SPECIFIC_IMPORTS.put(EXPLICIT, new ImportDefinitions(emptyList(), - singletonList(restAssuredPackage + ".RestAssured.*"))); - TEST_MODE_SPECIFIC_IMPORTS.put(WEBTESTCLIENT, - new ImportDefinitions(emptyList(), singletonList( - "io.restassured.module.webtestclient.RestAssuredWebTestClient.*"))); + TEST_MODE_SPECIFIC_IMPORTS.put(JAXRSCLIENT, + new ImportDefinitions(emptyList(), singletonList("javax.ws.rs.client.Entity.*"))); + TEST_MODE_SPECIFIC_IMPORTS.put(MOCKMVC, new ImportDefinitions(emptyList(), + singletonList(restAssuredPackage + ".module.mockmvc.RestAssuredMockMvc.*"))); + TEST_MODE_SPECIFIC_IMPORTS.put(EXPLICIT, + new ImportDefinitions(emptyList(), singletonList(restAssuredPackage + ".RestAssured.*"))); + TEST_MODE_SPECIFIC_IMPORTS.put(WEBTESTCLIENT, new ImportDefinitions(emptyList(), + singletonList("io.restassured.module.webtestclient.RestAssuredWebTestClient.*"))); } /** @@ -134,10 +122,8 @@ public class HttpImportProvider { * @return list of imports */ public List getImports(TestFramework testFramework, TestMode testMode) { - List result = new ArrayList<>( - TEST_MODE_SPECIFIC_IMPORTS.get(testMode).getImports()); - result.addAll(FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS - .get(Pair.of(testFramework, testMode)).getImports()); + List result = new ArrayList<>(TEST_MODE_SPECIFIC_IMPORTS.get(testMode).getImports()); + result.addAll(FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.get(Pair.of(testFramework, testMode)).getImports()); return result; } @@ -149,10 +135,9 @@ public class HttpImportProvider { * @return list of static imports */ public List getStaticImports(TestFramework testFramework, TestMode testMode) { - List result = new ArrayList<>( - TEST_MODE_SPECIFIC_IMPORTS.get(testMode).getStaticImports()); - result.addAll(FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS - .get(Pair.of(testFramework, testMode)).getStaticImports()); + List result = new ArrayList<>(TEST_MODE_SPECIFIC_IMPORTS.get(testMode).getStaticImports()); + result.addAll( + FRAMEWORK_AND_TEST_MODE_SPECIFIC_IMPORTS.get(Pair.of(testFramework, testMode)).getStaticImports()); return result; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/ContractVerifierConfigProperties.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/ContractVerifierConfigProperties.java index c14e5ae7e7..61c0c89203 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/ContractVerifierConfigProperties.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/ContractVerifierConfigProperties.java @@ -32,8 +32,7 @@ import org.apache.commons.logging.LogFactory; */ public class ContractVerifierConfigProperties { - private static final Log log = LogFactory - .getLog(ContractVerifierConfigProperties.class); + private static final Log log = LogFactory.getLog(ContractVerifierConfigProperties.class); /** * For which unit test library tests should be generated. diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/TestFramework.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/TestFramework.java index 1cc4a61c3c..fade0df5a4 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/TestFramework.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/TestFramework.java @@ -74,9 +74,8 @@ public enum TestFramework { * @param orderAnnotation order annotation */ @Deprecated - TestFramework(final String classModifier, final String methodModifier, - final String lineSuffix, final String classExtension, - final String classNameSuffix, final String ignoreClass, + TestFramework(final String classModifier, final String methodModifier, final String lineSuffix, + final String classExtension, final String classNameSuffix, final String ignoreClass, final List orderAnnotationImports, final String orderAnnotation) { testFrameworkDefinition = new TestFrameworkDefinition() { @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/framework/JUnit5Definition.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/framework/JUnit5Definition.java index f462fb1cd3..38122edf69 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/framework/JUnit5Definition.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/framework/JUnit5Definition.java @@ -60,8 +60,7 @@ public class JUnit5Definition implements TestFrameworkDefinition { @Override public List getOrderAnnotationImports() { - return Arrays.asList("org.junit.jupiter.api.TestMethodOrder", - "org.junit.jupiter.api.MethodOrderer"); + return Arrays.asList("org.junit.jupiter.api.TestMethodOrder", "org.junit.jupiter.api.MethodOrderer"); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/framework/JUnitDefinition.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/framework/JUnitDefinition.java index 9a81aa579b..d0f0beba85 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/framework/JUnitDefinition.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/framework/JUnitDefinition.java @@ -61,8 +61,7 @@ public class JUnitDefinition implements TestFrameworkDefinition { @Override public List getOrderAnnotationImports() { - return new ArrayList(Arrays.asList("org.junit.FixMethodOrder", - "org.junit.runners.MethodSorters")); + return new ArrayList(Arrays.asList("org.junit.FixMethodOrder", "org.junit.runners.MethodSorters")); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/ToYamlConverter.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/ToYamlConverter.java index e2a98d4b39..501d57173a 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/ToYamlConverter.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/ToYamlConverter.java @@ -50,8 +50,7 @@ public final class ToYamlConverter { private static final List CONTRACT_CONVERTERS = converters(); - protected static void doReplaceContractWithYaml(ContractConverter converter, - File file) { + protected static void doReplaceContractWithYaml(ContractConverter converter, File file) { if (log.isDebugEnabled()) { log.debug("Will replace contract [{}] with a YAML version", file.getName()); } @@ -59,13 +58,11 @@ public final class ToYamlConverter { // target/copied_contracts/contracts/foo/baz/bar.groovy Collection collection = converter.convertFrom(file); if (log.isDebugEnabled()) { - log.debug("Converted file [{}] to collection of [{}] contracts", file, - collection.size()); + log.debug("Converted file [{}] to collection of [{}] contracts", file, collection.size()); } List yamls = yamlContractConverter.convertTo(collection); if (log.isDebugEnabled()) { - log.debug("Converted collection of [{}] contracts to [{}] YAML contracts", - collection.size(), yamls.size()); + log.debug("Converted collection of [{}] contracts to [{}] YAML contracts", collection.size(), yamls.size()); } // rm target/copied_contracts/contracts/foo/baz/bar.groovy file.delete(); @@ -84,8 +81,7 @@ public final class ToYamlConverter { throw new RuntimeException(e); } if (log.isDebugEnabled()) { - log.debug("Written file [{}] with YAML contract definition", - ymlContractVersion); + log.debug("Written file [{}] with YAML contract definition", ymlContractVersion); } }); } @@ -100,10 +96,8 @@ public final class ToYamlConverter { public static void replaceContractWithYaml(File baseDir) { try { Files.walk(baseDir.toPath()).map(Path::toFile) - .forEach(file -> CONTRACT_CONVERTERS.stream() - .filter(converter -> converter.isAccepted(file)).findFirst() - .ifPresent(converter -> doReplaceContractWithYaml(converter, - file))); + .forEach(file -> CONTRACT_CONVERTERS.stream().filter(converter -> converter.isAccepted(file)) + .findFirst().ifPresent(converter -> doReplaceContractWithYaml(converter, file))); } catch (IOException e) { throw new RuntimeException(e); @@ -111,8 +105,7 @@ public final class ToYamlConverter { } private static List converters() { - List converters = SpringFactoriesLoader - .loadFactories(ContractConverter.class, null); + List converters = SpringFactoriesLoader.loadFactories(ContractConverter.class, null); converters.add(YamlContractConverter.INSTANCE); converters.add(ContractVerifierDslConverter.INSTANCE); return converters; diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/YamlContract.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/YamlContract.java index b53942d0dd..bfaaf83f4f 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/YamlContract.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/YamlContract.java @@ -66,22 +66,18 @@ public class YamlContract { return false; } YamlContract that = (YamlContract) o; - return ignored == that.ignored && inProgress == that.inProgress - && Objects.equals(this.request, that.request) - && Objects.equals(this.response, that.response) - && Objects.equals(this.input, that.input) + return ignored == that.ignored && inProgress == that.inProgress && Objects.equals(this.request, that.request) + && Objects.equals(this.response, that.response) && Objects.equals(this.input, that.input) && Objects.equals(this.outputMessage, that.outputMessage) - && Objects.equals(this.description, that.description) - && Objects.equals(this.label, that.label) - && Objects.equals(this.name, that.name) - && Objects.equals(this.priority, that.priority) + && Objects.equals(this.description, that.description) && Objects.equals(this.label, that.label) + && Objects.equals(this.name, that.name) && Objects.equals(this.priority, that.priority) && this.metadata.equals(that.metadata); } @Override public int hashCode() { - return Objects.hash(request, response, input, outputMessage, description, label, - name, priority, ignored, inProgress, metadata); + return Objects.hash(request, response, input, outputMessage, description, label, name, priority, ignored, + inProgress, metadata); } public static class Request { @@ -117,33 +113,27 @@ public class YamlContract { return false; } Request request = (Request) o; - return Objects.equals(method, request.method) - && Objects.equals(url, request.url) + return Objects.equals(method, request.method) && Objects.equals(url, request.url) && Objects.equals(urlPath, request.urlPath) && Objects.equals(queryParameters, request.queryParameters) - && Objects.equals(headers, request.headers) - && Objects.equals(cookies, request.cookies) - && Objects.equals(body, request.body) - && Objects.equals(bodyFromFile, request.bodyFromFile) + && Objects.equals(headers, request.headers) && Objects.equals(cookies, request.cookies) + && Objects.equals(body, request.body) && Objects.equals(bodyFromFile, request.bodyFromFile) && Objects.equals(bodyFromFileAsBytes, request.bodyFromFileAsBytes) - && Objects.equals(matchers, request.matchers) - && Objects.equals(multipart, request.multipart); + && Objects.equals(matchers, request.matchers) && Objects.equals(multipart, request.multipart); } @Override public int hashCode() { - return Objects.hash(method, url, urlPath, queryParameters, headers, cookies, - body, bodyFromFile, bodyFromFileAsBytes, matchers, multipart); + return Objects.hash(method, url, urlPath, queryParameters, headers, cookies, body, bodyFromFile, + bodyFromFileAsBytes, matchers, multipart); } @Override public String toString() { - return "Request{" + "method='" + method + '\'' + ", url='" + url + '\'' - + ", urlPath='" + urlPath + '\'' + ", queryParameters=" - + queryParameters + ", headers=" + headers + ", cookies=" + cookies - + ", body=" + body + ", bodyFromFile='" + bodyFromFile + '\'' - + ", bodyFromFileAsBytes='" + bodyFromFileAsBytes + '\'' - + ", matchers=" + matchers + ", multipart=" + multipart + '}'; + return "Request{" + "method='" + method + '\'' + ", url='" + url + '\'' + ", urlPath='" + urlPath + '\'' + + ", queryParameters=" + queryParameters + ", headers=" + headers + ", cookies=" + cookies + + ", body=" + body + ", bodyFromFile='" + bodyFromFile + '\'' + ", bodyFromFileAsBytes='" + + bodyFromFileAsBytes + '\'' + ", matchers=" + matchers + ", multipart=" + multipart + '}'; } } @@ -163,8 +153,7 @@ public class YamlContract { return false; } Multipart multipart = (Multipart) o; - return Objects.equals(params, multipart.params) - && Objects.equals(named, multipart.named); + return Objects.equals(params, multipart.params) && Objects.equals(named, multipart.named); } @Override @@ -208,12 +197,10 @@ public class YamlContract { return false; } Named named = (Named) o; - return Objects.equals(paramName, named.paramName) - && Objects.equals(fileName, named.fileName) + return Objects.equals(paramName, named.paramName) && Objects.equals(fileName, named.fileName) && Objects.equals(fileContent, named.fileContent) && Objects.equals(fileContentAsBytes, named.fileContentAsBytes) - && Objects.equals(fileContentFromFileAsBytes, - named.fileContentFromFileAsBytes) + && Objects.equals(fileContentFromFileAsBytes, named.fileContentFromFileAsBytes) && Objects.equals(contentType, named.contentType) && Objects.equals(fileNameCommand, named.fileNameCommand) && Objects.equals(fileContentCommand, named.fileContentCommand) @@ -222,21 +209,17 @@ public class YamlContract { @Override public int hashCode() { - return Objects.hash(paramName, fileName, fileContent, fileContentAsBytes, - fileContentFromFileAsBytes, contentType, fileNameCommand, - fileContentCommand, contentTypeCommand); + return Objects.hash(paramName, fileName, fileContent, fileContentAsBytes, fileContentFromFileAsBytes, + contentType, fileNameCommand, fileContentCommand, contentTypeCommand); } @Override public String toString() { - return "Named{" + "paramName='" + paramName + '\'' + ", fileName='" + fileName - + '\'' + ", fileContent='" + fileContent + '\'' - + ", fileContentAsBytes='" + fileContentAsBytes + '\'' - + ", fileContentFromFileAsBytes='" + fileContentFromFileAsBytes + '\'' - + ", contentType='" + contentType + '\'' + ", fileNameCommand='" - + fileNameCommand + '\'' + ", fileContentCommand='" - + fileContentCommand + '\'' + ", contentTypeCommand='" - + contentTypeCommand + '\'' + '}'; + return "Named{" + "paramName='" + paramName + '\'' + ", fileName='" + fileName + '\'' + ", fileContent='" + + fileContent + '\'' + ", fileContentAsBytes='" + fileContentAsBytes + '\'' + + ", fileContentFromFileAsBytes='" + fileContentFromFileAsBytes + '\'' + ", contentType='" + + contentType + '\'' + ", fileNameCommand='" + fileNameCommand + '\'' + ", fileContentCommand='" + + fileContentCommand + '\'' + ", contentTypeCommand='" + contentTypeCommand + '\'' + '}'; } } @@ -265,10 +248,8 @@ public class YamlContract { } StubMatchers that = (StubMatchers) o; return Objects.equals(url, that.url) && Objects.equals(body, that.body) - && Objects.equals(headers, that.headers) - && Objects.equals(queryParameters, that.queryParameters) - && Objects.equals(cookies, that.cookies) - && Objects.equals(multipart, that.multipart); + && Objects.equals(headers, that.headers) && Objects.equals(queryParameters, that.queryParameters) + && Objects.equals(cookies, that.cookies) && Objects.equals(multipart, that.multipart); } @Override @@ -278,9 +259,8 @@ public class YamlContract { @Override public String toString() { - return "StubMatchers{" + "url=" + url + ", body=" + body + ", headers=" - + headers + ", queryParameters=" + queryParameters + ", cookies=" - + cookies + ", multipart=" + multipart + '}'; + return "StubMatchers{" + "url=" + url + ", body=" + body + ", headers=" + headers + ", queryParameters=" + + queryParameters + ", cookies=" + cookies + ", multipart=" + multipart + '}'; } } @@ -290,10 +270,8 @@ public class YamlContract { equal_to, containing, matching, not_matching, equal_to_json, equal_to_xml, absent, binary_equal_to; static MatchingType from(String string) { - return Arrays.stream(values()) - .filter(matchingType -> matchingType.name().replace("_", "") - .equalsIgnoreCase(string.toLowerCase().replace("_", ""))) - .findFirst().orElse(null); + return Arrays.stream(values()).filter(matchingType -> matchingType.name().replace("_", "") + .equalsIgnoreCase(string.toLowerCase().replace("_", ""))).findFirst().orElse(null); } } @@ -323,24 +301,20 @@ public class YamlContract { return false; } BodyStubMatcher that = (BodyStubMatcher) o; - return Objects.equals(path, that.path) && type == that.type - && Objects.equals(value, that.value) && predefined == that.predefined - && Objects.equals(minOccurrence, that.minOccurrence) - && Objects.equals(maxOccurrence, that.maxOccurrence) - && regexType == that.regexType; + return Objects.equals(path, that.path) && type == that.type && Objects.equals(value, that.value) + && predefined == that.predefined && Objects.equals(minOccurrence, that.minOccurrence) + && Objects.equals(maxOccurrence, that.maxOccurrence) && regexType == that.regexType; } @Override public int hashCode() { - return Objects.hash(path, type, value, predefined, minOccurrence, - maxOccurrence, regexType); + return Objects.hash(path, type, value, predefined, minOccurrence, maxOccurrence, regexType); } @Override public String toString() { - return "BodyStubMatcher{" + "path='" + path + '\'' + ", type=" + type - + ", value='" + value + '\'' + ", predefined=" + predefined - + ", minOccurrence=" + minOccurrence + ", maxOccurrence=" + return "BodyStubMatcher{" + "path='" + path + '\'' + ", type=" + type + ", value='" + value + '\'' + + ", predefined=" + predefined + ", minOccurrence=" + minOccurrence + ", maxOccurrence=" + maxOccurrence + ", regexType=" + regexType + '}'; } @@ -367,8 +341,7 @@ public class YamlContract { return false; } MultipartStubMatcher that = (MultipartStubMatcher) o; - return Objects.equals(params, that.params) - && Objects.equals(named, that.named); + return Objects.equals(params, that.params) && Objects.equals(named, that.named); } @Override @@ -378,8 +351,7 @@ public class YamlContract { @Override public String toString() { - return "MultipartStubMatcher{" + "params=" + params + ", named=" + named - + '}'; + return "MultipartStubMatcher{" + "params=" + params + ", named=" + named + '}'; } } @@ -403,10 +375,8 @@ public class YamlContract { return false; } MultipartNamedStubMatcher that = (MultipartNamedStubMatcher) o; - return Objects.equals(paramName, that.paramName) - && Objects.equals(fileName, that.fileName) - && Objects.equals(fileContent, that.fileContent) - && Objects.equals(contentType, that.contentType); + return Objects.equals(paramName, that.paramName) && Objects.equals(fileName, that.fileName) + && Objects.equals(fileContent, that.fileContent) && Objects.equals(contentType, that.contentType); } @Override @@ -416,9 +386,8 @@ public class YamlContract { @Override public String toString() { - return "MultipartNamedStubMatcher{" + "paramName='" + paramName + '\'' - + ", fileName=" + fileName + ", fileContent=" + fileContent - + ", contentType=" + contentType + '}'; + return "MultipartNamedStubMatcher{" + "paramName='" + paramName + '\'' + ", fileName=" + fileName + + ", fileContent=" + fileContent + ", contentType=" + contentType + '}'; } } @@ -455,8 +424,7 @@ public class YamlContract { @Override public String toString() { - return "ValueMatcher{" + "regex='" + regex + '\'' + ", predefined=" - + predefined + '}'; + return "ValueMatcher{" + "regex='" + regex + '\'' + ", predefined=" + predefined + '}'; } } @@ -486,25 +454,22 @@ public class YamlContract { return false; } BodyTestMatcher that = (BodyTestMatcher) o; - return Objects.equals(path, that.path) && type == that.type - && Objects.equals(value, that.value) + return Objects.equals(path, that.path) && type == that.type && Objects.equals(value, that.value) && Objects.equals(minOccurrence, that.minOccurrence) - && Objects.equals(maxOccurrence, that.maxOccurrence) - && predefined == that.predefined && regexType == that.regexType; + && Objects.equals(maxOccurrence, that.maxOccurrence) && predefined == that.predefined + && regexType == that.regexType; } @Override public int hashCode() { - return Objects.hash(path, type, value, minOccurrence, maxOccurrence, - predefined, regexType); + return Objects.hash(path, type, value, minOccurrence, maxOccurrence, predefined, regexType); } @Override public String toString() { - return "BodyTestMatcher{" + "path='" + path + '\'' + ", type=" + type - + ", value='" + value + '\'' + ", minOccurrence=" + minOccurrence - + ", maxOccurrence=" + maxOccurrence + ", predefined=" + predefined - + ", regexType=" + regexType + '}'; + return "BodyTestMatcher{" + "path='" + path + '\'' + ", type=" + type + ", value='" + value + '\'' + + ", minOccurrence=" + minOccurrence + ", maxOccurrence=" + maxOccurrence + ", predefined=" + + predefined + ", regexType=" + regexType + '}'; } } @@ -530,10 +495,8 @@ public class YamlContract { return false; } KeyValueMatcher that = (KeyValueMatcher) o; - return Objects.equals(key, that.key) && Objects.equals(regex, that.regex) - && predefined == that.predefined - && Objects.equals(command, that.command) - && regexType == that.regexType; + return Objects.equals(key, that.key) && Objects.equals(regex, that.regex) && predefined == that.predefined + && Objects.equals(command, that.command) && regexType == that.regexType; } @Override @@ -543,9 +506,8 @@ public class YamlContract { @Override public String toString() { - return "KeyValueMatcher{" + "key='" + key + '\'' + ", regex='" + regex + '\'' - + ", predefined=" + predefined + ", command='" + command + '\'' - + ", regexType=" + regexType + '}'; + return "KeyValueMatcher{" + "key='" + key + '\'' + ", regex='" + regex + '\'' + ", predefined=" + predefined + + ", command='" + command + '\'' + ", regexType=" + regexType + '}'; } } @@ -571,8 +533,7 @@ public class YamlContract { return false; } QueryParameterMatcher that = (QueryParameterMatcher) o; - return Objects.equals(key, that.key) && type == that.type - && Objects.equals(value, that.value); + return Objects.equals(key, that.key) && type == that.type && Objects.equals(value, that.value); } @Override @@ -582,8 +543,7 @@ public class YamlContract { @Override public String toString() { - return "QueryParameterMatcher{" + "key='" + key + '\'' + ", type=" + type - + ", value=" + value + '}'; + return "QueryParameterMatcher{" + "key='" + key + '\'' + ", type=" + type + ", value=" + value + '}'; } } @@ -610,8 +570,8 @@ public class YamlContract { } TestHeaderMatcher that = (TestHeaderMatcher) o; return Objects.equals(key, that.key) && Objects.equals(regex, that.regex) - && Objects.equals(command, that.command) - && predefined == that.predefined && regexType == that.regexType; + && Objects.equals(command, that.command) && predefined == that.predefined + && regexType == that.regexType; } @Override @@ -621,9 +581,8 @@ public class YamlContract { @Override public String toString() { - return "TestHeaderMatcher{" + "key='" + key + '\'' + ", regex='" + regex - + '\'' + ", command='" + command + '\'' + ", predefined=" + predefined - + ", regexType=" + regexType + '}'; + return "TestHeaderMatcher{" + "key='" + key + '\'' + ", regex='" + regex + '\'' + ", command='" + command + + '\'' + ", predefined=" + predefined + ", regexType=" + regexType + '}'; } } @@ -650,8 +609,8 @@ public class YamlContract { } TestCookieMatcher that = (TestCookieMatcher) o; return Objects.equals(key, that.key) && Objects.equals(regex, that.regex) - && Objects.equals(command, that.command) - && predefined == that.predefined && regexType == that.regexType; + && Objects.equals(command, that.command) && predefined == that.predefined + && regexType == that.regexType; } @Override @@ -661,9 +620,8 @@ public class YamlContract { @Override public String toString() { - return "TestCookieMatcher{" + "key='" + key + '\'' + ", regex='" + regex - + '\'' + ", command='" + command + '\'' + ", predefined=" + predefined - + ", regexType=" + regexType + '}'; + return "TestCookieMatcher{" + "key='" + key + '\'' + ", regex='" + regex + '\'' + ", command='" + command + + '\'' + ", predefined=" + predefined + ", regexType=" + regexType + '}'; } } @@ -716,28 +674,25 @@ public class YamlContract { } Response response = (Response) o; return status == response.status && Objects.equals(headers, response.headers) - && Objects.equals(cookies, response.cookies) - && Objects.equals(body, response.body) + && Objects.equals(cookies, response.cookies) && Objects.equals(body, response.body) && Objects.equals(bodyFromFile, response.bodyFromFile) && Objects.equals(bodyFromFileAsBytes, response.bodyFromFileAsBytes) - && Objects.equals(matchers, response.matchers) - && Objects.equals(async, response.async) && Objects.equals( - fixedDelayMilliseconds, response.fixedDelayMilliseconds); + && Objects.equals(matchers, response.matchers) && Objects.equals(async, response.async) + && Objects.equals(fixedDelayMilliseconds, response.fixedDelayMilliseconds); } @Override public int hashCode() { - return Objects.hash(status, headers, cookies, body, bodyFromFile, - bodyFromFileAsBytes, matchers, async, fixedDelayMilliseconds); + return Objects.hash(status, headers, cookies, body, bodyFromFile, bodyFromFileAsBytes, matchers, async, + fixedDelayMilliseconds); } @Override public String toString() { - return "Response{" + "status=" + status + ", headers=" + headers - + ", cookies=" + cookies + ", body=" + body + ", bodyFromFile='" - + bodyFromFile + '\'' + ", bodyFromFileAsBytes='" - + bodyFromFileAsBytes + '\'' + ", matchers=" + matchers + ", async=" - + async + ", fixedDelayMilliseconds=" + fixedDelayMilliseconds + '}'; + return "Response{" + "status=" + status + ", headers=" + headers + ", cookies=" + cookies + ", body=" + body + + ", bodyFromFile='" + bodyFromFile + '\'' + ", bodyFromFileAsBytes='" + bodyFromFileAsBytes + '\'' + + ", matchers=" + matchers + ", async=" + async + ", fixedDelayMilliseconds=" + + fixedDelayMilliseconds + '}'; } } @@ -759,8 +714,7 @@ public class YamlContract { return false; } TestMatchers that = (TestMatchers) o; - return Objects.equals(body, that.body) - && Objects.equals(headers, that.headers) + return Objects.equals(body, that.body) && Objects.equals(headers, that.headers) && Objects.equals(cookies, that.cookies); } @@ -771,8 +725,7 @@ public class YamlContract { @Override public String toString() { - return "TestMatchers{" + "body=" + body + ", headers=" + headers - + ", cookies=" + cookies + '}'; + return "TestMatchers{" + "body=" + body + ", headers=" + headers + ", cookies=" + cookies + '}'; } } @@ -804,32 +757,26 @@ public class YamlContract { return false; } Input input = (Input) o; - return Objects.equals(messageFrom, input.messageFrom) - && Objects.equals(triggeredBy, input.triggeredBy) + return Objects.equals(messageFrom, input.messageFrom) && Objects.equals(triggeredBy, input.triggeredBy) && Objects.equals(messageHeaders, input.messageHeaders) && Objects.equals(messageBody, input.messageBody) && Objects.equals(messageBodyFromFile, input.messageBodyFromFile) - && Objects.equals(messageBodyFromFileAsBytes, - input.messageBodyFromFileAsBytes) - && Objects.equals(assertThat, input.assertThat) - && Objects.equals(matchers, input.matchers); + && Objects.equals(messageBodyFromFileAsBytes, input.messageBodyFromFileAsBytes) + && Objects.equals(assertThat, input.assertThat) && Objects.equals(matchers, input.matchers); } @Override public int hashCode() { - return Objects.hash(messageFrom, triggeredBy, messageHeaders, messageBody, - messageBodyFromFile, messageBodyFromFileAsBytes, assertThat, - matchers); + return Objects.hash(messageFrom, triggeredBy, messageHeaders, messageBody, messageBodyFromFile, + messageBodyFromFileAsBytes, assertThat, matchers); } @Override public String toString() { - return "Input{" + "messageFrom='" + messageFrom + '\'' + ", triggeredBy='" - + triggeredBy + '\'' + ", messageHeaders=" + messageHeaders - + ", messageBody=" + messageBody + ", messageBodyFromFile='" - + messageBodyFromFile + '\'' + ", messageBodyFromFileAsBytes='" - + messageBodyFromFileAsBytes + '\'' + ", assertThat='" + assertThat - + '\'' + ", matchers=" + matchers + '}'; + return "Input{" + "messageFrom='" + messageFrom + '\'' + ", triggeredBy='" + triggeredBy + '\'' + + ", messageHeaders=" + messageHeaders + ", messageBody=" + messageBody + ", messageBodyFromFile='" + + messageBodyFromFile + '\'' + ", messageBodyFromFileAsBytes='" + messageBodyFromFileAsBytes + '\'' + + ", assertThat='" + assertThat + '\'' + ", matchers=" + matchers + '}'; } } @@ -859,28 +806,22 @@ public class YamlContract { return false; } OutputMessage that = (OutputMessage) o; - return Objects.equals(sentTo, that.sentTo) - && Objects.equals(headers, that.headers) - && Objects.equals(body, that.body) - && Objects.equals(bodyFromFile, that.bodyFromFile) + return Objects.equals(sentTo, that.sentTo) && Objects.equals(headers, that.headers) + && Objects.equals(body, that.body) && Objects.equals(bodyFromFile, that.bodyFromFile) && Objects.equals(bodyFromFileAsBytes, that.bodyFromFileAsBytes) - && Objects.equals(assertThat, that.assertThat) - && Objects.equals(matchers, that.matchers); + && Objects.equals(assertThat, that.assertThat) && Objects.equals(matchers, that.matchers); } @Override public int hashCode() { - return Objects.hash(sentTo, headers, body, bodyFromFile, bodyFromFileAsBytes, - assertThat, matchers); + return Objects.hash(sentTo, headers, body, bodyFromFile, bodyFromFileAsBytes, assertThat, matchers); } @Override public String toString() { - return "OutputMessage{" + "sentTo='" + sentTo + '\'' + ", headers=" + headers - + ", body=" + body + ", bodyFromFile='" + bodyFromFile + '\'' - + ", bodyFromFileAsBytes='" + bodyFromFileAsBytes + '\'' - + ", assertThat='" + assertThat + '\'' + ", matchers=" + matchers - + '}'; + return "OutputMessage{" + "sentTo='" + sentTo + '\'' + ", headers=" + headers + ", body=" + body + + ", bodyFromFile='" + bodyFromFile + '\'' + ", bodyFromFileAsBytes='" + bodyFromFileAsBytes + '\'' + + ", assertThat='" + assertThat + '\'' + ", matchers=" + matchers + '}'; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/YamlContractConverter.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/YamlContractConverter.java index 2466c452e7..9b7dee667a 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/YamlContractConverter.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/YamlContractConverter.java @@ -44,8 +44,7 @@ import static java.util.stream.Collectors.toMap; */ public class YamlContractConverter implements ContractConverter> { - private static final Logger log = LoggerFactory - .getLogger(YamlContractConverter.class); + private static final Logger log = LoggerFactory.getLogger(YamlContractConverter.class); public static final YamlContractConverter INSTANCE = new YamlContractConverter(); @@ -102,8 +101,7 @@ public class YamlContractConverter implements ContractConverter metadata) { - return MetadataUtil.fromMetadata(metadata, METADATA_KEY, - new ContractVerifierMetadata()); + return MetadataUtil.fromMetadata(metadata, METADATA_KEY, new ContractVerifierMetadata()); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/SpringCloudContractRequestMatcher.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/SpringCloudContractRequestMatcher.java index 52fd4787bc..61e3c44ddf 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/SpringCloudContractRequestMatcher.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/SpringCloudContractRequestMatcher.java @@ -42,16 +42,14 @@ import org.springframework.cloud.contract.verifier.converter.YamlContractConvert */ public class SpringCloudContractRequestMatcher extends RequestMatcherExtension { - private static final List SUPPORTED_TOOLS = Arrays - .asList(GraphQlMatcher.NAME); + private static final List SUPPORTED_TOOLS = Arrays.asList(GraphQlMatcher.NAME); /** * Name of the transformer inside the stub. */ public static final String NAME = "spring-cloud-contract"; - private static final Log log = LogFactory - .getLog(SpringCloudContractRequestMatcher.class); + private static final Log log = LogFactory.getLog(SpringCloudContractRequestMatcher.class); @Override public MatchResult match(Request request, Parameters parameters) { @@ -76,8 +74,7 @@ public class SpringCloudContractRequestMatcher extends RequestMatcherExtension { } return MatchResult.noMatch(); } - return new RequestMatcherFactory(matchers()).pick(tool).match(contracts, request, - parameters); + return new RequestMatcherFactory(matchers()).pick(tool).match(contracts, request, parameters); } List matchers() { @@ -108,8 +105,7 @@ class RequestMatcherFactory { interface RequestMatcher { - MatchResult match(List contracts, Request request, - Parameters parameters); + MatchResult match(List contracts, Request request, Parameters parameters); default boolean assertThat(Runnable runnable) { try { @@ -130,8 +126,7 @@ interface RequestMatcher { class NotMatchingRequestMatcher implements RequestMatcher { @Override - public MatchResult match(List contracts, Request request, - Parameters parameters) { + public MatchResult match(List contracts, Request request, Parameters parameters) { return MatchResult.noMatch(); } @@ -151,35 +146,29 @@ class GraphQlMatcher implements RequestMatcher { private final ObjectMapper objectMapper = new ObjectMapper(); @Override - public MatchResult match(List contracts, Request request, - Parameters parameters) { + public MatchResult match(List contracts, Request request, Parameters parameters) { YamlContract contract = contracts.get(0); // TODO: What if the body is in files? Map body = (Map) contract.request.body; try { Map jsonBodyFromContract = body; - Map jsonBodyFromRequest = this.objectMapper.readerForMapOf(Object.class) - .readValue(request.getBody()); + Map jsonBodyFromRequest = this.objectMapper.readerForMapOf(Object.class).readValue(request.getBody()); String query = (String) jsonBodyFromContract.get("query"); String queryFromRequest = (String) jsonBodyFromRequest.get("query"); Map variables = (Map) jsonBodyFromContract.get("variables"); Map variablesFromRequest = (Map) jsonBodyFromRequest.get("variables"); String operationName = (String) jsonBodyFromContract.get("operationName"); - String operationNameFromRequest = (String) jsonBodyFromRequest - .get("operationName"); - boolean queryMatches = assertThat(() -> Assertions.assertThat(query) - .isEqualToIgnoringWhitespace(queryFromRequest)); - boolean variablesMatch = assertThat(() -> JsonAssertions - .assertThatJson(variables).isEqualTo(variablesFromRequest)); - boolean operationMatches = StringUtils.equals(operationName, - operationNameFromRequest); + String operationNameFromRequest = (String) jsonBodyFromRequest.get("operationName"); + boolean queryMatches = assertThat( + () -> Assertions.assertThat(query).isEqualToIgnoringWhitespace(queryFromRequest)); + boolean variablesMatch = assertThat( + () -> JsonAssertions.assertThatJson(variables).isEqualTo(variablesFromRequest)); + boolean operationMatches = StringUtils.equals(operationName, operationNameFromRequest); return MatchResult.of(queryMatches && variablesMatch && operationMatches); } catch (Exception e) { if (log.isWarnEnabled()) { - log.warn( - "An exception occurred while trying to parse the graphql entries", - e); + log.warn("An exception occurred while trying to parse the graphql entries", e); } return MatchResult.noMatch(); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockResponseStubStrategy.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockResponseStubStrategy.java index 90500a62f2..1e0b16c50c 100755 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockResponseStubStrategy.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockResponseStubStrategy.java @@ -52,8 +52,7 @@ class WireMockResponseStubStrategy extends BaseWireMockStubStrategy { private final ContentType contentType; - WireMockResponseStubStrategy(Contract groovyDsl, - SingleContractMetadata singleContractMetadata) { + WireMockResponseStubStrategy(Contract groovyDsl, SingleContractMetadata singleContractMetadata) { super(groovyDsl); this.response = groovyDsl.getResponse(); this.contentType = contentType(singleContractMetadata); @@ -67,8 +66,8 @@ class WireMockResponseStubStrategy extends BaseWireMockStubStrategy { if (response == null) { return null; } - ResponseDefinitionBuilder builder = new ResponseDefinitionBuilder().withStatus( - (Integer) MapConverter.getStubSideValues(response.getStatus())); + ResponseDefinitionBuilder builder = new ResponseDefinitionBuilder() + .withStatus((Integer) MapConverter.getStubSideValues(response.getStatus())); appendHeaders(builder); appendBody(builder); appendResponseDelayTime(builder); @@ -77,23 +76,19 @@ class WireMockResponseStubStrategy extends BaseWireMockStubStrategy { } private String[] responseTransformerNames() { - List wireMockExtensions = SpringFactoriesLoader - .loadFactories(WireMockExtensions.class, null); + List wireMockExtensions = SpringFactoriesLoader.loadFactories(WireMockExtensions.class, + null); if (!wireMockExtensions.isEmpty()) { - return wireMockExtensions.stream().map(WireMockExtensions::extensions) - .flatMap(Collection::stream).map(Extension::getName) - .toArray(String[]::new); + return wireMockExtensions.stream().map(WireMockExtensions::extensions).flatMap(Collection::stream) + .map(Extension::getName).toArray(String[]::new); } - return new String[] { new DefaultResponseTransformer().getName(), - SpringCloudContractRequestMatcher.NAME }; + return new String[] { new DefaultResponseTransformer().getName(), SpringCloudContractRequestMatcher.NAME }; } private void appendHeaders(ResponseDefinitionBuilder builder) { if (response.getHeaders() != null) { - HttpHeaders headers = response.getHeaders().getEntries().stream() - .map(it -> new HttpHeader(it.getName(), - MapConverter.getStubSideValues(it.getClientValue()) - .toString())) + HttpHeaders headers = response.getHeaders().getEntries().stream().map( + it -> new HttpHeader(it.getName(), MapConverter.getStubSideValues(it.getClientValue()).toString())) .collect(collectingAndThen(toList(), HttpHeaders::new)); builder.withHeaders(headers); } @@ -105,8 +100,7 @@ class WireMockResponseStubStrategy extends BaseWireMockStubStrategy { if (body instanceof byte[]) { builder.withBody((byte[]) body); } - else if (body instanceof FromFileProperty - && ((FromFileProperty) body).isByte()) { + else if (body instanceof FromFileProperty && ((FromFileProperty) body).isByte()) { builder.withBody(((FromFileProperty) body).asBytes()); } else if (body instanceof Map) { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockStubStrategy.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockStubStrategy.java index 72904ef8c9..075945412e 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockStubStrategy.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockStubStrategy.java @@ -47,15 +47,12 @@ public class WireMockStubStrategy { private final Contract groovyDsl; - public WireMockStubStrategy(String rootName, ContractMetadata contract, - Contract groovyDsl) { + public WireMockStubStrategy(String rootName, ContractMetadata contract, Contract groovyDsl) { this.rootName = rootName; this.contract = contract; SingleContractMetadata singleContractMetadata = contract.forContract(groovyDsl); - this.wireMockRequestStubStrategy = new WireMockRequestStubStrategy(groovyDsl, - singleContractMetadata); - this.wireMockResponseStubStrategy = new WireMockResponseStubStrategy(groovyDsl, - singleContractMetadata); + this.wireMockRequestStubStrategy = new WireMockRequestStubStrategy(groovyDsl, singleContractMetadata); + this.wireMockResponseStubStrategy = new WireMockResponseStubStrategy(groovyDsl, singleContractMetadata); this.priority = groovyDsl.getPriority(); this.groovyDsl = groovyDsl; } @@ -66,8 +63,7 @@ public class WireMockStubStrategy { public StubMapping toWireMockClientStub() { StubMapping stubMapping = new StubMapping(); RequestPattern request = wireMockRequestStubStrategy.buildClientRequestContent(); - ResponseDefinition response = wireMockResponseStubStrategy - .buildClientResponseContent(); + ResponseDefinition response = wireMockResponseStubStrategy.buildClientResponseContent(); if (priority != null) { stubMapping.setPriority(priority); } @@ -81,8 +77,8 @@ public class WireMockStubStrategy { } if (contract.getOrder() != null) { stubMapping.setScenarioName("Scenario_" + rootName); - stubMapping.setRequiredScenarioState(contract.getOrder() == 0 ? STEP_START - : STEP_PREFIX + contract.getOrder()); + stubMapping.setRequiredScenarioState( + contract.getOrder() == 0 ? STEP_START : STEP_PREFIX + contract.getOrder()); if (contract.getOrder() < contract.getGroupSize() - 1) { stubMapping.setNewScenarioState(STEP_PREFIX + (contract.getOrder() + 1)); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/file/ContractMetadata.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/file/ContractMetadata.java index 5565f7a007..21a934276d 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/file/ContractMetadata.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/file/ContractMetadata.java @@ -65,8 +65,7 @@ public class ContractMetadata { */ private final Collection convertedContractWithMetadata = new ArrayList<>(); - public ContractMetadata(Path path, boolean ignored, int groupSize, Integer order, - Contract convertedContract) { + public ContractMetadata(Path path, boolean ignored, int groupSize, Integer order, Contract convertedContract) { this(path, ignored, groupSize, order, singletonList(convertedContract)); } @@ -77,14 +76,13 @@ public class ContractMetadata { this.ignored = ignored; this.order = order; this.convertedContract.addAll(convertedContract); - this.convertedContractWithMetadata.addAll(this.convertedContract.stream() - .filter(Objects::nonNull).map(it -> new SingleContractMetadata(it, this)) - .collect(toList())); + this.convertedContractWithMetadata.addAll(this.convertedContract.stream().filter(Objects::nonNull) + .map(it -> new SingleContractMetadata(it, this)).collect(toList())); } public SingleContractMetadata forContract(Contract contract) { - return this.convertedContractWithMetadata.stream() - .filter(it -> it.getContract().equals(contract)).findFirst().orElse(null); + return this.convertedContractWithMetadata.stream().filter(it -> it.getContract().equals(contract)).findFirst() + .orElse(null); } public boolean anyInProgress() { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/file/SingleContractMetadata.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/file/SingleContractMetadata.java index 94f787085b..038ec9133c 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/file/SingleContractMetadata.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/file/SingleContractMetadata.java @@ -51,8 +51,7 @@ import static org.springframework.cloud.contract.verifier.util.NamesUtil.toLastD public class SingleContractMetadata { - private static final Logger log = LoggerFactory - .getLogger(SingleContractMetadata.class); + private static final Logger log = LoggerFactory.getLogger(SingleContractMetadata.class); private final ContractMetadata contractMetadata; @@ -90,8 +89,7 @@ public class SingleContractMetadata { private final boolean http; - public SingleContractMetadata(Contract currentContract, - ContractMetadata contractMetadata) { + public SingleContractMetadata(Contract currentContract, ContractMetadata contractMetadata) { Assert.notNull(currentContract, "Contract must not be null"); this.allContracts = contractMetadata.getConvertedContract(); this.contract = currentContract; @@ -102,82 +100,63 @@ public class SingleContractMetadata { DslProperty outputBody = outputBody(currentContract); Header inputContentType = contentTypeHeader(inputHeaders); Header outputContentType = contentTypeHeader(outputHeaders); - this.definedInputTestContentType = Optional.ofNullable(inputContentType) - .map(DslProperty::getServerValue).map(Object::toString).orElse(""); - this.evaluatedInputTestContentType = tryToEvaluateTestContentType(inputHeaders, - inputBody); - this.inputTestContentType = inputBody != null ? this.evaluatedInputTestContentType - : UNKNOWN; - this.definedOutputTestContentType = Optional.ofNullable(outputContentType) - .map(DslProperty::getServerValue).map(Object::toString).orElse(""); - this.evaluatedOutputTestContentType = tryToEvaluateTestContentType(outputHeaders, - outputBody); - this.outputTestContentType = outputBody != null - ? this.evaluatedOutputTestContentType : UNKNOWN; - this.definedInputStubContentType = Optional.ofNullable(inputContentType) - .map(DslProperty::getClientValue).map(Object::toString).orElse(""); - this.evaluatedInputStubContentType = tryToEvaluateStubContentType(inputHeaders, - inputBody); - this.inputStubContentType = inputBody != null ? this.evaluatedInputStubContentType - : UNKNOWN; - this.definedOutputStubContentType = Optional.ofNullable(outputContentType) - .map(DslProperty::getClientValue).map(Object::toString).orElse(""); - this.evaluatedOutputStubContentType = tryToEvaluateStubContentType(outputHeaders, - outputBody); - this.outputStubContentType = outputBody != null - ? this.evaluatedOutputStubContentType : UNKNOWN; + this.definedInputTestContentType = Optional.ofNullable(inputContentType).map(DslProperty::getServerValue) + .map(Object::toString).orElse(""); + this.evaluatedInputTestContentType = tryToEvaluateTestContentType(inputHeaders, inputBody); + this.inputTestContentType = inputBody != null ? this.evaluatedInputTestContentType : UNKNOWN; + this.definedOutputTestContentType = Optional.ofNullable(outputContentType).map(DslProperty::getServerValue) + .map(Object::toString).orElse(""); + this.evaluatedOutputTestContentType = tryToEvaluateTestContentType(outputHeaders, outputBody); + this.outputTestContentType = outputBody != null ? this.evaluatedOutputTestContentType : UNKNOWN; + this.definedInputStubContentType = Optional.ofNullable(inputContentType).map(DslProperty::getClientValue) + .map(Object::toString).orElse(""); + this.evaluatedInputStubContentType = tryToEvaluateStubContentType(inputHeaders, inputBody); + this.inputStubContentType = inputBody != null ? this.evaluatedInputStubContentType : UNKNOWN; + this.definedOutputStubContentType = Optional.ofNullable(outputContentType).map(DslProperty::getClientValue) + .map(Object::toString).orElse(""); + this.evaluatedOutputStubContentType = tryToEvaluateStubContentType(outputHeaders, outputBody); + this.outputStubContentType = outputBody != null ? this.evaluatedOutputStubContentType : UNKNOWN; this.http = currentContract.getRequest() != null; this.stubsPath = contractMetadata.getPath(); } private Header contentTypeHeader(Headers headers) { - return headers == null ? null - : headers.getEntries().stream() - .filter(it -> "Content-Type".equalsIgnoreCase(it.getName())) - .findFirst().orElse(null); + return headers == null ? null : headers.getEntries().stream() + .filter(it -> "Content-Type".equalsIgnoreCase(it.getName())).findFirst().orElse(null); } - private ContentType tryToEvaluateStubContentType(Headers mainHeaders, - DslProperty body) { - Object clientValue = Optional.ofNullable(body).map(DslProperty::getClientValue) - .orElse(null); + private ContentType tryToEvaluateStubContentType(Headers mainHeaders, DslProperty body) { + Object clientValue = Optional.ofNullable(body).map(DslProperty::getClientValue).orElse(null); ContentType contentType = evaluateClientSideContentType(mainHeaders, clientValue); if (contentType == DEFINED || contentType == UNKNOWN) { // try to retrieve from the other side (e.g. stub side was a regex, but test // side is concrete) - Object serverValue = Optional.ofNullable(body) - .map(DslProperty::getServerValue).orElse(null); + Object serverValue = Optional.ofNullable(body).map(DslProperty::getServerValue).orElse(null); return evaluateServerSideContentType(mainHeaders, serverValue); } return contentType; } - private ContentType tryToEvaluateTestContentType(Headers mainHeaders, - DslProperty body) { - Object serverValue = Optional.ofNullable(body).map(DslProperty::getServerValue) - .orElse(null); + private ContentType tryToEvaluateTestContentType(Headers mainHeaders, DslProperty body) { + Object serverValue = Optional.ofNullable(body).map(DslProperty::getServerValue).orElse(null); ContentType contentType = evaluateClientSideContentType(mainHeaders, serverValue); if (contentType == DEFINED || contentType == UNKNOWN) { // try to retrieve from the other side (e.g. stub side was a regex, but test // side is concrete) - Object clientValue = Optional.ofNullable(body) - .map(DslProperty::getClientValue).orElse(null); + Object clientValue = Optional.ofNullable(body).map(DslProperty::getClientValue).orElse(null); return evaluateServerSideContentType(mainHeaders, clientValue); } return contentType; } public boolean isJson() { - return this.inputTestContentType.equals(JSON) - || this.outputTestContentType.equals(JSON) - || this.inputStubContentType.equals(JSON) - || this.outputStubContentType.equals(JSON); + return this.inputTestContentType.equals(JSON) || this.outputTestContentType.equals(JSON) + || this.inputStubContentType.equals(JSON) || this.outputStubContentType.equals(JSON); } public boolean evaluatesToJson() { return isJson() || this.evaluatedInputTestContentType.equals(JSON) - || this.evaluatedOutputTestContentType.equals(JSON) - || this.evaluatedInputStubContentType.equals(JSON) + || this.evaluatedOutputTestContentType.equals(JSON) || this.evaluatedInputStubContentType.equals(JSON) || this.evaluatedOutputStubContentType.equals(JSON); } @@ -186,10 +165,8 @@ public class SingleContractMetadata { } public boolean isXml() { - return this.inputTestContentType.equals(XML) - || this.outputTestContentType.equals(XML) - || this.inputStubContentType.equals(XML) - || this.outputStubContentType.equals(XML); + return this.inputTestContentType.equals(XML) || this.outputTestContentType.equals(XML) + || this.inputStubContentType.equals(XML) || this.outputStubContentType.equals(XML); } public boolean isHttp() { @@ -205,29 +182,24 @@ public class SingleContractMetadata { } private DslProperty inputBody(Contract contract) { - return Optional.ofNullable(contract.getRequest()).map(Request::getBody) - .map(DslProperty.class::cast) - .orElseGet(() -> Optional.ofNullable(contract.getInput()) - .map(Input::getMessageBody).orElse(null)); + return Optional.ofNullable(contract.getRequest()).map(Request::getBody).map(DslProperty.class::cast) + .orElseGet(() -> Optional.ofNullable(contract.getInput()).map(Input::getMessageBody).orElse(null)); } private Headers inputHeaders(Contract contract) { return Optional.ofNullable(contract.getRequest()).map(Request::getHeaders) - .orElseGet(() -> Optional.ofNullable(contract.getInput()) - .map(Input::getMessageHeaders).orElse(null)); + .orElseGet(() -> Optional.ofNullable(contract.getInput()).map(Input::getMessageHeaders).orElse(null)); } private DslProperty outputBody(Contract contract) { - return Optional.ofNullable(contract.getResponse()).map(Response::getBody) - .map(DslProperty.class::cast) - .orElseGet(() -> Optional.ofNullable(contract.getOutputMessage()) - .map(OutputMessage::getBody).orElse(null)); + return Optional.ofNullable(contract.getResponse()).map(Response::getBody).map(DslProperty.class::cast) + .orElseGet(() -> Optional.ofNullable(contract.getOutputMessage()).map(OutputMessage::getBody) + .orElse(null)); } private Headers outputHeaders(Contract contract) { - return Optional.ofNullable(contract.getResponse()).map(Response::getHeaders) - .orElseGet(() -> Optional.ofNullable(contract.getOutputMessage()) - .map(OutputMessage::getHeaders).orElse(null)); + return Optional.ofNullable(contract.getResponse()).map(Response::getHeaders).orElseGet( + () -> Optional.ofNullable(contract.getOutputMessage()).map(OutputMessage::getHeaders).orElse(null)); } public String methodName() { @@ -245,8 +217,7 @@ public class SingleContractMetadata { } if (allContracts.size() > 1) { int index = allContracts.indexOf(getContract()); - String name = String.format("%s_%d", camelCasedMethodFromFileName(stubsPath), - index); + String name = String.format("%s_%d", camelCasedMethodFromFileName(stubsPath), index); log.debug("Scenario found. The method name will be [{}]", name); return name; } @@ -256,8 +227,7 @@ public class SingleContractMetadata { } private static String camelCasedMethodFromFileName(Path stubsPath) { - return camelCase(convertIllegalMethodNameChars( - toLastDot(afterLast(stubsPath.toString(), File.separator)))); + return camelCase(convertIllegalMethodNameChars(toLastDot(afterLast(stubsPath.toString(), File.separator)))); } public ContractMetadata getContractMetadata() { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/MessageVerifier.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/MessageVerifier.java index 66e8de72fc..a0f7fce81d 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/MessageVerifier.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/MessageVerifier.java @@ -26,7 +26,6 @@ package org.springframework.cloud.contract.verifier.messaging; * @author Marcin Grzejszczak * @since 1.0.0 */ -public interface MessageVerifier - extends MessageVerifierSender, MessageVerifierReceiver { +public interface MessageVerifier extends MessageVerifierSender, MessageVerifierReceiver { } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/MessageVerifierReceiver.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/MessageVerifierReceiver.java index 37cc984ee3..b6c8af02cd 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/MessageVerifierReceiver.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/MessageVerifierReceiver.java @@ -64,8 +64,7 @@ public interface MessageVerifierReceiver { * @param contract contract related to this method * @return received message */ - M receive(String destination, long timeout, TimeUnit timeUnit, - @Nullable YamlContract contract); + M receive(String destination, long timeout, TimeUnit timeUnit, @Nullable YamlContract contract); /** * Receives the message from the given destination. A default timeout will be applied. diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/MessageVerifierSender.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/MessageVerifierSender.java index e95746a058..b93dccf4c6 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/MessageVerifierSender.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/MessageVerifierSender.java @@ -70,7 +70,6 @@ public interface MessageVerifierSender { * @param destination destination to which the message will be sent * @param contract contract related to this method */ - void send(T payload, Map headers, String destination, - @Nullable YamlContract contract); + void send(T payload, Map headers, String destination, @Nullable YamlContract contract); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/AmqpMetadata.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/AmqpMetadata.java index 64b4debb17..101b7a0142 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/AmqpMetadata.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/AmqpMetadata.java @@ -64,8 +64,7 @@ public class AmqpMetadata implements SpringCloudContractMetadata { } public static AmqpMetadata fromMetadata(Map metadata) { - return MetadataUtil.fromMetadata(metadata, AmqpMetadata.METADATA_KEY, - new AmqpMetadata()); + return MetadataUtil.fromMetadata(metadata, AmqpMetadata.METADATA_KEY, new AmqpMetadata()); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfiguration.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfiguration.java index bd4cf84bc1..ef16517998 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfiguration.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfiguration.java @@ -77,17 +77,15 @@ public class ContractVerifierAmqpAutoConfiguration { @ConditionalOnMissingBean public MessageVerifier contractVerifierMessageExchange() { return new SpringAmqpStubMessages(this.rabbitTemplate, - new MessageListenerAccessor(this.rabbitListenerEndpointRegistry, - this.simpleMessageListenerContainers, this.bindings), + new MessageListenerAccessor(this.rabbitListenerEndpointRegistry, this.simpleMessageListenerContainers, + this.bindings), this.rabbitProperties); } @Bean @ConditionalOnMissingBean - public ContractVerifierMessaging contractVerifierMessaging( - MessageVerifier exchange) { - return new ContractVerifierHelper(exchange, - this.rabbitTemplate.getMessageConverter()); + public ContractVerifierMessaging contractVerifierMessaging(MessageVerifier exchange) { + return new ContractVerifierHelper(exchange, this.rabbitTemplate.getMessageConverter()); } } @@ -96,21 +94,18 @@ class ContractVerifierHelper extends ContractVerifierMessaging { private final MessageConverter messageConverter; - ContractVerifierHelper(MessageVerifier exchange, - MessageConverter messageConverter) { + ContractVerifierHelper(MessageVerifier exchange, MessageConverter messageConverter) { super(exchange); this.messageConverter = messageConverter; } @Override protected ContractVerifierMessage convert(Message message) { - MessagingMessageConverter messageConverter = new MessagingMessageConverter( - this.messageConverter, new SimpleAmqpHeaderMapper()); + MessagingMessageConverter messageConverter = new MessagingMessageConverter(this.messageConverter, + new SimpleAmqpHeaderMapper()); org.springframework.messaging.Message messagingMessage; - messagingMessage = (org.springframework.messaging.Message) messageConverter - .fromMessage(message); - return new ContractVerifierMessage(messagingMessage.getPayload(), - messagingMessage.getHeaders()); + messagingMessage = (org.springframework.messaging.Message) messageConverter.fromMessage(message); + return new ContractVerifierMessage(messagingMessage.getPayload(), messagingMessage.getHeaders()); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/MessageListenerAccessor.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/MessageListenerAccessor.java index 614a79f856..7c0e036a5e 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/MessageListenerAccessor.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/MessageListenerAccessor.java @@ -48,15 +48,13 @@ class MessageListenerAccessor { private final List bindings; MessageListenerAccessor(RabbitListenerEndpointRegistry rabbitListenerEndpointRegistry, - List simpleMessageListenerContainers, - List bindings) { + List simpleMessageListenerContainers, List bindings) { this.rabbitListenerEndpointRegistry = rabbitListenerEndpointRegistry; this.simpleMessageListenerContainers = simpleMessageListenerContainers; this.bindings = bindings; } - List getListenerContainersForDestination( - String destination, String routingKey) { + List getListenerContainersForDestination(String destination, String routingKey) { List listenerContainers = collectListenerContainers(); // we interpret the destination as exchange name and collect all the queues bound // to this exchange @@ -65,8 +63,7 @@ class MessageListenerAccessor { } private List getListenersByBoundQueues( - List listenerContainers, - Set queueNames) { + List listenerContainers, Set queueNames) { List matchingContainers = new ArrayList<>(); for (SimpleMessageListenerContainer listenerContainer : listenerContainers) { if (listenerContainer.getQueueNames() != null) { @@ -81,8 +78,7 @@ class MessageListenerAccessor { return matchingContainers; } - private Set collectQueuesBoundToDestination(String destination, - String routingKey) { + private Set collectQueuesBoundToDestination(String destination, String routingKey) { Set queueNames = new HashSet<>(); for (Binding binding : this.bindings) { if (destination.equals(binding.getExchange()) @@ -103,8 +99,7 @@ class MessageListenerAccessor { for (MessageListenerContainer listenerContainer : this.rabbitListenerEndpointRegistry .getListenerContainers()) { if (listenerContainer instanceof SimpleMessageListenerContainer) { - listenerContainers - .add((SimpleMessageListenerContainer) listenerContainer); + listenerContainers.add((SimpleMessageListenerContainer) listenerContainer); } } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/RabbitMockConnectionFactoryAutoConfiguration.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/RabbitMockConnectionFactoryAutoConfiguration.java index 0225475d22..61d0a517b4 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/RabbitMockConnectionFactoryAutoConfiguration.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/RabbitMockConnectionFactoryAutoConfiguration.java @@ -45,22 +45,19 @@ import static org.mockito.Mockito.when; */ @Configuration(proxyBeanMethods = false) @ConditionalOnBean(ContractVerifierAmqpAutoConfiguration.class) -@ConditionalOnProperty(value = "stubrunner.amqp.mockConnection", havingValue = "true", - matchIfMissing = true) +@ConditionalOnProperty(value = "stubrunner.amqp.mockConnection", havingValue = "true", matchIfMissing = true) public class RabbitMockConnectionFactoryAutoConfiguration { @Bean public ConnectionFactory connectionFactory() { final Connection mockConnection = mock(Connection.class); final AMQP.Queue.DeclareOk mockDeclareOk = mock(AMQP.Queue.DeclareOk.class); - com.rabbitmq.client.ConnectionFactory mockConnectionFactory = mock( - com.rabbitmq.client.ConnectionFactory.class, new Answer() { + com.rabbitmq.client.ConnectionFactory mockConnectionFactory = mock(com.rabbitmq.client.ConnectionFactory.class, + new Answer() { @Override - public Object answer(InvocationOnMock invocationOnMock) - throws Throwable { + public Object answer(InvocationOnMock invocationOnMock) throws Throwable { // hack for keeping backward compatibility with #303 - if ("newConnection" - .equals(invocationOnMock.getMethod().getName())) { + if ("newConnection".equals(invocationOnMock.getMethod().getName())) { return mockConnection; } return Mockito.RETURNS_DEFAULTS.answer(invocationOnMock); diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessages.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessages.java index 6b0bddf414..b0514b2458 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessages.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessages.java @@ -74,25 +74,19 @@ public class SpringAmqpStubMessages implements MessageVerifier { private RabbitProperties rabbitProperties; @Deprecated - public SpringAmqpStubMessages(RabbitTemplate rabbitTemplate, - MessageListenerAccessor messageListenerAccessor) { + public SpringAmqpStubMessages(RabbitTemplate rabbitTemplate, MessageListenerAccessor messageListenerAccessor) { Assert.notNull(rabbitTemplate, "RabbitTemplate must be set"); - Assert.isTrue( - mockingDetails(rabbitTemplate).isSpy() - || mockingDetails(rabbitTemplate).isMock(), + Assert.isTrue(mockingDetails(rabbitTemplate).isSpy() || mockingDetails(rabbitTemplate).isMock(), "StubRunner AMQP will work only if RabbiTemplate is a spy"); this.rabbitTemplate = rabbitTemplate; this.messageListenerAccessor = messageListenerAccessor; } @Autowired - public SpringAmqpStubMessages(RabbitTemplate rabbitTemplate, - MessageListenerAccessor messageListenerAccessor, + public SpringAmqpStubMessages(RabbitTemplate rabbitTemplate, MessageListenerAccessor messageListenerAccessor, RabbitProperties rabbitProperties) { Assert.notNull(rabbitTemplate, "RabbitTemplate must be set"); - Assert.isTrue( - mockingDetails(rabbitTemplate).isSpy() - || mockingDetails(rabbitTemplate).isMock(), + Assert.isTrue(mockingDetails(rabbitTemplate).isSpy() || mockingDetails(rabbitTemplate).isMock(), "StubRunner AMQP will work only if RabbiTemplate is a spy"); this.rabbitTemplate = rabbitTemplate; this.messageListenerAccessor = messageListenerAccessor; @@ -100,12 +94,9 @@ public class SpringAmqpStubMessages implements MessageVerifier { } @Override - public void send(T payload, Map headers, String destination, - YamlContract contract) { - Message message = org.springframework.amqp.core.MessageBuilder - .withBody(((String) payload).getBytes()) - .andProperties(MessagePropertiesBuilder.newInstance() - .setContentType(header(headers, "contentType")) + public void send(T payload, Map headers, String destination, YamlContract contract) { + Message message = org.springframework.amqp.core.MessageBuilder.withBody(((String) payload).getBytes()) + .andProperties(MessagePropertiesBuilder.newInstance().setContentType(header(headers, "contentType")) .copyHeaders(headers).build()) .build(); if (headers != null && headers.containsKey(DEFAULT_CLASSID_FIELD_NAME)) { @@ -113,30 +104,25 @@ public class SpringAmqpStubMessages implements MessageVerifier { headers.get(DEFAULT_CLASSID_FIELD_NAME)); } if (headers != null && headers.containsKey(AmqpHeaders.RECEIVED_ROUTING_KEY)) { - message.getMessageProperties().setReceivedRoutingKey( - header(headers, AmqpHeaders.RECEIVED_ROUTING_KEY)); + message.getMessageProperties().setReceivedRoutingKey(header(headers, AmqpHeaders.RECEIVED_ROUTING_KEY)); } send(message, destination, contract); } - public void mergeMessagePropertiesFromMetadata(YamlContract contract, - Message message) { - if (contract != null - && contract.metadata.containsKey(AmqpMetadata.METADATA_KEY)) { + public void mergeMessagePropertiesFromMetadata(YamlContract contract, Message message) { + if (contract != null && contract.metadata.containsKey(AmqpMetadata.METADATA_KEY)) { AmqpMetadata amqpMetadata = AmqpMetadata.fromMetadata(contract.metadata); ContractVerifierMessageMetadata messageMetadata = ContractVerifierMessageMetadata .fromMetadata(contract.metadata); boolean isInput = isInputMessage(messageMetadata); - MessageProperties fromMetadata = isInput - ? amqpMetadata.getInput().getMessageProperties() + MessageProperties fromMetadata = isInput ? amqpMetadata.getInput().getMessageProperties() : amqpMetadata.getOutputMessage().getMessageProperties(); MetadataUtil.merge(message.getMessageProperties(), fromMetadata); } } public boolean isInputMessage(ContractVerifierMessageMetadata messageMetadata) { - return messageMetadata - .getMessageType() == ContractVerifierMessageMetadata.MessageType.INPUT; + return messageMetadata.getMessageType() == ContractVerifierMessageMetadata.MessageType.INPUT; } private String header(Map headers, String headerName) { @@ -161,8 +147,7 @@ public class SpringAmqpStubMessages implements MessageVerifier { List listenerContainers = this.messageListenerAccessor .getListenerContainersForDestination(destination, routingKey); if (listenerContainers.isEmpty()) { - throw new IllegalStateException( - "no listeners found for destination " + destination); + throw new IllegalStateException("no listeners found for destination " + destination); } for (SimpleMessageListenerContainer listenerContainer : listenerContainers) { Object messageListener = listenerContainer.getMessageListener(); @@ -181,14 +166,11 @@ public class SpringAmqpStubMessages implements MessageVerifier { } } - Channel createChannel(SimpleMessageListenerContainer listenerContainer, - boolean transactional) { - return listenerContainer.getConnectionFactory().createConnection() - .createChannel(transactional); + Channel createChannel(SimpleMessageListenerContainer listenerContainer, boolean transactional) { + return listenerContainer.getConnectionFactory().createConnection().createChannel(transactional); } - boolean isChannelAwareListener(SimpleMessageListenerContainer listenerContainer, - Object messageListener) { + boolean isChannelAwareListener(SimpleMessageListenerContainer listenerContainer, Object messageListener) { return messageListener instanceof ChannelAwareMessageListener && listenerContainer.getConnectionFactory() != null; } @@ -199,25 +181,21 @@ public class SpringAmqpStubMessages implements MessageVerifier { return true; } return this.rabbitProperties.getPublisherConfirmType() == null - || this.rabbitProperties - .getPublisherConfirmType() == CachingConnectionFactory.ConfirmType.NONE; + || this.rabbitProperties.getPublisherConfirmType() == CachingConnectionFactory.ConfirmType.NONE; } @Override - public Message receive(String destination, long timeout, TimeUnit timeUnit, - YamlContract contract) { + public Message receive(String destination, long timeout, TimeUnit timeUnit, YamlContract contract) { ArgumentCaptor messageCaptor = ArgumentCaptor.forClass(Message.class); ArgumentCaptor routingKeyCaptor = ArgumentCaptor.forClass(String.class); - verify(this.rabbitTemplate, atLeastOnce()).send(eq(destination), - routingKeyCaptor.capture(), messageCaptor.capture(), - ArgumentMatchers.any()); + verify(this.rabbitTemplate, atLeastOnce()).send(eq(destination), routingKeyCaptor.capture(), + messageCaptor.capture(), ArgumentMatchers.any()); if (messageCaptor.getAllValues().isEmpty()) { log.info("no messages found on destination [" + destination + "]"); return null; } else if (messageCaptor.getAllValues().size() > 1) { - log.info("multiple messages found on destination [" + destination - + "] returning last one"); + log.info("multiple messages found on destination [" + destination + "] returning last one"); return messageCaptor.getValue(); } Message message = messageCaptor.getValue(); @@ -227,8 +205,7 @@ public class SpringAmqpStubMessages implements MessageVerifier { } if (!routingKeyCaptor.getValue().isEmpty()) { log.info("routing key passed [" + routingKeyCaptor.getValue() + "]"); - message.getMessageProperties() - .setReceivedRoutingKey(routingKeyCaptor.getValue()); + message.getMessageProperties().setReceivedRoutingKey(routingKeyCaptor.getValue()); } return message; } 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 0950f99dae..22b57e5def 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 @@ -66,32 +66,27 @@ public class CamelStubMessages implements MessageVerifier { ContractVerifierMessageMetadata verifierMessageMetadata = ContractVerifierMessageMetadata .fromMetadata(contract != null ? contract.metadata : null); String finalDestination = finalDestination(destination, - additionalOptions(verifierMessageMetadata, standaloneMetadata), - verifierMessageMetadata); + additionalOptions(verifierMessageMetadata, standaloneMetadata), verifierMessageMetadata); log.info("Will send a message to URI [" + finalDestination + "]"); this.producerTemplate.send(finalDestination, exchange); } catch (Exception e) { - log.error("Exception occurred while trying to send a message [" + message - + "] " + "to a channel with name [" + destination + "]", e); + log.error("Exception occurred while trying to send a message [" + message + "] " + + "to a channel with name [" + destination + "]", e); throw e; } } - private String additionalOptions( - ContractVerifierMessageMetadata verifierMessageMetadata, + private String additionalOptions(ContractVerifierMessageMetadata verifierMessageMetadata, StandaloneMetadata metadata) { - return verifierMessageMetadata - .getMessageType() == ContractVerifierMessageMetadata.MessageType.INPUT - ? metadata.getInput().getAdditionalOptions() - : metadata.getOutputMessage().getAdditionalOptions(); + return verifierMessageMetadata.getMessageType() == ContractVerifierMessageMetadata.MessageType.INPUT + ? metadata.getInput().getAdditionalOptions() : metadata.getOutputMessage().getAdditionalOptions(); } public String finalDestination(String destination, String additionalOpts, ContractVerifierMessageMetadata verifierMessageMetadata) { String finalDestination = destination; - if (verifierMessageMetadata - .getMessageType() == ContractVerifierMessageMetadata.MessageType.SETUP) { + if (verifierMessageMetadata.getMessageType() == ContractVerifierMessageMetadata.MessageType.SETUP) { return finalDestination; } if (StringUtils.hasText(additionalOpts)) { @@ -101,30 +96,26 @@ public class CamelStubMessages implements MessageVerifier { } @Override - public void send(T payload, Map headers, String destination, - YamlContract contract) { + public void send(T payload, Map headers, String destination, YamlContract contract) { send(this.builder.create(payload, headers), destination, contract); } @Override - public Message receive(String destination, long timeout, TimeUnit timeUnit, - YamlContract contract) { + public Message receive(String destination, long timeout, TimeUnit timeUnit, YamlContract contract) { try { StandaloneMetadata standaloneMetadata = StandaloneMetadata .fromMetadata(contract != null ? contract.metadata : null); ContractVerifierMessageMetadata verifierMessageMetadata = ContractVerifierMessageMetadata .fromMetadata(contract != null ? contract.metadata : null); String finalDestination = finalDestination(destination, - additionalOptions(verifierMessageMetadata, standaloneMetadata), - verifierMessageMetadata); + additionalOptions(verifierMessageMetadata, standaloneMetadata), verifierMessageMetadata); log.info("Will receive a message from URI [" + finalDestination + "]"); - Exchange exchange = this.consumerTemplate.receive(finalDestination, - timeUnit.toMillis(timeout)); + Exchange exchange = this.consumerTemplate.receive(finalDestination, timeUnit.toMillis(timeout)); return exchange != null ? exchange.getIn() : null; } catch (Exception e) { - log.error("Exception occurred while trying to read a message from " - + " a channel with name [" + destination + "]", e); + log.error("Exception occurred while trying to read a message from " + " a channel with name [" + destination + + "]", e); throw new IllegalStateException(e); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfiguration.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfiguration.java index 12ac08be4d..005c3b62f3 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfiguration.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfiguration.java @@ -41,10 +41,8 @@ import org.springframework.context.annotation.Import; @Configuration(proxyBeanMethods = false) @ConditionalOnClass(Message.class) @Import(CamelAutoConfiguration.class) -@ConditionalOnProperty(name = "stubrunner.camel.enabled", havingValue = "true", - matchIfMissing = true) -@AutoConfigureBefore({ NoOpContractVerifierAutoConfiguration.class, - ContractVerifierJmsConfiguration.class }) +@ConditionalOnProperty(name = "stubrunner.camel.enabled", havingValue = "true", matchIfMissing = true) +@AutoConfigureBefore({ NoOpContractVerifierAutoConfiguration.class, ContractVerifierJmsConfiguration.class }) public class ContractVerifierCamelConfiguration { @Bean @@ -56,8 +54,7 @@ public class ContractVerifierCamelConfiguration { @Bean @ConditionalOnMissingBean - public ContractVerifierMessaging contractVerifierMessaging( - MessageVerifier exchange) { + public ContractVerifierMessaging contractVerifierMessaging(MessageVerifier exchange) { return new ContractVerifierCamelHelper(exchange); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/StandaloneMetadata.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/StandaloneMetadata.java index dc6c838474..9196de809e 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/StandaloneMetadata.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/StandaloneMetadata.java @@ -74,8 +74,7 @@ public class StandaloneMetadata implements SpringCloudContractMetadata { } public static StandaloneMetadata fromMetadata(Map metadata) { - return MetadataUtil.fromMetadata(metadata, StandaloneMetadata.METADATA_KEY, - new StandaloneMetadata()); + return MetadataUtil.fromMetadata(metadata, StandaloneMetadata.METADATA_KEY, new StandaloneMetadata()); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfiguration.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfiguration.java index 9e19e3f4db..a439ec94ae 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfiguration.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfiguration.java @@ -41,15 +41,13 @@ public class ContractVerifierIntegrationConfiguration { @Bean @ConditionalOnMissingBean - public MessageVerifier> contractVerifierMessageExchange( - ApplicationContext applicationContext) { + public MessageVerifier> contractVerifierMessageExchange(ApplicationContext applicationContext) { return new SpringIntegrationStubMessages(applicationContext); } @Bean @ConditionalOnMissingBean - public ContractVerifierMessaging> contractVerifierMessaging( - MessageVerifier> exchange) { + public ContractVerifierMessaging> contractVerifierMessaging(MessageVerifier> exchange) { return new ContractVerifierHelper(exchange); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/SpringIntegrationStubMessages.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/SpringIntegrationStubMessages.java index fd34448514..89f2111b10 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/SpringIntegrationStubMessages.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/SpringIntegrationStubMessages.java @@ -47,36 +47,32 @@ public class SpringIntegrationStubMessages implements MessageVerifier } @Override - public void send(T payload, Map headers, String destination, - YamlContract contract) { + public void send(T payload, Map headers, String destination, YamlContract contract) { send(this.builder.create(payload, headers), destination, contract); } @Override public void send(Message message, String destination, YamlContract contract) { try { - MessageChannel messageChannel = this.context.getBean(destination, - MessageChannel.class); + MessageChannel messageChannel = this.context.getBean(destination, MessageChannel.class); messageChannel.send(message); } catch (Exception e) { - log.error("Exception occurred while trying to send a message [" + message - + "] " + "to a channel with name [" + destination + "]", e); + log.error("Exception occurred while trying to send a message [" + message + "] " + + "to a channel with name [" + destination + "]", e); throw e; } } @Override - public Message receive(String destination, long timeout, TimeUnit timeUnit, - YamlContract contract) { + public Message receive(String destination, long timeout, TimeUnit timeUnit, YamlContract contract) { try { - PollableChannel messageChannel = this.context.getBean(destination, - PollableChannel.class); + PollableChannel messageChannel = this.context.getBean(destination, PollableChannel.class); return messageChannel.receive(timeUnit.toMillis(timeout)); } catch (Exception e) { - log.error("Exception occurred while trying to read a message from " - + " a channel with name [" + destination + "]", e); + log.error("Exception occurred while trying to read a message from " + " a channel with name [" + destination + + "]", e); throw new IllegalStateException(e); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/internal/ContractVerifierMessage.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/internal/ContractVerifierMessage.java index 7ba9d22b6e..d2e6572e72 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/internal/ContractVerifierMessage.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/internal/ContractVerifierMessage.java @@ -54,8 +54,7 @@ public class ContractVerifierMessage { if (this.payload instanceof byte[]) { return (byte[]) this.payload; } - throw new IllegalStateException("Payload [" + this.payload.getClass() + "]" - + "is not instance of byte[]"); + throw new IllegalStateException("Payload [" + this.payload.getClass() + "]" + "is not instance of byte[]"); } public Map getHeaders() { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/internal/ContractVerifierMessageMetadata.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/internal/ContractVerifierMessageMetadata.java index f7d721c9f8..cd728b5754 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/internal/ContractVerifierMessageMetadata.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/internal/ContractVerifierMessageMetadata.java @@ -51,10 +51,8 @@ public class ContractVerifierMessageMetadata implements SpringCloudContractMetad this.messageType = messageType; } - public static ContractVerifierMessageMetadata fromMetadata( - Map metadata) { - return MetadataUtil.fromMetadata(metadata, METADATA_KEY, - new ContractVerifierMessageMetadata()); + public static ContractVerifierMessageMetadata fromMetadata(Map metadata) { + return MetadataUtil.fromMetadata(metadata, METADATA_KEY, new ContractVerifierMessageMetadata()); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/internal/ContractVerifierMessaging.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/internal/ContractVerifierMessaging.java index f01224e2d0..892331138b 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/internal/ContractVerifierMessaging.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/internal/ContractVerifierMessaging.java @@ -39,29 +39,25 @@ public class ContractVerifierMessaging { this.exchange = exchange; } - public void send(ContractVerifierMessage message, String destination, - @Nullable YamlContract contract) { + public void send(ContractVerifierMessage message, String destination, @Nullable YamlContract contract) { if (contract != null) { setMessageType(contract, ContractVerifierMessageMetadata.MessageType.INPUT); } - this.exchange.send(message.getPayload(), message.getHeaders(), destination, - contract); + this.exchange.send(message.getPayload(), message.getHeaders(), destination, contract); } public void send(ContractVerifierMessage message, String destination) { send(message, destination, null); } - public ContractVerifierMessage receive(String destination, - @Nullable YamlContract contract) { + public ContractVerifierMessage receive(String destination, @Nullable YamlContract contract) { if (contract != null) { setMessageType(contract, ContractVerifierMessageMetadata.MessageType.OUTPUT); } return convert(this.exchange.receive(destination, contract)); } - private void setMessageType(YamlContract contract, - ContractVerifierMessageMetadata.MessageType output) { + private void setMessageType(YamlContract contract, ContractVerifierMessageMetadata.MessageType output) { contract.metadata.put(ContractVerifierMessageMetadata.METADATA_KEY, new ContractVerifierMessageMetadata(output)); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/jms/ContractVerifierJmsConfiguration.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/jms/ContractVerifierJmsConfiguration.java index 14cb442bd0..c67d48e168 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/jms/ContractVerifierJmsConfiguration.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/jms/ContractVerifierJmsConfiguration.java @@ -48,24 +48,20 @@ import org.springframework.jms.core.JmsTemplate; */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass(JmsTemplate.class) -@ConditionalOnProperty(name = "stubrunner.jms.enabled", havingValue = "true", - matchIfMissing = true) -@AutoConfigureBefore({ ContractVerifierIntegrationConfiguration.class, - NoOpContractVerifierAutoConfiguration.class }) +@ConditionalOnProperty(name = "stubrunner.jms.enabled", havingValue = "true", matchIfMissing = true) +@AutoConfigureBefore({ ContractVerifierIntegrationConfiguration.class, NoOpContractVerifierAutoConfiguration.class }) public class ContractVerifierJmsConfiguration { @Bean @ConditionalOnMissingBean - MessageVerifier contractVerifierJmsMessageExchange( - ObjectProvider jmsTemplateProvider) { + MessageVerifier contractVerifierJmsMessageExchange(ObjectProvider jmsTemplateProvider) { JmsTemplate jmsTemplate = jmsTemplateProvider.getIfAvailable(JmsTemplate::new); return new JmsStubMessages(jmsTemplate); } @Bean @ConditionalOnMissingBean - ContractVerifierMessaging contractVerifierJmsMessaging( - MessageVerifier exchange) { + ContractVerifierMessaging contractVerifierJmsMessaging(MessageVerifier exchange) { return new ContractVerifierJmsHelper(exchange); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/jms/JmsStubMessages.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/jms/JmsStubMessages.java index af97e7a272..e410fe45ff 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/jms/JmsStubMessages.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/jms/JmsStubMessages.java @@ -44,8 +44,7 @@ class JmsStubMessages implements MessageVerifier { } @Override - public Message receive(String destination, long timeout, TimeUnit timeUnit, - YamlContract contract) { + public Message receive(String destination, long timeout, TimeUnit timeUnit, YamlContract contract) { jmsTemplate.setReceiveTimeout(timeUnit.toMillis(timeout)); return jmsTemplate.receive(destination); } @@ -56,8 +55,7 @@ class JmsStubMessages implements MessageVerifier { } @Override - public void send(Object payload, Map headers, String destination, - YamlContract contract) { + public void send(Object payload, Map headers, String destination, YamlContract contract) { jmsTemplate.send(destination, session -> { Message message = createMessage(session, payload); setHeaders(message, headers); diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaConfiguration.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaConfiguration.java index 0b7869cfab..959533fd80 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaConfiguration.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaConfiguration.java @@ -41,21 +41,17 @@ import org.springframework.messaging.Message; */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass({ KafkaTemplate.class, EmbeddedKafkaBroker.class }) -@ConditionalOnProperty(name = "stubrunner.kafka.enabled", havingValue = "true", - matchIfMissing = true) -@AutoConfigureBefore({ ContractVerifierIntegrationConfiguration.class, - NoOpContractVerifierAutoConfiguration.class }) +@ConditionalOnProperty(name = "stubrunner.kafka.enabled", havingValue = "true", matchIfMissing = true) +@AutoConfigureBefore({ ContractVerifierIntegrationConfiguration.class, NoOpContractVerifierAutoConfiguration.class }) @ConditionalOnBean(EmbeddedKafkaBroker.class) public class ContractVerifierKafkaConfiguration { - private static final Log log = LogFactory - .getLog(ContractVerifierKafkaConfiguration.class); + private static final Log log = LogFactory.getLog(ContractVerifierKafkaConfiguration.class); @Bean @ConditionalOnMissingBean - MessageVerifier> contractVerifierKafkaMessageExchange( - KafkaTemplate kafkaTemplate, EmbeddedKafkaBroker broker, - KafkaProperties kafkaProperties, KafkaStubMessagesInitializer initializer) { + MessageVerifier> contractVerifierKafkaMessageExchange(KafkaTemplate kafkaTemplate, + EmbeddedKafkaBroker broker, KafkaProperties kafkaProperties, KafkaStubMessagesInitializer initializer) { return new KafkaStubMessages(kafkaTemplate, broker, kafkaProperties, initializer); } @@ -70,8 +66,7 @@ public class ContractVerifierKafkaConfiguration { @Bean @ConditionalOnMissingBean - ContractVerifierMessaging> contractVerifierKafkaMessaging( - MessageVerifier> exchange) { + ContractVerifierMessaging> contractVerifierKafkaMessaging(MessageVerifier> exchange) { return new ContractVerifierKafkaHelper(exchange); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaStubMessagesInitializer.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaStubMessagesInitializer.java index a240b8461c..2cfbfee8f2 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaStubMessagesInitializer.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaStubMessagesInitializer.java @@ -29,15 +29,12 @@ import org.springframework.kafka.core.DefaultKafkaConsumerFactory; import org.springframework.kafka.test.EmbeddedKafkaBroker; import org.springframework.kafka.test.utils.KafkaTestUtils; -class ContractVerifierKafkaStubMessagesInitializer - implements KafkaStubMessagesInitializer { +class ContractVerifierKafkaStubMessagesInitializer implements KafkaStubMessagesInitializer { - private static final Log log = LogFactory - .getLog(ContractVerifierKafkaStubMessagesInitializer.class); + private static final Log log = LogFactory.getLog(ContractVerifierKafkaStubMessagesInitializer.class); @Override - public Map initialize(EmbeddedKafkaBroker broker, - KafkaProperties kafkaProperties) { + public Map initialize(EmbeddedKafkaBroker broker, KafkaProperties kafkaProperties) { Map map = new HashMap<>(); for (String topic : broker.getTopics()) { map.put(topic, prepareListener(broker, topic, kafkaProperties)); @@ -45,10 +42,9 @@ class ContractVerifierKafkaStubMessagesInitializer return map; } - private Consumer prepareListener(EmbeddedKafkaBroker broker, String destination, - KafkaProperties kafkaProperties) { - Map consumerProperties = KafkaTestUtils.consumerProps( - kafkaProperties.getConsumer().getGroupId(), "false", broker); + private Consumer prepareListener(EmbeddedKafkaBroker broker, String destination, KafkaProperties kafkaProperties) { + Map consumerProperties = KafkaTestUtils + .consumerProps(kafkaProperties.getConsumer().getGroupId(), "false", broker); consumerProperties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); DefaultKafkaConsumerFactory consumerFactory = new DefaultKafkaConsumerFactory<>( consumerProperties); diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaMetadata.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaMetadata.java index d20e90c445..912a20540f 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaMetadata.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaMetadata.java @@ -61,8 +61,7 @@ public class KafkaMetadata implements SpringCloudContractMetadata { } public static KafkaMetadata fromMetadata(Map metadata) { - return MetadataUtil.fromMetadata(metadata, KafkaMetadata.METADATA_KEY, - new KafkaMetadata()); + return MetadataUtil.fromMetadata(metadata, KafkaMetadata.METADATA_KEY, new KafkaMetadata()); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaStubMessages.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaStubMessages.java index e528da7b92..2a0784cb30 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaStubMessages.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaStubMessages.java @@ -48,11 +48,10 @@ class KafkaStubMessages implements MessageVerifier> { private final Receiver receiver; - KafkaStubMessages(KafkaTemplate kafkaTemplate, EmbeddedKafkaBroker broker, - KafkaProperties kafkaProperties, KafkaStubMessagesInitializer initializer) { + KafkaStubMessages(KafkaTemplate kafkaTemplate, EmbeddedKafkaBroker broker, KafkaProperties kafkaProperties, + KafkaStubMessagesInitializer initializer) { this.kafkaTemplate = kafkaTemplate; - Map topicToConsumer = initializer.initialize(broker, - kafkaProperties); + Map topicToConsumer = initializer.initialize(broker, kafkaProperties); this.receiver = new Receiver(topicToConsumer); } @@ -62,8 +61,7 @@ class KafkaStubMessages implements MessageVerifier> { try { this.kafkaTemplate.setDefaultTopic(destination); if (log.isDebugEnabled()) { - log.debug("Will send a message [" + message + "] to destination [" - + destination + "]"); + log.debug("Will send a message [" + message + "] to destination [" + destination + "]"); } this.kafkaTemplate.send(message).get(5, TimeUnit.SECONDS); this.kafkaTemplate.flush(); @@ -77,8 +75,7 @@ class KafkaStubMessages implements MessageVerifier> { } @Override - public Message receive(String destination, long timeout, TimeUnit timeUnit, - YamlContract contract) { + public Message receive(String destination, long timeout, TimeUnit timeUnit, YamlContract contract) { return this.receiver.receive(destination, timeout, timeUnit, contract); } @@ -88,10 +85,8 @@ class KafkaStubMessages implements MessageVerifier> { } @Override - public void send(Object payload, Map headers, String destination, - YamlContract contract) { - Message message = MessageBuilder.createMessage(payload, - new MessageHeaders(headers)); + public void send(Object payload, Map headers, String destination, YamlContract contract) { + Message message = MessageBuilder.createMessage(payload, new MessageHeaders(headers)); send(message, destination, contract); } @@ -107,15 +102,13 @@ class Receiver { this.consumers = consumers; } - Message receive(String topic, long timeout, TimeUnit timeUnit, - YamlContract contract) { + Message receive(String topic, long timeout, TimeUnit timeUnit, YamlContract contract) { Consumer consumer = this.consumers.get(topic); if (consumer == null) { - throw new IllegalStateException( - "No consumer set up for topic [" + topic + "]"); + throw new IllegalStateException("No consumer set up for topic [" + topic + "]"); } - ConsumerRecord record = KafkaTestUtils.getSingleRecord(consumer, - topic, timeUnit.toMillis(timeout)); + ConsumerRecord record = KafkaTestUtils.getSingleRecord(consumer, topic, + timeUnit.toMillis(timeout)); if (log.isDebugEnabled()) { log.debug("Got a single record for destination [" + topic + "]"); } @@ -147,15 +140,13 @@ class Record { if (textPayload instanceof String && ((String) textPayload).contains("payload") && ((String) textPayload).contains("headers")) { try { - Object object = new JSONParser(JSONParser.DEFAULT_PERMISSIVE_MODE) - .parse((String) textPayload); + Object object = new JSONParser(JSONParser.DEFAULT_PERMISSIVE_MODE).parse((String) textPayload); JSONObject jo = (JSONObject) object; String payload = (String) jo.get("payload"); JSONObject headersInJson = (JSONObject) jo.get("headers"); Map newHeaders = new HashMap(headers); newHeaders.putAll(headersInJson); - return MessageBuilder.createMessage(unquoted(payload), - new MessageHeaders(newHeaders)); + return MessageBuilder.createMessage(unquoted(payload), new MessageHeaders(newHeaders)); } catch (ParseException ex) { throw new IllegalStateException(ex); @@ -165,11 +156,9 @@ class Record { } private Object unquoted(Object value) { - String textPayload = value instanceof byte[] ? new String((byte[]) value) - : value.toString(); + String textPayload = value instanceof byte[] ? new String((byte[]) value) : value.toString(); if (textPayload.startsWith("\"") && textPayload.endsWith("\"")) { - return textPayload.substring(1, textPayload.length() - 1).replace("\\\"", - "\""); + return textPayload.substring(1, textPayload.length() - 1).replace("\\\"", "\""); } return textPayload; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaStubMessagesInitializer.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaStubMessagesInitializer.java index eacb42dfb5..1cbe67439b 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaStubMessagesInitializer.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaStubMessagesInitializer.java @@ -38,7 +38,6 @@ public interface KafkaStubMessagesInitializer { * @param kafkaProperties - kafka properties * @return topic to initialized consumer mapping */ - Map initialize(EmbeddedKafkaBroker broker, - KafkaProperties kafkaProperties); + Map initialize(EmbeddedKafkaBroker broker, KafkaProperties kafkaProperties); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfiguration.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfiguration.java index 32fdb1da73..c3f61f0c7f 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfiguration.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfiguration.java @@ -48,8 +48,7 @@ public class NoOpContractVerifierAutoConfiguration { @Bean @ConditionalOnMissingBean - public ContractVerifierMessaging contractVerifierMessaging( - MessageVerifier exchange) { + public ContractVerifierMessaging contractVerifierMessaging(MessageVerifier exchange) { return new ContractVerifierMessaging<>(exchange); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpStubMessages.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpStubMessages.java index 81741978aa..cc9ecd15a2 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpStubMessages.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpStubMessages.java @@ -32,13 +32,11 @@ public class NoOpStubMessages implements MessageVerifier { } @Override - public void send(T payload, Map headers, String destination, - YamlContract contract) { + public void send(T payload, Map headers, String destination, YamlContract contract) { } @Override - public Object receive(String destination, long timeout, TimeUnit timeUnit, - YamlContract contract) { + public Object receive(String destination, long timeout, TimeUnit timeUnit, YamlContract contract) { return null; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfiguration.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfiguration.java index 8f28dbc0f5..cc5d8b6bd4 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfiguration.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfiguration.java @@ -38,15 +38,13 @@ import org.springframework.util.Assert; */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass(EnableBinding.class) -@ConditionalOnProperty(name = "stubrunner.stream.enabled", havingValue = "true", - matchIfMissing = true) +@ConditionalOnProperty(name = "stubrunner.stream.enabled", havingValue = "true", matchIfMissing = true) @AutoConfigureBefore(NoOpContractVerifierAutoConfiguration.class) public class ContractVerifierStreamAutoConfiguration { @Bean @ConditionalOnMissingBean - public ContractVerifierMessaging contractVerifierMessagingConverter( - MessageVerifier> exchange) { + public ContractVerifierMessaging contractVerifierMessagingConverter(MessageVerifier> exchange) { return new ContractVerifierHelper(exchange); } @@ -56,18 +54,15 @@ public class ContractVerifierStreamAutoConfiguration { @Bean @ConditionalOnMissingBean - MessageVerifier> contractVerifierMessageExchangeWithDestinations( - ApplicationContext context) { - return new StreamStubMessages( - new StreamInputDestinationMessageSender(context), + MessageVerifier> contractVerifierMessageExchangeWithDestinations(ApplicationContext context) { + return new StreamStubMessages(new StreamInputDestinationMessageSender(context), new StreamOutputDestinationMessageReceiver(context)); } } @Configuration(proxyBeanMethods = false) - @ConditionalOnMissingClass({ - "org.springframework.cloud.stream.binder.test.InputDestination" }) + @ConditionalOnMissingClass({ "org.springframework.cloud.stream.binder.test.InputDestination" }) static class NoOpStreamClassConfiguration { @Bean diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/DestinationResolver.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/DestinationResolver.java index 93aaab0637..ebd489f809 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/DestinationResolver.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/DestinationResolver.java @@ -42,12 +42,12 @@ class DestinationResolver { BindingServiceProperties channelBindingServiceProperties = this.context .getBean(BindingServiceProperties.class); Map channels = new HashMap<>(); - for (Map.Entry entry : channelBindingServiceProperties - .getBindings().entrySet()) { + for (Map.Entry entry : channelBindingServiceProperties.getBindings() + .entrySet()) { if (destination.equals(entry.getValue().getDestination())) { if (log.isDebugEnabled()) { - log.debug("Found a channel named [" + entry.getKey() - + "] with destination [" + destination + "]"); + log.debug("Found a channel named [" + entry.getKey() + "] with destination [" + destination + + "]"); } channels.put(entry.getKey(), destination); } @@ -57,15 +57,12 @@ class DestinationResolver { } else if (channels.size() > 0) { if (log.isDebugEnabled()) { - log.debug("Found following channels [" + channels - + "] for destination [" + destination + "]. " + log.debug("Found following channels [" + channels + "] for destination [" + destination + "]. " + "Will pick the one that matches the default channel name or the first one if none is matching"); } - String defaultChannelName = channels - .get(defaultChannel.name().toLowerCase()); + String defaultChannelName = channels.get(defaultChannel.name().toLowerCase()); String matchingChannelName = StringUtils.hasText(defaultChannelName) - ? defaultChannel.name().toLowerCase() - : channels.keySet().iterator().next(); + ? defaultChannel.name().toLowerCase() : channels.keySet().iterator().next(); if (log.isDebugEnabled()) { log.debug("Picked channel name is [" + matchingChannelName + "]"); } @@ -73,10 +70,8 @@ class DestinationResolver { } } catch (Exception e) { - log.error( - "Exception took place while trying to resolve the destination. Will assume the name [" - + destination + "]", - e); + log.error("Exception took place while trying to resolve the destination. Will assume the name [" + + destination + "]", e); } if (log.isDebugEnabled()) { log.debug("No destination named [" + destination diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamFromBinderMappingMessageSender.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamFromBinderMappingMessageSender.java index 18677a619b..b0d74636fa 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamFromBinderMappingMessageSender.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamFromBinderMappingMessageSender.java @@ -32,8 +32,7 @@ import org.springframework.messaging.MessageChannel; */ class StreamFromBinderMappingMessageSender implements MessageVerifierSender> { - private static final Log log = LogFactory - .getLog(StreamFromBinderMappingMessageSender.class); + private static final Log log = LogFactory.getLog(StreamFromBinderMappingMessageSender.class); private final ApplicationContext context; @@ -41,29 +40,26 @@ class StreamFromBinderMappingMessageSender implements MessageVerifierSender void send(T payload, Map headers, String destination, - YamlContract contract) { + public void send(T payload, Map headers, String destination, YamlContract contract) { send(this.builder.create(payload, headers), destination, contract); } @Override public void send(Message message, String destination, YamlContract contract) { try { - MessageChannel messageChannel = this.context.getBean(this.resolver - .resolvedDestination(destination, DefaultChannels.OUTPUT), - MessageChannel.class); + MessageChannel messageChannel = this.context.getBean( + this.resolver.resolvedDestination(destination, DefaultChannels.OUTPUT), MessageChannel.class); messageChannel.send(message); } catch (Exception e) { - log.error("Exception occurred while trying to send a message [" + message - + "] " + "to a channel with name [" + destination + "]", e); + log.error("Exception occurred while trying to send a message [" + message + "] " + + "to a channel with name [" + destination + "]", e); throw e; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamInputDestinationMessageSender.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamInputDestinationMessageSender.java index e69258c7d3..ef7c2d5400 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamInputDestinationMessageSender.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamInputDestinationMessageSender.java @@ -32,8 +32,7 @@ import org.springframework.messaging.Message; */ class StreamInputDestinationMessageSender implements MessageVerifierSender> { - private static final Log log = LogFactory - .getLog(StreamInputDestinationMessageSender.class); + private static final Log log = LogFactory.getLog(StreamInputDestinationMessageSender.class); private final ApplicationContext context; @@ -44,21 +43,19 @@ class StreamInputDestinationMessageSender implements MessageVerifierSender void send(T payload, Map headers, String destination, - YamlContract contract) { + public void send(T payload, Map headers, String destination, YamlContract contract) { send(this.builder.create(payload, headers), destination, contract); } @Override public void send(Message message, String destination, YamlContract contract) { try { - InputDestination inputDestination = this.context - .getBean(InputDestination.class); + InputDestination inputDestination = this.context.getBean(InputDestination.class); inputDestination.send(message, destination); } catch (Exception e) { - log.error("Exception occurred while trying to send a message [" + message - + "] " + "to a destination with name [" + destination + "]", e); + log.error("Exception occurred while trying to send a message [" + message + "] " + + "to a destination with name [" + destination + "]", e); throw e; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamOutputDestinationMessageReceiver.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamOutputDestinationMessageReceiver.java index de1cdcde9c..f0b54cc5e7 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamOutputDestinationMessageReceiver.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamOutputDestinationMessageReceiver.java @@ -27,11 +27,9 @@ import org.springframework.cloud.stream.binder.test.OutputDestination; import org.springframework.context.ApplicationContext; import org.springframework.messaging.Message; -class StreamOutputDestinationMessageReceiver - implements MessageVerifierReceiver> { +class StreamOutputDestinationMessageReceiver implements MessageVerifierReceiver> { - private static final Log log = LogFactory - .getLog(StreamOutputDestinationMessageReceiver.class); + private static final Log log = LogFactory.getLog(StreamOutputDestinationMessageReceiver.class); private final ApplicationContext context; @@ -40,16 +38,14 @@ class StreamOutputDestinationMessageReceiver } @Override - public Message receive(String destination, long timeout, TimeUnit timeUnit, - YamlContract contract) { + public Message receive(String destination, long timeout, TimeUnit timeUnit, YamlContract contract) { try { - OutputDestination outputDestination = this.context - .getBean(OutputDestination.class); + OutputDestination outputDestination = this.context.getBean(OutputDestination.class); return outputDestination.receive(timeUnit.toMillis(timeout), destination); } catch (Exception e) { - log.error("Exception occurred while trying to read a message from " - + " a channel with name [" + destination + "]", e); + log.error("Exception occurred while trying to read a message from " + " a channel with name [" + destination + + "]", e); throw new IllegalStateException(e); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamPollableChannelMessageReceiver.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamPollableChannelMessageReceiver.java index edc7784ace..793ceceb1c 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamPollableChannelMessageReceiver.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamPollableChannelMessageReceiver.java @@ -31,11 +31,9 @@ import org.springframework.messaging.MessageHandler; import org.springframework.messaging.PollableChannel; import org.springframework.messaging.SubscribableChannel; -class StreamPollableChannelMessageReceiver - implements MessageVerifierReceiver> { +class StreamPollableChannelMessageReceiver implements MessageVerifierReceiver> { - private static final Log log = LogFactory - .getLog(StreamPollableChannelMessageReceiver.class); + private static final Log log = LogFactory.getLog(StreamPollableChannelMessageReceiver.class); private final ApplicationContext context; @@ -50,13 +48,13 @@ class StreamPollableChannelMessageReceiver } @Override - public Message receive(String destination, long timeout, TimeUnit timeUnit, - YamlContract contract) { + public Message receive(String destination, long timeout, TimeUnit timeUnit, YamlContract contract) { MessageHandler handler = this.messageChannel::send; MessageChannel channel = null; try { - channel = this.context.getBean(this.destinationResolver.resolvedDestination( - destination, DefaultChannels.INPUT), MessageChannel.class); + channel = this.context.getBean( + this.destinationResolver.resolvedDestination(destination, DefaultChannels.INPUT), + MessageChannel.class); if (channel instanceof SubscribableChannel) { ((SubscribableChannel) channel).subscribe(handler); return this.messageChannel.receive(timeUnit.toMillis(timeout)); @@ -67,8 +65,8 @@ class StreamPollableChannelMessageReceiver throw new IllegalStateException("Unsupported channel type"); } catch (Exception e) { - log.error("Exception occurred while trying to read a message from " - + " a channel with name [" + destination + "]", e); + log.error("Exception occurred while trying to read a message from " + " a channel with name [" + destination + + "]", e); throw new IllegalStateException(e); } finally { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamStubMessageSender.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamStubMessageSender.java index 21afa1c4ba..1b6f13fece 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamStubMessageSender.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamStubMessageSender.java @@ -46,8 +46,7 @@ class StreamStubMessageSender implements MessageVerifierSender> { } @Override - public void send(T payload, Map headers, String destination, - YamlContract contract) { + public void send(T payload, Map headers, String destination, YamlContract contract) { send(this.builder.create(payload, headers), destination, contract); } @@ -58,8 +57,8 @@ class StreamStubMessageSender implements MessageVerifierSender> { messageChannel.send(message); } catch (Exception e) { - log.error("Exception occurred while trying to send a message [" + message - + "] " + "to a channel with name [" + destination + "]", e); + log.error("Exception occurred while trying to send a message [" + message + "] " + + "to a channel with name [" + destination + "]", e); throw e; } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamStubMessages.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamStubMessages.java index fa407a5d21..30e9f0c135 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamStubMessages.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamStubMessages.java @@ -34,15 +34,13 @@ public class StreamStubMessages implements MessageVerifier> { private final MessageVerifierReceiver> receiver; - public StreamStubMessages(MessageVerifierSender> sender, - MessageVerifierReceiver> receiver) { + public StreamStubMessages(MessageVerifierSender> sender, MessageVerifierReceiver> receiver) { this.sender = sender; this.receiver = receiver; } @Override - public void send(T payload, Map headers, String destination, - YamlContract contract) { + public void send(T payload, Map headers, String destination, YamlContract contract) { this.sender.send(payload, headers, destination, contract); } @@ -52,8 +50,7 @@ public class StreamStubMessages implements MessageVerifier> { } @Override - public Message receive(String destination, long timeout, TimeUnit timeUnit, - YamlContract contract) { + public Message receive(String destination, long timeout, TimeUnit timeUnit, YamlContract contract) { return this.receiver.receive(destination, timeout, timeUnit, contract); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/template/HandlebarsTemplateProcessor.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/template/HandlebarsTemplateProcessor.java index 9d4d87336e..23f16090b5 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/template/HandlebarsTemplateProcessor.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/template/HandlebarsTemplateProcessor.java @@ -48,15 +48,12 @@ public class HandlebarsTemplateProcessor implements TemplateProcessor, ContractT private static final Pattern ESCAPED_JSON_PATH_PATTERN = Pattern .compile("^.*\\{\\{\\{jsonPath request.body '(.*)'}}}.*$"); - private static final Pattern LEGACY_JSON_PATH_PATTERN = Pattern - .compile("^.*\\{\\{jsonpath this '(.*)'}}.*$"); + private static final Pattern LEGACY_JSON_PATH_PATTERN = Pattern.compile("^.*\\{\\{jsonpath this '(.*)'}}.*$"); - private static final Pattern JSON_PATH_PATTERN = Pattern - .compile("^.*\\{\\{jsonPath request.body '(.*)'}}.*$"); + private static final Pattern JSON_PATH_PATTERN = Pattern.compile("^.*\\{\\{jsonPath request.body '(.*)'}}.*$"); - private static final List PATTERNS = Arrays.asList( - ESCAPED_LEGACY_JSON_PATH_PATTERN, ESCAPED_JSON_PATH_PATTERN, - LEGACY_JSON_PATH_PATTERN, JSON_PATH_PATTERN); + private static final List PATTERNS = Arrays.asList(ESCAPED_LEGACY_JSON_PATH_PATTERN, + ESCAPED_JSON_PATH_PATTERN, LEGACY_JSON_PATH_PATTERN, JSON_PATH_PATTERN); private static final String LEGACY_JSON_PATH_TEMPLATE_NAME = HandlebarsJsonPathHelper.NAME; @@ -66,8 +63,7 @@ public class HandlebarsTemplateProcessor implements TemplateProcessor, ContractT @Override public String transform(Request request, String testContents) { - TestSideRequestTemplateModel templateModel = TestSideRequestTemplateModel - .from(request); + TestSideRequestTemplateModel templateModel = TestSideRequestTemplateModel.from(request); Map model = Collections .singletonMap(HandlebarsJsonPathHelper.REQUEST_MODEL_NAME, templateModel); Template bodyTemplate = uncheckedCompileTemplate(testContents); @@ -76,8 +72,7 @@ public class HandlebarsTemplateProcessor implements TemplateProcessor, ContractT @Override public boolean containsTemplateEntry(String line) { - return (line.contains(contractTemplate.openingTemplate()) - && line.contains(contractTemplate.closingTemplate())) + return (line.contains(contractTemplate.openingTemplate()) && line.contains(contractTemplate.closingTemplate())) || (line.contains(contractTemplate.escapedOpeningTemplate()) && line.contains(contractTemplate.escapedClosingTemplate())); } @@ -86,8 +81,7 @@ public class HandlebarsTemplateProcessor implements TemplateProcessor, ContractT public boolean containsJsonPathTemplateEntry(String line) { return line.contains(openingTemplate() + LEGACY_JSON_PATH_TEMPLATE_NAME) || line.contains(openingTemplate() + JSON_PATH_TEMPLATE_NAME) - || line.contains( - escapedOpeningTemplate() + LEGACY_JSON_PATH_TEMPLATE_NAME) + || line.contains(escapedOpeningTemplate() + LEGACY_JSON_PATH_TEMPLATE_NAME) || line.contains(escapedOpeningTemplate() + JSON_PATH_TEMPLATE_NAME); } @@ -105,8 +99,7 @@ public class HandlebarsTemplateProcessor implements TemplateProcessor, ContractT return ""; } - private String templatedResponseBody(Map model, - Template bodyTemplate) { + private String templatedResponseBody(Map model, Template bodyTemplate) { return uncheckedApplyTemplate(bodyTemplate, model); } @@ -122,12 +115,9 @@ public class HandlebarsTemplateProcessor implements TemplateProcessor, ContractT private Template uncheckedCompileTemplate(String content) { try { final Handlebars handlebars = new Handlebars(); - handlebars.registerHelper(HandlebarsJsonPathHelper.NAME, - new HandlebarsJsonPathHelper()); - handlebars.registerHelper(WireMockHelpers.jsonPath.name(), - new HandlebarsJsonPathHelper()); - Arrays.stream(WireMockHelpers.values()) - .filter(helper -> !helper.equals(WireMockHelpers.jsonPath)) + handlebars.registerHelper(HandlebarsJsonPathHelper.NAME, new HandlebarsJsonPathHelper()); + handlebars.registerHelper(WireMockHelpers.jsonPath.name(), new HandlebarsJsonPathHelper()); + Arrays.stream(WireMockHelpers.values()).filter(helper -> !helper.equals(WireMockHelpers.jsonPath)) .forEach(helper -> handlebars.registerHelper(helper.name(), helper)); return handlebars.compileInline(content); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/ContractScanner.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/ContractScanner.java index 68ecb11aaa..d321fab7ce 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/ContractScanner.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/ContractScanner.java @@ -65,13 +65,11 @@ public final class ContractScanner { * @param predicate - test applied against a file * @return collection of converted contracts */ - public static Collection collectContractDescriptors(File rootDirectory, - Predicate predicate) { + public static Collection collectContractDescriptors(File rootDirectory, Predicate predicate) { try { - return Files.walk(rootDirectory.toPath()).map(Path::toFile) - .filter(file -> !file.isDirectory()).filter(predicate) - .map(ContractScanner::doCollectContractDescriptors) - .flatMap(Collection::stream).collect(Collectors.toList()); + return Files.walk(rootDirectory.toPath()).map(Path::toFile).filter(file -> !file.isDirectory()) + .filter(predicate).map(ContractScanner::doCollectContractDescriptors).flatMap(Collection::stream) + .collect(Collectors.toList()); } catch (IOException e) { log.warn("Exception occurred while trying to parse file", e); @@ -81,8 +79,7 @@ public final class ContractScanner { private static Collection doCollectContractDescriptors(File file) { if (isContractDescriptor(file)) { - return ContractVerifierDslConverter.convertAsCollection(file.getParentFile(), - file); + return ContractVerifierDslConverter.convertAsCollection(file.getParentFile(), file); } ContractConverter converter = contractConverter(file); if (converter != null && converter.isAccepted(file)) { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/DelegatingJsonVerifiable.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/DelegatingJsonVerifiable.java index 0e9348f587..63ac51ac40 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/DelegatingJsonVerifiable.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/DelegatingJsonVerifiable.java @@ -35,11 +35,9 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { private static final Log log = LogFactory.getLog(DelegatingJsonVerifiable.class); - private static final Pattern FIELD_PATTERN = Pattern - .compile("\\.field\\((\")?(.)+(\")?\\)"); + private static final Pattern FIELD_PATTERN = Pattern.compile("\\.field\\((\")?(.)+(\")?\\)"); - private static final Pattern ARRAY_PATTERN = Pattern - .compile("\\.array\\((\")?(.)+(\")?\\)"); + private static final Pattern ARRAY_PATTERN = Pattern.compile("\\.array\\((\")?(.)+(\")?\\)"); final JsonVerifiable delegate; @@ -47,8 +45,7 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { final Object valueToCheck; - DelegatingJsonVerifiable(JsonVerifiable delegate, LinkedList methodsBuffer, - Object valueToCheck) { + DelegatingJsonVerifiable(JsonVerifiable delegate, LinkedList methodsBuffer, Object valueToCheck) { this.delegate = delegate; this.methodsBuffer = new LinkedList<>(methodsBuffer); this.valueToCheck = valueToCheck; @@ -72,8 +69,7 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { } private static String wrapValueWithQuotes(Object value) { - return value instanceof String ? "\"" + stringWithEscapedQuotes(value) + "\"" - : value.toString(); + return value instanceof String ? "\"" + stringWithEscapedQuotes(value) + "\"" : value.toString(); } private void appendMethodWithValue(String methodName, Object value) { @@ -86,9 +82,8 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { @Override public MethodBufferingJsonVerifiable contains(Object value) { - DelegatingJsonVerifiable verifiable = new FinishedDelegatingJsonVerifiable( - this.delegate.jsonPath(), this.delegate.contains(value), - this.methodsBuffer); + DelegatingJsonVerifiable verifiable = new FinishedDelegatingJsonVerifiable(this.delegate.jsonPath(), + this.delegate.contains(value), this.methodsBuffer); verifiable.appendMethodWithQuotedValue("contains", value); if (isAssertingAValueInArray()) { verifiable.methodsBuffer.offer(".value()"); @@ -98,11 +93,10 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { @Override public MethodBufferingJsonVerifiable field(Object value) { - Object valueToPut = value instanceof ShouldTraverse - ? ((ShouldTraverse) value).value : value; + Object valueToPut = value instanceof ShouldTraverse ? ((ShouldTraverse) value).value : value; Object wrappedValue = wrapInBrackets(valueToPut); - DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable( - this.delegate.field(wrappedValue), this.methodsBuffer, value); + DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable(this.delegate.field(wrappedValue), + this.methodsBuffer, value); if (this.delegate.isIteratingOverArray() && !(value instanceof ShouldTraverse)) { verifiable.appendMethodWithQuotedValue("contains", wrappedValue); } @@ -124,8 +118,8 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { @Override public MethodBufferingJsonVerifiable array(Object value) { Object valueToPut = wrapInBrackets(value); - DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable( - this.delegate.array(valueToPut), this.methodsBuffer, value); + DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable(this.delegate.array(valueToPut), + this.methodsBuffer, value); verifiable.appendMethodWithQuotedValue("array", valueToPut); return verifiable; } @@ -133,32 +127,31 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { @Override public MethodBufferingJsonVerifiable arrayField(Object value) { Object valueToPut = wrapInBrackets(value); - DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable( - this.delegate.field(valueToPut).arrayField(), this.methodsBuffer, value); + DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable(this.delegate.field(valueToPut).arrayField(), + this.methodsBuffer, value); verifiable.appendMethodWithQuotedValue("array", valueToPut); return verifiable; } @Override public MethodBufferingJsonVerifiable arrayField() { - DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable( - this.delegate.arrayField(), this.methodsBuffer); + DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable(this.delegate.arrayField(), + this.methodsBuffer); verifiable.methodsBuffer.offer(".arrayField()"); return verifiable; } @Override public MethodBufferingJsonVerifiable array() { - DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable( - this.delegate.array(), this.methodsBuffer); + DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable(this.delegate.array(), this.methodsBuffer); verifiable.methodsBuffer.offer(".array()"); return verifiable; } @Override public JsonVerifiable elementWithIndex(int i) { - DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable( - this.delegate.elementWithIndex(i), this.methodsBuffer); + DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable(this.delegate.elementWithIndex(i), + this.methodsBuffer); this.methodsBuffer.offer(".elementWithIndex(" + i + ")"); return verifiable; } @@ -170,22 +163,17 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { @Override public MethodBufferingJsonVerifiable isEqualTo(String value) { - DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable( - this.delegate.jsonPath(), this.delegate.isEqualTo(value), - this.methodsBuffer, value); - if (this.delegate.isAssertingAValueInArray() - && readyToCheck.methodsBuffer.peekLast().equals(".arrayField()")) { - readyToCheck.appendMethodWithQuotedValue("isEqualTo", - escapedHackedJavaText(value)); + DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable(this.delegate.jsonPath(), + this.delegate.isEqualTo(value), this.methodsBuffer, value); + if (this.delegate.isAssertingAValueInArray() && readyToCheck.methodsBuffer.peekLast().equals(".arrayField()")) { + readyToCheck.appendMethodWithQuotedValue("isEqualTo", escapedHackedJavaText(value)); readyToCheck.methodsBuffer.offer(".value()"); } - else if (this.delegate.isAssertingAValueInArray() - && !readyToCheck.methodsBuffer.peekLast().contains("array")) { + else if (this.delegate.isAssertingAValueInArray() && !readyToCheck.methodsBuffer.peekLast().contains("array")) { readyToCheck.methodsBuffer.offer(".value()"); } else { - readyToCheck.appendMethodWithQuotedValue("isEqualTo", - escapedHackedJavaText(value)); + readyToCheck.appendMethodWithQuotedValue("isEqualTo", escapedHackedJavaText(value)); } return readyToCheck; } @@ -200,9 +188,8 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { @Override public MethodBufferingJsonVerifiable isEqualTo(Number value) { - DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable( - this.delegate.jsonPath(), this.delegate.isEqualTo(value), - this.methodsBuffer, value); + DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable(this.delegate.jsonPath(), + this.delegate.isEqualTo(value), this.methodsBuffer, value); // related to #271 - the problem is with asserting arrays of maps vs arrays of // primitives String last = readyToCheck.methodsBuffer.peekLast(); @@ -211,56 +198,50 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { readyToCheck.methodsBuffer.offer(".value()"); } else { - readyToCheck.appendMethodWithValue("isEqualTo", value instanceof Long - ? String.valueOf(value).concat("L") : String.valueOf(value)); + readyToCheck.appendMethodWithValue("isEqualTo", + value instanceof Long ? String.valueOf(value).concat("L") : String.valueOf(value)); } return readyToCheck; } private boolean containsAnyMatcher(String string) { - return string.contains("isEqualTo") || string.contains("matches") - || string.contains("isNull"); + return string.contains("isEqualTo") || string.contains("matches") || string.contains("isNull"); } @Override public MethodBufferingJsonVerifiable isNull() { - DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable( - this.delegate.jsonPath(), this.delegate.isNull(), this.methodsBuffer); + DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable(this.delegate.jsonPath(), + this.delegate.isNull(), this.methodsBuffer); readyToCheck.methodsBuffer.offer(".isNull()"); return readyToCheck; } @Override public MethodBufferingJsonVerifiable isEmpty() { - DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable( - this.delegate.jsonPath(), this.delegate.isEmpty(), this.methodsBuffer); + DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable(this.delegate.jsonPath(), + this.delegate.isEmpty(), this.methodsBuffer); readyToCheck.methodsBuffer.offer(".isEmpty()"); return readyToCheck; } @Override - public MethodBufferingJsonVerifiable isInstanceOf(Class clazz) - throws IllegalStateException { - DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable( - this.delegate.jsonPath(), this.delegate.isInstanceOf(clazz), - this.methodsBuffer); + public MethodBufferingJsonVerifiable isInstanceOf(Class clazz) throws IllegalStateException { + DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable(this.delegate.jsonPath(), + this.delegate.isInstanceOf(clazz), this.methodsBuffer); readyToCheck.methodsBuffer.offer(".isInstanceOf(" + clazz.getName() + ")"); return readyToCheck; } @Override public MethodBufferingJsonVerifiable matches(String value) { - DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable( - this.delegate.jsonPath(), this.delegate.matches(value), - this.methodsBuffer, compilePattern(value)); + DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable(this.delegate.jsonPath(), + this.delegate.matches(value), this.methodsBuffer, compilePattern(value)); if (this.delegate.isAssertingAValueInArray()) { - readyToCheck.appendMethodWithQuotedValue("matches", - escapedHackedJavaText(value)); + readyToCheck.appendMethodWithQuotedValue("matches", escapedHackedJavaText(value)); readyToCheck.methodsBuffer.offer(".value()"); } else { - readyToCheck.appendMethodWithQuotedValue("matches", - escapedHackedJavaText(value)); + readyToCheck.appendMethodWithQuotedValue("matches", escapedHackedJavaText(value)); } return readyToCheck; } @@ -291,9 +272,8 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { @Override public MethodBufferingJsonVerifiable isEqualTo(Boolean value) { - DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable( - this.delegate.jsonPath(), this.delegate.isEqualTo(value), - this.methodsBuffer, value); + DelegatingJsonVerifiable readyToCheck = new FinishedDelegatingJsonVerifiable(this.delegate.jsonPath(), + this.delegate.isEqualTo(value), this.methodsBuffer, value); if (this.delegate.isAssertingAValueInArray()) { readyToCheck.methodsBuffer.offer(".value()"); } @@ -331,8 +311,7 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { @Override public boolean assertsConcreteValue() { for (String s : this.methodsBuffer) { - if (FIELD_PATTERN.matcher(s).matches() - || ARRAY_PATTERN.matcher(s).matches()) { + if (FIELD_PATTERN.matcher(s).matches() || ARRAY_PATTERN.matcher(s).matches()) { return true; } } @@ -356,9 +335,8 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { @Override public JsonVerifiable hasSize(int size) { - FinishedDelegatingJsonVerifiable verifiable = new FinishedDelegatingJsonVerifiable( - this.delegate.jsonPath(), this.delegate.hasSize(size), - this.methodsBuffer); + FinishedDelegatingJsonVerifiable verifiable = new FinishedDelegatingJsonVerifiable(this.delegate.jsonPath(), + this.delegate.hasSize(size), this.methodsBuffer); verifiable.methodsBuffer.offer(".hasSize(" + size + ")"); return verifiable; } @@ -420,8 +398,8 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable { @Override public String toString() { - return "DelegatingJsonVerifiable{" + "delegate=\n" + this.delegate - + ", methodsBuffer=" + this.methodsBuffer + '}'; + return "DelegatingJsonVerifiable{" + "delegate=\n" + this.delegate + ", methodsBuffer=" + this.methodsBuffer + + '}'; } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/FinishedDelegatingJsonVerifiable.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/FinishedDelegatingJsonVerifiable.java index 25fc8a64e0..43287365bf 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/FinishedDelegatingJsonVerifiable.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/FinishedDelegatingJsonVerifiable.java @@ -43,8 +43,7 @@ class FinishedDelegatingJsonVerifiable extends DelegatingJsonVerifiable { this.keyBeforeChecking = keyBeforeChecking; } - FinishedDelegatingJsonVerifiable(JsonVerifiable delegate, - LinkedList methodsBuffer) { + FinishedDelegatingJsonVerifiable(JsonVerifiable delegate, LinkedList methodsBuffer) { super(delegate, methodsBuffer); this.keyBeforeChecking = delegate.jsonPath(); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/MetadataUtil.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/MetadataUtil.java index 4f7cb69946..165a83c646 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/MetadataUtil.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/MetadataUtil.java @@ -61,8 +61,7 @@ public final class MetadataUtil { * @return merged object with metadata or object without metadata entries if metadata * key wasn't present */ - public static T fromMetadata(Map metadata, String key, - T objectToMerge) { + public static T fromMetadata(Map metadata, String key, T objectToMerge) { if (metadata == null || !metadata.containsKey(key)) { return objectToMerge; } @@ -185,8 +184,7 @@ class VerifierObjectMapper extends ObjectMapper { .setDefaultPropertyInclusion(JsonInclude.Include.NON_EMPTY) .setDefaultPropertyInclusion(JsonInclude.Include.NON_ABSENT); configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - FilterProvider filters = new SimpleFilterProvider() - .addFilter("non default properties", new MyFilter()); + FilterProvider filters = new SimpleFilterProvider().addFilter("non default properties", new MyFilter()); addMixIn(Object.class, PropertyFilterMixIn.class); setFilterProvider(filters); } @@ -203,14 +201,13 @@ class MyFilter extends SimpleBeanPropertyFilter implements Serializable { private static final Map CACHE = new ConcurrentHashMap<>(); @Override - public void serializeAsField(Object pojo, JsonGenerator jgen, - SerializerProvider provider, PropertyWriter writer) throws Exception { + public void serializeAsField(Object pojo, JsonGenerator jgen, SerializerProvider provider, PropertyWriter writer) + throws Exception { if (pojo instanceof Map || pojo instanceof Collection) { writer.serializeAsField(pojo, jgen, provider); return; } - Object defaultInstance = CACHE.computeIfAbsent(pojo.getClass(), - this::defaultInstance); + Object defaultInstance = CACHE.computeIfAbsent(pojo.getClass(), this::defaultInstance); if (defaultInstance instanceof CantInstantiateThisClass || !valueSameAsDefault(pojo, defaultInstance, writer.getName())) { writer.serializeAsField(pojo, jgen, provider); @@ -226,8 +223,7 @@ class MyFilter extends SimpleBeanPropertyFilter implements Serializable { } } - private boolean valueSameAsDefault(Object pojo, Object defaultInstance, - String fieldName) { + private boolean valueSameAsDefault(Object pojo, Object defaultInstance, String fieldName) { Field field = ReflectionUtils.findField(pojo.getClass(), fieldName); if (field == null) { return false; diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/NamesUtil.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/NamesUtil.java index 21e5db113c..beda224d4d 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/NamesUtil.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/NamesUtil.java @@ -91,8 +91,7 @@ public final class NamesUtil { * consideration also the index of contract (for multiple contracts * stored in a * single file). */ - public static String defaultContractName(File file, Collection contracts, - int counter) { + public static String defaultContractName(File file, Collection contracts, int counter) { int lastIndexOfDot = file.getName().lastIndexOf("."); String tillExtension = file.getName().substring(0, lastIndexOfDot); return tillExtension + (counter > 0 || contracts.size() > 1 ? "_" + counter : ""); @@ -146,8 +145,8 @@ public final class NamesUtil { * Converts the path format to a Java package notation. */ public static String directoryToPackage(String directory) { - return directory.replace('.', '_').replace(File.separatorChar, '.') - .replaceAll("\\.([0-9])", "._$1").replaceAll("^([0-9].*)", "_$1"); + return directory.replace('.', '_').replace(File.separatorChar, '.').replaceAll("\\.([0-9])", "._$1") + .replaceAll("^([0-9].*)", "_$1"); } /** @@ -193,8 +192,7 @@ public final class NamesUtil { String name = dir.toFile().getName(); String convertedName = directoryToPackage(name); if (!name.equals(convertedName)) { - this.filesToRename - .addFirst(new FileAndNewName(dir.toFile(), convertedName)); + this.filesToRename.addFirst(new FileAndNewName(dir.toFile(), convertedName)); } return FileVisitResult.CONTINUE; @@ -202,8 +200,7 @@ public final class NamesUtil { public void rename() { this.filesToRename.forEach(fileAndNewName -> { - fileAndNewName.file.renameTo(new File(fileAndNewName.file.getParentFile(), - fileAndNewName.newName)); + fileAndNewName.file.renameTo(new File(fileAndNewName.file.getParentFile(), fileAndNewName.newName)); }); } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/ToFileContractsTransformer.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/ToFileContractsTransformer.java index 427c95129d..3c09b5638d 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/ToFileContractsTransformer.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/ToFileContractsTransformer.java @@ -42,8 +42,7 @@ import static org.springframework.cloud.contract.verifier.util.ContractScanner.c */ public final class ToFileContractsTransformer { - private static final Logger log = LoggerFactory - .getLogger(ToFileContractsTransformer.class); + private static final Logger log = LoggerFactory.getLogger(ToFileContractsTransformer.class); /** * Dumps contracts as files for the given {@link ContractConverter}. @@ -58,8 +57,7 @@ public final class ToFileContractsTransformer { if (args.length == 0) { throw new IllegalStateException(exceptionMessage()); } - log.warn( - "You're using an incubating feature. Note, that it can be changed / removed in the future"); + log.warn("You're using an incubating feature. Note, that it can be changed / removed in the future"); String fqn = args[0]; String outputPath = args.length >= 2 ? args[1] : "target/converted-contracts"; String path = args.length >= 3 ? args[2] : "src/test/resources/contracts"; @@ -84,8 +82,7 @@ public final class ToFileContractsTransformer { Collection contracts = collectContractDescriptors(new File(path)); log.info("Found [{}] contract definition", contracts.size()); Class name = Class.forName(fqn); - ContractConverter contractConverter = (ContractConverter) name - .newInstance(); + ContractConverter contractConverter = (ContractConverter) name.newInstance(); Collection converted = contractConverter.convertTo(contracts); log.info("Successfully converted contracts definitions"); Map stored = contractConverter.store(converted); @@ -98,8 +95,7 @@ public final class ToFileContractsTransformer { for (Map.Entry entry : entries) { File outputFile = new File(outputFolder, entry.getKey()); Files.write(outputFile.toPath(), entry.getValue()); - log.info("[{}/{}] Successfully stored [{}]", i, entries.size(), - outputFile.getName()); + log.info("[{}/{}] Successfully stored [{}]", i, entries.size(), outputFile.getName()); files.add(outputFile); } return files; diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/ArrayValueAssertion.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/ArrayValueAssertion.java index 9b7d9e5494..e1976397d1 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/ArrayValueAssertion.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/ArrayValueAssertion.java @@ -29,17 +29,14 @@ class ArrayValueAssertion extends FieldAssertion implements XmlArrayVerifiable { ArrayValueAssertion(XmlCachedObjects cachedObjects, LinkedList xPathBuffer, LinkedList specialCaseXPathBuffer, Object arrayName, XmlAsserterConfiguration xmlAsserterConfiguration) { - super(cachedObjects, xPathBuffer, specialCaseXPathBuffer, arrayName, - xmlAsserterConfiguration); + super(cachedObjects, xPathBuffer, specialCaseXPathBuffer, arrayName, xmlAsserterConfiguration); this.checkingPrimitiveType = true; } - private ArrayValueAssertion(XmlCachedObjects cachedObjects, - LinkedList xPathBuffer, LinkedList specialCaseXPathBuffer, - Object arrayName, XmlAsserterConfiguration xmlAsserterConfiguration, - boolean checkingPrimitiveType) { - super(cachedObjects, xPathBuffer, specialCaseXPathBuffer, arrayName, - xmlAsserterConfiguration); + private ArrayValueAssertion(XmlCachedObjects cachedObjects, LinkedList xPathBuffer, + LinkedList specialCaseXPathBuffer, Object arrayName, + XmlAsserterConfiguration xmlAsserterConfiguration, boolean checkingPrimitiveType) { + super(cachedObjects, xPathBuffer, specialCaseXPathBuffer, arrayName, xmlAsserterConfiguration); this.checkingPrimitiveType = checkingPrimitiveType; } @@ -50,30 +47,27 @@ class ArrayValueAssertion extends FieldAssertion implements XmlArrayVerifiable { @Override public XmlArrayVerifiable contains(String value) { - return new ArrayValueAssertion(this.cachedObjects, this.xPathBuffer, - this.specialCaseXPathBuffer, value, this.xmlAsserterConfiguration, false); + return new ArrayValueAssertion(this.cachedObjects, this.xPathBuffer, this.specialCaseXPathBuffer, value, + this.xmlAsserterConfiguration, false); } @Override public XmlArrayVerifiable hasSize(int size) { String xPath = "count(" + createXPathString() + ")"; - ArrayValueAssertion verifiable = new ArrayValueAssertion(this, - this.checkingPrimitiveType); + ArrayValueAssertion verifiable = new ArrayValueAssertion(this, this.checkingPrimitiveType); verifiable.specialCaseXPathBuffer.clear(); verifiable.specialCaseXPathBuffer.add(xPath); String xPathString = verifiable.createSpecialCaseXPathString(); ResultSequence sequence = verifiable.resultSequence(xPathString); Iterator iterator = sequence.iterator(); if (!iterator.hasNext()) { - throw new IllegalStateException( - "Parsed XML [" + this.cachedObjects.xmlAsString - + "] doesn't match the XPath <" + xPathString + ">"); + throw new IllegalStateException("Parsed XML [" + this.cachedObjects.xmlAsString + + "] doesn't match the XPath <" + xPathString + ">"); } int retrievedSize = Integer.valueOf(iterator.next().getStringValue()); if (retrievedSize != size) { - throw new IllegalStateException("Parsed XML [" - + this.cachedObjects.xmlAsString + "] has size [" + retrievedSize - + "] and not [" + size + "] for XPath <" + xPathString + "> "); + throw new IllegalStateException("Parsed XML [" + this.cachedObjects.xmlAsString + "] has size [" + + retrievedSize + "] and not [" + size + "] for XPath <" + xPathString + "> "); } return verifiable; } @@ -112,8 +106,8 @@ class ArrayValueAssertion extends FieldAssertion implements XmlArrayVerifiable { } private XmlVerifiable equalityOnAPrimitive(String xPath) { - ReadyToCheckAsserter readyToCheck = new ReadyToCheckAsserter(this.cachedObjects, - this.xPathBuffer, this.fieldName, this.xmlAsserterConfiguration); + ReadyToCheckAsserter readyToCheck = new ReadyToCheckAsserter(this.cachedObjects, this.xPathBuffer, + this.fieldName, this.xmlAsserterConfiguration); readyToCheck.xPathBuffer.removeLast(); readyToCheck.xPathBuffer.offer(xPath); readyToCheck.checkBufferedXPathString(); @@ -125,8 +119,7 @@ class ArrayValueAssertion extends FieldAssertion implements XmlArrayVerifiable { if (!this.checkingPrimitiveType) { return super.matches(value); } - return equalityOnAPrimitive( - "[matches(text(), " + escapeText(escapeRegex(value)) + ")]"); + return equalityOnAPrimitive("[matches(text(), " + escapeText(escapeRegex(value)) + ")]"); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/FieldAssertion.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/FieldAssertion.java index 61ee38159f..ed89ab2f85 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/FieldAssertion.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/FieldAssertion.java @@ -23,8 +23,7 @@ class FieldAssertion extends XmlAsserter { FieldAssertion(XmlCachedObjects cachedObjects, LinkedList xPathBuffer, LinkedList specialCaseXPathBuffer, Object value, XmlAsserterConfiguration xmlAsserterConfiguration) { - super(cachedObjects, xPathBuffer, specialCaseXPathBuffer, value, - xmlAsserterConfiguration); + super(cachedObjects, xPathBuffer, specialCaseXPathBuffer, value, xmlAsserterConfiguration); } FieldAssertion(XmlAsserter asserter) { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/ReadyToCheckAsserter.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/ReadyToCheckAsserter.java index 467a5eb5cf..f8910f1bac 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/ReadyToCheckAsserter.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/ReadyToCheckAsserter.java @@ -20,10 +20,9 @@ import java.util.LinkedList; class ReadyToCheckAsserter extends XmlAsserter { - ReadyToCheckAsserter(XmlCachedObjects cachedObjects, LinkedList xPathBuffer, - Object fieldName, XmlAsserterConfiguration xmlAsserterConfiguration) { - super(cachedObjects, xPathBuffer, new LinkedList(), fieldName, - xmlAsserterConfiguration); + ReadyToCheckAsserter(XmlCachedObjects cachedObjects, LinkedList xPathBuffer, Object fieldName, + XmlAsserterConfiguration xmlAsserterConfiguration) { + super(cachedObjects, xPathBuffer, new LinkedList(), fieldName, xmlAsserterConfiguration); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/XmlAsserter.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/XmlAsserter.java index b9f55d821e..34430481a5 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/XmlAsserter.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/XmlAsserter.java @@ -32,8 +32,7 @@ class XmlAsserter implements XmlVerifiable { private static final Log log = LogFactory.getLog(XmlAsserter.class); - private final static Pattern SPECIAL_REGEX_CHARS = Pattern - .compile("[{}()\\[\\].+*?^$\\\\|]"); + private final static Pattern SPECIAL_REGEX_CHARS = Pattern.compile("[{}()\\[\\].+*?^$\\\\|]"); final XmlCachedObjects cachedObjects; @@ -111,8 +110,8 @@ class XmlAsserter implements XmlVerifiable { @Override public FieldAssertion node(final String value) { - FieldAssertion asserter = new FieldAssertion(this.cachedObjects, this.xPathBuffer, - this.specialCaseXPathBuffer, value, this.xmlAsserterConfiguration); + FieldAssertion asserter = new FieldAssertion(this.cachedObjects, this.xPathBuffer, this.specialCaseXPathBuffer, + value, this.xmlAsserterConfiguration); asserter.xPathBuffer.offer(String.valueOf(value)); asserter.xPathBuffer.offer("/"); return asserter; @@ -120,17 +119,15 @@ class XmlAsserter implements XmlVerifiable { @Override public XmlVerifiable withAttribute(String attribute, String attributeValue) { - FieldAssertion asserter = new FieldAssertion(this.cachedObjects, this.xPathBuffer, - this.specialCaseXPathBuffer, this.fieldName, - this.xmlAsserterConfiguration); + FieldAssertion asserter = new FieldAssertion(this.cachedObjects, this.xPathBuffer, this.specialCaseXPathBuffer, + this.fieldName, this.xmlAsserterConfiguration); if (asserter.xPathBuffer.peekLast().equals("/")) { asserter.xPathBuffer.removeLast(); } if (isReadyToCheck()) { asserter.xPathBuffer.offer("/" + this.fieldName); } - asserter.xPathBuffer.offer("[@" + String.valueOf(attribute) + "=" - + escapeText(attributeValue) + "]"); + asserter.xPathBuffer.offer("[@" + String.valueOf(attribute) + "=" + escapeText(attributeValue) + "]"); updateCurrentBuffer(asserter); asserter.checkBufferedXPathString(); return asserter; @@ -138,9 +135,8 @@ class XmlAsserter implements XmlVerifiable { @Override public XmlVerifiable withAttribute(String attribute) { - FieldAssertion asserter = new FieldAssertion(this.cachedObjects, this.xPathBuffer, - this.specialCaseXPathBuffer, this.fieldName, - this.xmlAsserterConfiguration); + FieldAssertion asserter = new FieldAssertion(this.cachedObjects, this.xPathBuffer, this.specialCaseXPathBuffer, + this.fieldName, this.xmlAsserterConfiguration); asserter.xPathBuffer.offer("@" + String.valueOf(attribute)); updateCurrentBuffer(asserter); asserter.checkBufferedXPathString(); @@ -149,18 +145,16 @@ class XmlAsserter implements XmlVerifiable { @Override public XmlVerifiable text() { - FieldAssertion asserter = new FieldAssertion(this.cachedObjects, this.xPathBuffer, - this.specialCaseXPathBuffer, this.fieldName, - this.xmlAsserterConfiguration); + FieldAssertion asserter = new FieldAssertion(this.cachedObjects, this.xPathBuffer, this.specialCaseXPathBuffer, + this.fieldName, this.xmlAsserterConfiguration); asserter.xPathBuffer.offer("text()"); return asserter; } @Override public XmlVerifiable index(int index) { - FieldAssertion asserter = new FieldAssertion(this.cachedObjects, this.xPathBuffer, - this.specialCaseXPathBuffer, this.fieldName, - this.xmlAsserterConfiguration); + FieldAssertion asserter = new FieldAssertion(this.cachedObjects, this.xPathBuffer, this.specialCaseXPathBuffer, + this.fieldName, this.xmlAsserterConfiguration); if (asserter.xPathBuffer.peekLast().equals("/")) { asserter.xPathBuffer.removeLast(); } @@ -180,9 +174,8 @@ class XmlAsserter implements XmlVerifiable { @Override public XmlArrayVerifiable array(final String value) { - ArrayValueAssertion asserter = new ArrayValueAssertion(this.cachedObjects, - this.xPathBuffer, this.specialCaseXPathBuffer, value, - this.xmlAsserterConfiguration); + ArrayValueAssertion asserter = new ArrayValueAssertion(this.cachedObjects, this.xPathBuffer, + this.specialCaseXPathBuffer, value, this.xmlAsserterConfiguration); asserter.xPathBuffer.offer(String.valueOf(value)); asserter.xPathBuffer.offer("/"); return asserter; @@ -193,11 +186,10 @@ class XmlAsserter implements XmlVerifiable { if (value == null) { return isNull(); } - ReadyToCheckAsserter readyToCheck = new ReadyToCheckAsserter(this.cachedObjects, - this.xPathBuffer, this.fieldName, this.xmlAsserterConfiguration); + ReadyToCheckAsserter readyToCheck = new ReadyToCheckAsserter(this.cachedObjects, this.xPathBuffer, + this.fieldName, this.xmlAsserterConfiguration); removeLastFieldElement(readyToCheck); - readyToCheck.xPathBuffer - .offer("[" + this.fieldName + "=" + escapeText(value) + "]"); + readyToCheck.xPathBuffer.offer("[" + this.fieldName + "=" + escapeText(value) + "]"); updateCurrentBuffer(readyToCheck); readyToCheck.checkBufferedXPathString(); return readyToCheck; @@ -234,11 +226,10 @@ class XmlAsserter implements XmlVerifiable { } private XmlVerifiable xmlVerifiableFromObject(Object value) { - ReadyToCheckAsserter readyToCheck = new ReadyToCheckAsserter(this.cachedObjects, - this.xPathBuffer, this.fieldName, this.xmlAsserterConfiguration); + ReadyToCheckAsserter readyToCheck = new ReadyToCheckAsserter(this.cachedObjects, this.xPathBuffer, + this.fieldName, this.xmlAsserterConfiguration); removeLastFieldElement(readyToCheck); - readyToCheck.xPathBuffer - .offer("[" + this.fieldName + "=" + String.valueOf(value) + "]"); + readyToCheck.xPathBuffer.offer("[" + this.fieldName + "=" + String.valueOf(value) + "]"); // and finally '/foo/bar[baz='sth'] updateCurrentBuffer(readyToCheck); readyToCheck.checkBufferedXPathString(); @@ -258,8 +249,8 @@ class XmlAsserter implements XmlVerifiable { @Override public XmlVerifiable isNull() { - ReadyToCheckAsserter readyToCheck = new ReadyToCheckAsserter(this.cachedObjects, - this.xPathBuffer, this.fieldName, this.xmlAsserterConfiguration); + ReadyToCheckAsserter readyToCheck = new ReadyToCheckAsserter(this.cachedObjects, this.xPathBuffer, + this.fieldName, this.xmlAsserterConfiguration); String xpath = createXPathString(); readyToCheck.xPathBuffer.clear(); readyToCheck.xPathBuffer.offer("not(boolean(" + xpath + "/text()[1]))"); @@ -273,11 +264,10 @@ class XmlAsserter implements XmlVerifiable { if (value == null) { return isNull(); } - ReadyToCheckAsserter readyToCheck = new ReadyToCheckAsserter(this.cachedObjects, - this.xPathBuffer, this.fieldName, this.xmlAsserterConfiguration); + ReadyToCheckAsserter readyToCheck = new ReadyToCheckAsserter(this.cachedObjects, this.xPathBuffer, + this.fieldName, this.xmlAsserterConfiguration); removeLastFieldElement(readyToCheck); - readyToCheck.xPathBuffer.offer("[matches(" + this.fieldName + ", " - + escapeText(escapeRegex(value)) + ")]"); + readyToCheck.xPathBuffer.offer("[matches(" + this.fieldName + ", " + escapeText(escapeRegex(value)) + ")]"); updateCurrentBuffer(readyToCheck); readyToCheck.checkBufferedXPathString(); return readyToCheck; @@ -306,9 +296,8 @@ class XmlAsserter implements XmlVerifiable { ResultSequence expr = resultSequence(xPathString); boolean xpathMatched = !expr.empty(); if (!xpathMatched) { - throw new IllegalStateException( - "Parsed XML [" + this.cachedObjects.xmlAsString - + "] doesn't match the XPath <" + xPathString + ">"); + throw new IllegalStateException("Parsed XML [" + this.cachedObjects.xmlAsString + + "] doesn't match the XPath <" + xPathString + ">"); } } @@ -318,15 +307,12 @@ class XmlAsserter implements XmlVerifiable { private ResultSequence xPathExpression(String xPathString) { try { - XPath2Expression expr = new Engine().parseExpression(xPathString, - this.cachedObjects.xpathBuilder); - return expr.evaluate( - new DynamicContextBuilder(this.cachedObjects.xpathBuilder), + XPath2Expression expr = new Engine().parseExpression(xPathString, this.cachedObjects.xpathBuilder); + return expr.evaluate(new DynamicContextBuilder(this.cachedObjects.xpathBuilder), new Object[] { this.cachedObjects.document }); } catch (Exception e) { - throw new XmlAsserterXpathException(xPath(), this.cachedObjects.xmlAsString, - e); + throw new XmlAsserterXpathException(xPath(), this.cachedObjects.xmlAsString, e); } } @@ -379,8 +365,7 @@ class XmlAsserter implements XmlVerifiable { if (!this.xPathBuffer.equals(that.xPathBuffer)) { return false; } - return this.fieldName != null ? this.fieldName.equals(that.fieldName) - : that.fieldName == null; + return this.fieldName != null ? this.fieldName.equals(that.fieldName) : that.fieldName == null; } @@ -393,8 +378,7 @@ class XmlAsserter implements XmlVerifiable { @Override public String toString() { - return "\\nAsserter{\n " + "xPathBuffer=" + String.valueOf(this.xPathBuffer) - + "\n}"; + return "\\nAsserter{\n " + "xPathBuffer=" + String.valueOf(this.xPathBuffer) + "\n}"; } @Override @@ -427,13 +411,13 @@ class XmlAsserter implements XmlVerifiable { private static class XmlAsserterXpathException extends RuntimeException { XmlAsserterXpathException(String xPath, String xmlAsString) { - super("Exception occurred while trying to evaluate " + "XPath [" + xPath - + "] from XML [" + xmlAsString + "]"); + super("Exception occurred while trying to evaluate " + "XPath [" + xPath + "] from XML [" + xmlAsString + + "]"); } XmlAsserterXpathException(String xPath, String xmlAsString, Exception e) { - super("Exception occurred while trying to evaluate " + "XPath [" + xPath - + "] from XML [" + xmlAsString + "]", e); + super("Exception occurred while trying to evaluate " + "XPath [" + xPath + "] from XML [" + xmlAsString + + "]", e); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/XmlAssertion.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/XmlAssertion.java index 00cb38f91a..29601be5e0 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/XmlAssertion.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/XmlAssertion.java @@ -54,15 +54,13 @@ public final class XmlAssertion { XmlCachedObjects cachedObjects = CACHE.get(xml); if (cachedObjects == null && !empty(xml)) { try { - InputStream inputXml = new ByteArrayInputStream( - xml.getBytes(StandardCharsets.UTF_8)); + InputStream inputXml = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)); DOMLoader loader = new XercesLoader(); Document document = loader.load(inputXml); cachedObjects = new XmlCachedObjects(document, xml); } catch (Exception e) { - throw new IllegalStateException( - "Exception occurred while trying to parse the XML", e); + throw new IllegalStateException("Exception occurred while trying to parse the XML", e); } CACHE.put(xml, cachedObjects); } @@ -112,8 +110,8 @@ public final class XmlAssertion { } private XmlVerifiable root() { - return new FieldAssertion(this.cachedObjects, this.xPathBuffer, - this.specialCaseXPathBuffer, "", this.xmlAsserterConfiguration).node(""); + return new FieldAssertion(this.cachedObjects, this.xPathBuffer, this.specialCaseXPathBuffer, "", + this.xmlAsserterConfiguration).node(""); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/XmlCachedObjects.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/XmlCachedObjects.java index d362361c11..7056f6a71c 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/XmlCachedObjects.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/xml/XmlCachedObjects.java @@ -64,9 +64,7 @@ class XmlCachedObjects { return writer.getBuffer().toString().replaceAll("\n|\r", ""); } catch (TransformerException e) { - throw new RuntimeException( - "Exception occured while trying to convert XML Document to String", - e); + throw new RuntimeException("Exception occured while trying to convert XML Document to String", e); } } diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/TestGeneratorTests.java b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/TestGeneratorTests.java index 30d09332c0..8a3fe27221 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/TestGeneratorTests.java +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/TestGeneratorTests.java @@ -40,24 +40,21 @@ public class TestGeneratorTests { ContractVerifierConfigProperties properties = new ContractVerifierConfigProperties(); properties.setFailOnInProgress(true); properties.setContractsDslDir(new File(".")); - SingleTestGenerator singleTestGenerator = BDDMockito - .mock(SingleTestGenerator.class); + SingleTestGenerator singleTestGenerator = BDDMockito.mock(SingleTestGenerator.class); FileSaver fileSaver = BDDMockito.mock(FileSaver.class); // and: - MultiValueMap multimap = CollectionUtils - .toMultiValueMap(new LinkedHashMap<>()); + MultiValueMap multimap = CollectionUtils.toMultiValueMap(new LinkedHashMap<>()); Path path = new File(".").toPath(); - multimap.add(path, - new ContractMetadata(path, false, 0, null, Contract.make(it -> { - it.inProgress(); - it.request(r -> { - r.method(r.GET()); - r.url("/foo"); - }); - it.response(r -> { - r.status(r.OK()); - }); - }))); + multimap.add(path, new ContractMetadata(path, false, 0, null, Contract.make(it -> { + it.inProgress(); + it.request(r -> { + r.method(r.GET()); + r.url("/foo"); + }); + it.response(r -> { + r.status(r.OK()); + }); + }))); ContractFileScanner scanner = new ContractFileScanner(null, null, null) { @Override public MultiValueMap findContractsRecursively() { @@ -65,15 +62,13 @@ public class TestGeneratorTests { } }; // and: - TestGenerator testGenerator = new TestGenerator(properties, singleTestGenerator, - fileSaver, scanner); + TestGenerator testGenerator = new TestGenerator(properties, singleTestGenerator, fileSaver, scanner); // then: BDDAssertions.thenThrownBy(() -> { // when: testGenerator.generateTestClasses("com.example"); - }).isInstanceOf(IllegalStateException.class) - .hasMessageContaining("In progress contracts found in"); + }).isInstanceOf(IllegalStateException.class).hasMessageContaining("In progress contracts found in"); } @Test @@ -82,24 +77,21 @@ public class TestGeneratorTests { ContractVerifierConfigProperties properties = new ContractVerifierConfigProperties(); properties.setFailOnInProgress(false); properties.setContractsDslDir(new File(".")); - SingleTestGenerator singleTestGenerator = BDDMockito - .mock(SingleTestGenerator.class); + SingleTestGenerator singleTestGenerator = BDDMockito.mock(SingleTestGenerator.class); FileSaver fileSaver = BDDMockito.mock(FileSaver.class); // and: - MultiValueMap multimap = CollectionUtils - .toMultiValueMap(new LinkedHashMap<>()); + MultiValueMap multimap = CollectionUtils.toMultiValueMap(new LinkedHashMap<>()); Path path = new File(".").toPath(); - multimap.add(path, - new ContractMetadata(path, false, 0, null, Contract.make(it -> { - it.inProgress(); - it.request(r -> { - r.method(r.GET()); - r.url("/foo"); - }); - it.response(r -> { - r.status(r.OK()); - }); - }))); + multimap.add(path, new ContractMetadata(path, false, 0, null, Contract.make(it -> { + it.inProgress(); + it.request(r -> { + r.method(r.GET()); + r.url("/foo"); + }); + it.response(r -> { + r.status(r.OK()); + }); + }))); ContractFileScanner scanner = new ContractFileScanner(null, null, null) { @Override public MultiValueMap findContractsRecursively() { @@ -107,11 +99,9 @@ public class TestGeneratorTests { } }; // and: - TestGenerator testGenerator = new TestGenerator(properties, singleTestGenerator, - fileSaver, scanner) { + TestGenerator testGenerator = new TestGenerator(properties, singleTestGenerator, fileSaver, scanner) { @Override - void processAllNotInProgress(MultiValueMap contracts, - String basePackageName) { + void processAllNotInProgress(MultiValueMap contracts, String basePackageName) { } }; diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/GeneratedTestClassTests.java b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/GeneratedTestClassTests.java index d12d192449..61790ecc3d 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/GeneratedTestClassTests.java +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/GeneratedTestClassTests.java @@ -123,8 +123,7 @@ public class GeneratedTestClassTests { this.file = this.tmpFolder.newFile(); Files.write(this.file.toPath(), this.contract.getBytes()); this.tmp = this.tmpFolder.newFolder(); - File classpath = new File( - GeneratedTestClassTests.class.getResource("/classpath/").toURI()); + File classpath = new File(GeneratedTestClassTests.class.getResource("/classpath/").toURI()); FileSystemUtils.copyRecursively(classpath, this.tmp); } @@ -134,9 +133,8 @@ public class GeneratedTestClassTests { JavaTestGenerator generator = new JavaTestGenerator(); ContractVerifierConfigProperties configProperties = new ContractVerifierConfigProperties(); configProperties.setTestFramework(TestFramework.JUNIT); - Collection contracts = Collections - .singletonList(new ContractMetadata(this.file.toPath(), true, 1, 2, - convertAsCollection(new File("/"), this.file))); + Collection contracts = Collections.singletonList( + new ContractMetadata(this.file.toPath(), true, 1, 2, convertAsCollection(new File("/"), this.file))); String includedDirectoryRelativePath = "some/path"; String convertedClassName = "fooBar"; String packageName = "test"; @@ -144,9 +142,8 @@ public class GeneratedTestClassTests { configProperties.setBaseClassForTests("BazBar"); // when - String builtClass = generator.buildClass(configProperties, contracts, - includedDirectoryRelativePath, new SingleTestGenerator.GeneratedClassData( - convertedClassName, packageName, classPath)); + String builtClass = generator.buildClass(configProperties, contracts, includedDirectoryRelativePath, + new SingleTestGenerator.GeneratedClassData(convertedClassName, packageName, classPath)); // then BDDAssertions.then(builtClass).isEqualTo(this.expectedTest); diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/assertion/CollectionAssertTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/assertion/CollectionAssertTests.java index 4f7f5d0189..9d7f67de09 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/assertion/CollectionAssertTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/assertion/CollectionAssertTests.java @@ -43,13 +43,11 @@ public class CollectionAssertTests { Collection collection = collection(); try { - SpringCloudContractAssertions.assertThat(collection) - .allElementsMatch("[0-9]"); + SpringCloudContractAssertions.assertThat(collection).allElementsMatch("[0-9]"); Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e).hasMessageContaining( - "The value doesn't match the regex <[0-9]>"); + Assertions.assertThat(e).hasMessageContaining("The value doesn't match the regex <[0-9]>"); } } @@ -58,13 +56,11 @@ public class CollectionAssertTests { Collection collection = collectionWithNulls(); try { - SpringCloudContractAssertions.assertThat(collection) - .allElementsMatch("[0-9]"); + SpringCloudContractAssertions.assertThat(collection).allElementsMatch("[0-9]"); Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e).hasMessageContaining( - "The value doesn't match the regex <[0-9]>"); + Assertions.assertThat(e).hasMessageContaining("The value doesn't match the regex <[0-9]>"); } } @@ -77,8 +73,7 @@ public class CollectionAssertTests { Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e) - .hasMessageContaining("Expecting actual not to be null"); + Assertions.assertThat(e).hasMessageContaining("Expecting actual not to be null"); } } @@ -91,8 +86,7 @@ public class CollectionAssertTests { Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e) - .hasMessageContaining("Expecting actual not to be empty"); + Assertions.assertThat(e).hasMessageContaining("Expecting actual not to be empty"); } } @@ -100,8 +94,7 @@ public class CollectionAssertTests { public void should_not_throw_an_exception_when_flattened_size_is_greater_than_or_equal_to_provided_size() { Collection collection = nestedCollection(); - SpringCloudContractAssertions.assertThat(collection) - .hasFlattenedSizeGreaterThanOrEqualTo(0) + SpringCloudContractAssertions.assertThat(collection).hasFlattenedSizeGreaterThanOrEqualTo(0) .hasFlattenedSizeGreaterThanOrEqualTo(7); } @@ -110,13 +103,11 @@ public class CollectionAssertTests { Collection collection = nestedCollection(); try { - SpringCloudContractAssertions.assertThat(collection) - .hasFlattenedSizeGreaterThanOrEqualTo(8); + SpringCloudContractAssertions.assertThat(collection).hasFlattenedSizeGreaterThanOrEqualTo(8); Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e).hasMessageContaining( - "The flattened size <7> is not greater or equal to <8>"); + Assertions.assertThat(e).hasMessageContaining("The flattened size <7> is not greater or equal to <8>"); } } @@ -125,13 +116,11 @@ public class CollectionAssertTests { Collection collection = null; try { - SpringCloudContractAssertions.assertThat(collection) - .hasFlattenedSizeGreaterThanOrEqualTo(1); + SpringCloudContractAssertions.assertThat(collection).hasFlattenedSizeGreaterThanOrEqualTo(1); Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e) - .hasMessageContaining("Expecting actual not to be null"); + Assertions.assertThat(e).hasMessageContaining("Expecting actual not to be null"); } } @@ -139,8 +128,7 @@ public class CollectionAssertTests { public void should_not_throw_an_exception_when_flattened_size_is_less_than_or_equal_to_provided_size() { Collection collection = nestedCollection(); - SpringCloudContractAssertions.assertThat(collection) - .hasFlattenedSizeLessThanOrEqualTo(8) + SpringCloudContractAssertions.assertThat(collection).hasFlattenedSizeLessThanOrEqualTo(8) .hasFlattenedSizeLessThanOrEqualTo(7); } @@ -149,13 +137,11 @@ public class CollectionAssertTests { Collection collection = nestedCollection(); try { - SpringCloudContractAssertions.assertThat(collection) - .hasFlattenedSizeLessThanOrEqualTo(1); + SpringCloudContractAssertions.assertThat(collection).hasFlattenedSizeLessThanOrEqualTo(1); Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e).hasMessageContaining( - "The flattened size <7> is not less or equal to <1>"); + Assertions.assertThat(e).hasMessageContaining("The flattened size <7> is not less or equal to <1>"); } } @@ -164,13 +150,11 @@ public class CollectionAssertTests { Collection collection = null; try { - SpringCloudContractAssertions.assertThat(collection) - .hasFlattenedSizeLessThanOrEqualTo(1); + SpringCloudContractAssertions.assertThat(collection).hasFlattenedSizeLessThanOrEqualTo(1); Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e) - .hasMessageContaining("Expecting actual not to be null"); + Assertions.assertThat(e).hasMessageContaining("Expecting actual not to be null"); } } @@ -178,8 +162,8 @@ public class CollectionAssertTests { public void should_not_throw_an_exception_when_flattened_size_is_between_the_provided_sizes() { Collection collection = nestedCollection(); - SpringCloudContractAssertions.assertThat(collection).hasFlattenedSizeBetween(1, 8) - .hasFlattenedSizeBetween(7, 7); + SpringCloudContractAssertions.assertThat(collection).hasFlattenedSizeBetween(1, 8).hasFlattenedSizeBetween(7, + 7); } @Test @@ -187,13 +171,11 @@ public class CollectionAssertTests { Collection collection = nestedCollection(); try { - SpringCloudContractAssertions.assertThat(collection) - .hasFlattenedSizeBetween(8, 9); + SpringCloudContractAssertions.assertThat(collection).hasFlattenedSizeBetween(8, 9); Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e).hasMessageContaining( - "The flattened size <7> is not between <8> and <9>"); + Assertions.assertThat(e).hasMessageContaining("The flattened size <7> is not between <8> and <9>"); } } @@ -202,13 +184,11 @@ public class CollectionAssertTests { Collection collection = null; try { - SpringCloudContractAssertions.assertThat(collection) - .hasFlattenedSizeBetween(1, 2); + SpringCloudContractAssertions.assertThat(collection).hasFlattenedSizeBetween(1, 2); Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e) - .hasMessageContaining("Expecting actual not to be null"); + Assertions.assertThat(e).hasMessageContaining("Expecting actual not to be null"); } } @@ -216,8 +196,8 @@ public class CollectionAssertTests { public void should_not_throw_an_exception_when_size_is_greater_than_or_equal_to_provided_size() { Collection collection = collection(); - SpringCloudContractAssertions.assertThat(collection) - .hasSizeGreaterThanOrEqualTo(0).hasSizeGreaterThanOrEqualTo(3); + SpringCloudContractAssertions.assertThat(collection).hasSizeGreaterThanOrEqualTo(0) + .hasSizeGreaterThanOrEqualTo(3); } @Test @@ -225,13 +205,11 @@ public class CollectionAssertTests { Collection collection = collection(); try { - SpringCloudContractAssertions.assertThat(collection) - .hasSizeGreaterThanOrEqualTo(5); + SpringCloudContractAssertions.assertThat(collection).hasSizeGreaterThanOrEqualTo(5); Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e) - .hasMessageContaining("The size <3> is not greater or equal to <5>"); + Assertions.assertThat(e).hasMessageContaining("The size <3> is not greater or equal to <5>"); } } @@ -240,13 +218,11 @@ public class CollectionAssertTests { Collection collection = null; try { - SpringCloudContractAssertions.assertThat(collection) - .hasSizeGreaterThanOrEqualTo(1); + SpringCloudContractAssertions.assertThat(collection).hasSizeGreaterThanOrEqualTo(1); Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e) - .hasMessageContaining("Expecting actual not to be null"); + Assertions.assertThat(e).hasMessageContaining("Expecting actual not to be null"); } } @@ -254,8 +230,7 @@ public class CollectionAssertTests { public void should_not_throw_an_exception_when_size_is_less_than_or_equal_to_provided_size() { Collection collection = collection(); - SpringCloudContractAssertions.assertThat(collection).hasSizeLessThanOrEqualTo(4) - .hasSizeLessThanOrEqualTo(3); + SpringCloudContractAssertions.assertThat(collection).hasSizeLessThanOrEqualTo(4).hasSizeLessThanOrEqualTo(3); } @Test @@ -263,13 +238,11 @@ public class CollectionAssertTests { Collection collection = collection(); try { - SpringCloudContractAssertions.assertThat(collection) - .hasSizeLessThanOrEqualTo(1); + SpringCloudContractAssertions.assertThat(collection).hasSizeLessThanOrEqualTo(1); Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e) - .hasMessageContaining("The size <3> is not less or equal to <1>"); + Assertions.assertThat(e).hasMessageContaining("The size <3> is not less or equal to <1>"); } } @@ -278,13 +251,11 @@ public class CollectionAssertTests { Collection collection = null; try { - SpringCloudContractAssertions.assertThat(collection) - .hasSizeLessThanOrEqualTo(1); + SpringCloudContractAssertions.assertThat(collection).hasSizeLessThanOrEqualTo(1); Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e) - .hasMessageContaining("Expecting actual not to be null"); + Assertions.assertThat(e).hasMessageContaining("Expecting actual not to be null"); } } @@ -292,8 +263,7 @@ public class CollectionAssertTests { public void should_not_throw_an_exception_when_size_is_between_the_provided_sizes() { Collection collection = collection(); - SpringCloudContractAssertions.assertThat(collection).hasSizeBetween(1, 4) - .hasSizeBetween(3, 3); + SpringCloudContractAssertions.assertThat(collection).hasSizeBetween(1, 4).hasSizeBetween(3, 3); } @Test @@ -305,8 +275,7 @@ public class CollectionAssertTests { Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e) - .hasMessageContaining("The size <3> is not between <5> and <7>"); + Assertions.assertThat(e).hasMessageContaining("The size <3> is not between <5> and <7>"); } } @@ -315,13 +284,12 @@ public class CollectionAssertTests { Collection collection = collection(); try { - SpringCloudContractAssertions.assertThat(collection).as("for jsonpath x.y.z") - .hasSizeBetween(5, 7); + SpringCloudContractAssertions.assertThat(collection).as("for jsonpath x.y.z").hasSizeBetween(5, 7); Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e).hasMessageContaining( - "[for jsonpath x.y.z] The size <3> is not between <5> and <7>"); + Assertions.assertThat(e) + .hasMessageContaining("[for jsonpath x.y.z] The size <3> is not between <5> and <7>"); } } @@ -334,8 +302,7 @@ public class CollectionAssertTests { Assertions.fail("should throw exception"); } catch (AssertionError e) { - Assertions.assertThat(e) - .hasMessageContaining("Expecting actual not to be null"); + Assertions.assertThat(e).hasMessageContaining("Expecting actual not to be null"); } } diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/builder/XmlBodyVerificationBuilderTest.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/builder/XmlBodyVerificationBuilderTest.java index 0d054355f5..da1d5ab56b 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/builder/XmlBodyVerificationBuilderTest.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/builder/XmlBodyVerificationBuilderTest.java @@ -10,28 +10,23 @@ import static com.toomuchcoding.jsonassert.JsonAssertion.assertThat; public class XmlBodyVerificationBuilderTest { - private static final String xml = "\r\n" - + " customer@test.com\r\n" + " "; + private static final String xml = "\r\n" + " customer@test.com\r\n" + + " "; @Test public void shouldAddXmlProcessingLines() { // Given - XmlBodyVerificationBuilder builder = new XmlBodyVerificationBuilder( - new Contract(), Optional.of(";")); + XmlBodyVerificationBuilder builder = new XmlBodyVerificationBuilder(new Contract(), Optional.of(";")); BlockBuilder blockBuilder = new BlockBuilder(" "); BodyMatchers matchers = new BodyMatchers(); // When builder.addXmlResponseBodyCheck(blockBuilder, xml, matchers, xml, true); // Then String test = blockBuilder.toString(); - assertThat(test).contains( - "DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();") + assertThat(test).contains("DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();") .contains("builderFactory.setNamespaceAware(true);") - .contains( - "DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder();") - .contains( - "Document parsedXml = documentBuilder.parse(new InputSource(new StringReader(") - .contains(xml); + .contains("DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder();") + .contains("Document parsedXml = documentBuilder.parse(new InputSource(new StringReader(").contains(xml); } } \ No newline at end of file diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/dsl/ContractVerifierMetadataTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/dsl/ContractVerifierMetadataTests.java index 50befc5991..bd9b61f8b3 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/dsl/ContractVerifierMetadataTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/dsl/ContractVerifierMetadataTests.java @@ -32,13 +32,12 @@ class ContractVerifierMetadataTests { + " tool: graphql"; // @formatter:on - ContractVerifierMetadata metadata = ContractVerifierMetadata.fromMetadata( - this.mapper.readerForMapOf(Object.class).readValue(yamlEntry)); + ContractVerifierMetadata metadata = ContractVerifierMetadata + .fromMetadata(this.mapper.readerForMapOf(Object.class).readValue(yamlEntry)); - String serialized = this.mapper.writer().forType(ContractVerifierMetadata.class) - .writeValueAsString(metadata); - BDDAssertions.then(serialized).isEqualToNormalizingPunctuationAndWhitespace( - yamlEntry.replace("verifier:\n", "")); + String serialized = this.mapper.writer().forType(ContractVerifierMetadata.class).writeValueAsString(metadata); + BDDAssertions.then(serialized) + .isEqualToNormalizingPunctuationAndWhitespace(yamlEntry.replace("verifier:\n", "")); } } diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/dsl/wiremock/GraphQLRequestMatcherTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/dsl/wiremock/GraphQLRequestMatcherTests.java index 45cd479b43..b38363049f 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/dsl/wiremock/GraphQLRequestMatcherTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/dsl/wiremock/GraphQLRequestMatcherTests.java @@ -67,9 +67,7 @@ class GraphQLRequestMatcherTests { void should_not_match_when_exception_occurs_while_trying_to_read_missing_request_body() { GraphQlMatcher matcher = new GraphQlMatcher(); - MatchResult result = matcher.match( - YamlContractConverter.INSTANCE - .read(YAML_WITH_INVALID_VARIABLES.getBytes()), + MatchResult result = matcher.match(YamlContractConverter.INSTANCE.read(YAML_WITH_INVALID_VARIABLES.getBytes()), BDDMockito.mock(Request.class), null); BDDAssertions.then(result.isExactMatch()).isFalse(); @@ -79,8 +77,8 @@ class GraphQLRequestMatcherTests { void should_not_match_when_exception_occurs_while_trying_to_parse_graphql_entries() { GraphQlMatcher matcher = new GraphQlMatcher(); - MatchResult result = matcher.match(YamlContractConverter.INSTANCE - .read(YAML_WITH_INVALID_VARIABLES.getBytes()), request(), null); + MatchResult result = matcher.match(YamlContractConverter.INSTANCE.read(YAML_WITH_INVALID_VARIABLES.getBytes()), + request(), null); BDDAssertions.then(result.isExactMatch()).isFalse(); } @@ -132,8 +130,7 @@ class GraphQLRequestMatcherTests { void should_match_when_the_graphql_part_matches_regardless_of_whitespace_entries_in_the_query() { GraphQlMatcher matcher = new GraphQlMatcher(); - MatchResult result = matcher.match( - YamlContractConverter.INSTANCE.read(PROPER_YAML.getBytes()), request(), + MatchResult result = matcher.match(YamlContractConverter.INSTANCE.read(PROPER_YAML.getBytes()), request(), null); BDDAssertions.then(result.isExactMatch()).isTrue(); @@ -151,8 +148,7 @@ class GraphQLRequestMatcherTests { void should_not_match_when_the_query_does_not_match() { GraphQlMatcher matcher = new GraphQlMatcher(); - MatchResult result = matcher.match( - YamlContractConverter.INSTANCE.read(PROPER_YAML.getBytes()), + MatchResult result = matcher.match(YamlContractConverter.INSTANCE.read(PROPER_YAML.getBytes()), request(NOT_MATCHING_QUERY_BODY), null); BDDAssertions.then(result.isExactMatch()).isFalse(); @@ -170,8 +166,7 @@ class GraphQLRequestMatcherTests { void should_not_match_when_the_variables_does_not_match() { GraphQlMatcher matcher = new GraphQlMatcher(); - MatchResult result = matcher.match( - YamlContractConverter.INSTANCE.read(PROPER_YAML.getBytes()), + MatchResult result = matcher.match(YamlContractConverter.INSTANCE.read(PROPER_YAML.getBytes()), request(NOT_MATCHING_VARIABLES_BODY), null); BDDAssertions.then(result.isExactMatch()).isFalse(); @@ -189,8 +184,7 @@ class GraphQLRequestMatcherTests { void should_not_match_when_the_operation_name_does_not_match() { GraphQlMatcher matcher = new GraphQlMatcher(); - MatchResult result = matcher.match( - YamlContractConverter.INSTANCE.read(PROPER_YAML.getBytes()), + MatchResult result = matcher.match(YamlContractConverter.INSTANCE.read(PROPER_YAML.getBytes()), request(NOT_MATCHING_OPERATION_NAME_BODY), null); BDDAssertions.then(result.isExactMatch()).isFalse(); diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/dsl/wiremock/SpringCloudContractRequestMatcherTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/dsl/wiremock/SpringCloudContractRequestMatcherTests.java index d9837add2a..3151fd723b 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/dsl/wiremock/SpringCloudContractRequestMatcherTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/dsl/wiremock/SpringCloudContractRequestMatcherTests.java @@ -46,8 +46,7 @@ class SpringCloudContractRequestMatcherTests { } }; - MatchResult result = matcher.match(BDDMockito.mock(Request.class), - Parameters.one("tool", "foo")); + MatchResult result = matcher.match(BDDMockito.mock(Request.class), Parameters.one("tool", "foo")); BDDAssertions.then(result.isExactMatch()).isFalse(); } @@ -64,8 +63,7 @@ class SpringCloudContractRequestMatcherTests { } }; - MatchResult result = matcher.match(BDDMockito.mock(Request.class), - Parameters.one("contract", "value")); + MatchResult result = matcher.match(BDDMockito.mock(Request.class), Parameters.one("contract", "value")); BDDAssertions.then(result.isExactMatch()).isFalse(); } @@ -82,28 +80,22 @@ class SpringCloudContractRequestMatcherTests { } }; - MatchResult result = matcher.match(BDDMockito.mock(Request.class), - Parameters.one("contract", "value")); + MatchResult result = matcher.match(BDDMockito.mock(Request.class), Parameters.one("contract", "value")); BDDAssertions.then(result.isExactMatch()).isFalse(); } - private static final String PROPER_YAML = "---\n" + "request:\n" - + " method: \"POST\"\n" + " url: \"/graphql\"\n" + " headers:\n" - + " Content-Type: \"application/json\"\n" + " body:\n" - + " query: \"query queryName($personName: String!) { personToCheck(name: $personName)" - + " { name age } }\"\n" + " variables:\n" - + " personName: \"Old Enough\"\n" + " operationName: \"queryName\"\n" - + " matchers:\n" + " headers:\n" + " - key: \"Content-Type\"\n" - + " regex: \"application/json.*\"\n" - + " regexType: \"as_string\"\n" + "response:\n" + " status: 200\n" + private static final String PROPER_YAML = "---\n" + "request:\n" + " method: \"POST\"\n" + " url: \"/graphql\"\n" + " headers:\n" + " Content-Type: \"application/json\"\n" + " body:\n" - + " data:\n" + " personToCheck:\n" + " name: \"Old Enough\"\n" - + " age: \"40\"\n" + " matchers:\n" + " headers:\n" - + " - key: \"Content-Type\"\n" - + " regex: \"application/json.*\"\n" - + " regexType: \"as_string\"\n" - + "name: \"shouldRetrieveOldEnoughPerson\"\n" + "metadata:\n" + + " query: \"query queryName($personName: String!) { personToCheck(name: $personName)" + + " { name age } }\"\n" + " variables:\n" + " personName: \"Old Enough\"\n" + + " operationName: \"queryName\"\n" + " matchers:\n" + " headers:\n" + + " - key: \"Content-Type\"\n" + " regex: \"application/json.*\"\n" + + " regexType: \"as_string\"\n" + "response:\n" + " status: 200\n" + " headers:\n" + + " Content-Type: \"application/json\"\n" + " body:\n" + " data:\n" + " personToCheck:\n" + + " name: \"Old Enough\"\n" + " age: \"40\"\n" + " matchers:\n" + " headers:\n" + + " - key: \"Content-Type\"\n" + " regex: \"application/json.*\"\n" + + " regexType: \"as_string\"\n" + "name: \"shouldRetrieveOldEnoughPerson\"\n" + "metadata:\n" + " verifier:\n" + " tool: \"graphql\"\n"; @Test @@ -117,8 +109,8 @@ class SpringCloudContractRequestMatcherTests { } }; - MatchResult result = matcher.match(BDDMockito.mock(Request.class), toMap( - Tuples.of("tool", "unsupported"), Tuples.of("contract", PROPER_YAML))); + MatchResult result = matcher.match(BDDMockito.mock(Request.class), + toMap(Tuples.of("tool", "unsupported"), Tuples.of("contract", PROPER_YAML))); BDDAssertions.then(result.isExactMatch()).isFalse(); } @@ -153,8 +145,7 @@ class SpringCloudContractRequestMatcherTests { class ApplicableRequestMatcher implements RequestMatcher { @Override - public MatchResult match(List contracts, Request request, - Parameters parameters) { + public MatchResult match(List contracts, Request request, Parameters parameters) { return MatchResult.of(true); } diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/amqp/AmqpMetadataTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/amqp/AmqpMetadataTests.java index a545b7b627..a006b4d9dc 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/amqp/AmqpMetadataTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/amqp/AmqpMetadataTests.java @@ -44,20 +44,15 @@ class AmqpMetadataTests { + " replyTo: \"bar3\"\n"; // @formatter:on - AmqpMetadata metadata = AmqpMetadata.fromMetadata( - this.mapper.readerForMapOf(Object.class).readValue(yamlEntry)); + AmqpMetadata metadata = AmqpMetadata + .fromMetadata(this.mapper.readerForMapOf(Object.class).readValue(yamlEntry)); - then(metadata.getInput().getConnectToBroker().getAdditionalOptions()) - .isEqualTo("foo1"); - then(metadata.getInput().getConnectToBroker().getDeclareQueueWithName()) - .isEqualTo("foo2"); + then(metadata.getInput().getConnectToBroker().getAdditionalOptions()).isEqualTo("foo1"); + then(metadata.getInput().getConnectToBroker().getDeclareQueueWithName()).isEqualTo("foo2"); then(metadata.getInput().getMessageProperties().getReplyTo()).isEqualTo("foo3"); - then(metadata.getOutputMessage().getConnectToBroker().getAdditionalOptions()) - .isEqualTo("bar1"); - then(metadata.getOutputMessage().getConnectToBroker().getDeclareQueueWithName()) - .isEqualTo("bar2"); - then(metadata.getOutputMessage().getMessageProperties().getReplyTo()) - .isEqualTo("bar3"); + then(metadata.getOutputMessage().getConnectToBroker().getAdditionalOptions()).isEqualTo("bar1"); + then(metadata.getOutputMessage().getConnectToBroker().getDeclareQueueWithName()).isEqualTo("bar2"); + then(metadata.getOutputMessage().getMessageProperties().getReplyTo()).isEqualTo("bar3"); } diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfigurationTests.java index 4dc5bc71c6..6279bfece4 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfigurationTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfigurationTests.java @@ -36,13 +36,11 @@ public class ContractVerifierAmqpAutoConfigurationTests { private ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of(RabbitAutoConfiguration.class, - ContractVerifierAmqpAutoConfiguration.class, - RabbitMockConnectionFactoryAutoConfiguration.class)) + ContractVerifierAmqpAutoConfiguration.class, RabbitMockConnectionFactoryAutoConfiguration.class)) // register MockitoPostProcessor manually to perform the SpyBean injection for // ContractVerifierAmqpAutoConfiguration. This is normally done automatically // during test setup - .withInitializer(context -> MockitoPostProcessor - .register((BeanDefinitionRegistry) context)); + .withInitializer(context -> MockitoPostProcessor.register((BeanDefinitionRegistry) context)); @Test public void shouldNotCreateBeansByDefault() { @@ -54,34 +52,27 @@ public class ContractVerifierAmqpAutoConfigurationTests { @Test public void shouldNotCreateBeansWhenDisabled() { - this.contextRunner.withPropertyValues("stubrunner.amqp.enabled=false") - .run((context) -> { - assertThat(context.getBeansOfType(SpringAmqpStubMessages.class)) - .hasSize(0); - assertThat(context.getBeansOfType(ContractVerifierHelper.class)) - .hasSize(0); - }); + this.contextRunner.withPropertyValues("stubrunner.amqp.enabled=false").run((context) -> { + assertThat(context.getBeansOfType(SpringAmqpStubMessages.class)).hasSize(0); + assertThat(context.getBeansOfType(ContractVerifierHelper.class)).hasSize(0); + }); } @Test public void shouldCreateBeansWhenExplicitlyEnabled() { - this.contextRunner.withPropertyValues("stubrunner.amqp.enabled=true") - .run((context) -> { - assertThat(context.getBeansOfType(SpringAmqpStubMessages.class)) - .hasSize(1); - assertThat(context.getBeansOfType(ContractVerifierHelper.class)) - .hasSize(1); - }); + this.contextRunner.withPropertyValues("stubrunner.amqp.enabled=true").run((context) -> { + assertThat(context.getBeansOfType(SpringAmqpStubMessages.class)).hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierHelper.class)).hasSize(1); + }); } @Test public void shouldNotThrowOnSendWhenRabbitTemplateIsTransacted() { - this.contextRunner.withPropertyValues("stubrunner.amqp.enabled=true") - .run(context -> assertThatCode(() -> { - RabbitTemplate rabbitTemplate = context.getBean(RabbitTemplate.class); - rabbitTemplate.setChannelTransacted(true); - rabbitTemplate.convertAndSend("A Message"); - }).doesNotThrowAnyException()); + this.contextRunner.withPropertyValues("stubrunner.amqp.enabled=true").run(context -> assertThatCode(() -> { + RabbitTemplate rabbitTemplate = context.getBean(RabbitTemplate.class); + rabbitTemplate.setChannelTransacted(true); + rabbitTemplate.convertAndSend("A Message"); + }).doesNotThrowAnyException()); } } diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/boot/AutoConfigureMessageVerifierTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/boot/AutoConfigureMessageVerifierTests.java index a37f78b061..928a7c8074 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/boot/AutoConfigureMessageVerifierTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/boot/AutoConfigureMessageVerifierTests.java @@ -39,13 +39,11 @@ public class AutoConfigureMessageVerifierTests { @Test public void shouldConfigureForNoOpWhenMissingImplementation() { - this.contextRunner - .withClassLoader(new FilteredClassLoader(org.apache.camel.Message.class, - org.springframework.messaging.Message.class, JmsTemplate.class, - KafkaTemplate.class, RabbitTemplate.class, EnableBinding.class)) + this.contextRunner.withClassLoader( + new FilteredClassLoader(org.apache.camel.Message.class, org.springframework.messaging.Message.class, + JmsTemplate.class, KafkaTemplate.class, RabbitTemplate.class, EnableBinding.class)) .run((context) -> { - assertThat(context.getBeansOfType(MessageVerifierSender.class)) - .hasSize(1); + assertThat(context.getBeansOfType(MessageVerifierSender.class)).hasSize(1); assertThat(context.getBeansOfType(NoOpStubMessages.class)).hasSize(1); }); } diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfigurationTests.java index 18eb9a24ee..940662bcf5 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfigurationTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfigurationTests.java @@ -29,38 +29,30 @@ import static org.assertj.core.api.Assertions.assertThat; public class ContractVerifierCamelConfigurationTests { private ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration( - AutoConfigurations.of(ContractVerifierCamelConfiguration.class)); + .withConfiguration(AutoConfigurations.of(ContractVerifierCamelConfiguration.class)); @Test public void shouldCreateBeansByDefault() { this.contextRunner.run((context) -> { assertThat(context.getBeansOfType(CamelStubMessages.class)).hasSize(1); - assertThat(context.getBeansOfType(ContractVerifierCamelHelper.class)) - .hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierCamelHelper.class)).hasSize(1); }); } @Test public void shouldNotCreateBeansWhenDisabled() { - this.contextRunner.withPropertyValues("stubrunner.camel.enabled=false") - .run((context) -> { - assertThat(context.getBeansOfType(CamelStubMessages.class)) - .hasSize(0); - assertThat(context.getBeansOfType(ContractVerifierCamelHelper.class)) - .hasSize(0); - }); + this.contextRunner.withPropertyValues("stubrunner.camel.enabled=false").run((context) -> { + assertThat(context.getBeansOfType(CamelStubMessages.class)).hasSize(0); + assertThat(context.getBeansOfType(ContractVerifierCamelHelper.class)).hasSize(0); + }); } @Test public void shouldCreateBeansWhenExplicitlyEnabled() { - this.contextRunner.withPropertyValues("stubrunner.camel.enabled=true") - .run((context) -> { - assertThat(context.getBeansOfType(CamelStubMessages.class)) - .hasSize(1); - assertThat(context.getBeansOfType(ContractVerifierCamelHelper.class)) - .hasSize(1); - }); + this.contextRunner.withPropertyValues("stubrunner.camel.enabled=true").run((context) -> { + assertThat(context.getBeansOfType(CamelStubMessages.class)).hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierCamelHelper.class)).hasSize(1); + }); } } diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfigurationTests.java index ba1dff955b..6087548369 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfigurationTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfigurationTests.java @@ -29,14 +29,12 @@ import static org.assertj.core.api.Assertions.assertThat; public class ContractVerifierIntegrationConfigurationTests { private ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations - .of(ContractVerifierIntegrationConfiguration.class)); + .withConfiguration(AutoConfigurations.of(ContractVerifierIntegrationConfiguration.class)); @Test public void shouldCreateBeansWhenOnClasspath() { this.contextRunner.run((context) -> { - assertThat(context.getBeansOfType(SpringIntegrationStubMessages.class)) - .hasSize(1); + assertThat(context.getBeansOfType(SpringIntegrationStubMessages.class)).hasSize(1); assertThat(context.getBeansOfType(ContractVerifierHelper.class)).hasSize(1); }); } diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/jms/ContractVerifierJmsConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/jms/ContractVerifierJmsConfigurationTests.java index 5046186a00..600d98ccaa 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/jms/ContractVerifierJmsConfigurationTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/jms/ContractVerifierJmsConfigurationTests.java @@ -29,36 +29,30 @@ import static org.assertj.core.api.Assertions.assertThat; public class ContractVerifierJmsConfigurationTests { private ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration( - AutoConfigurations.of(ContractVerifierJmsConfiguration.class)); + .withConfiguration(AutoConfigurations.of(ContractVerifierJmsConfiguration.class)); @Test public void shouldCreateBeansByDefault() { this.contextRunner.run((context) -> { assertThat(context.getBeansOfType(JmsStubMessages.class)).hasSize(1); - assertThat(context.getBeansOfType(ContractVerifierJmsHelper.class)) - .hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierJmsHelper.class)).hasSize(1); }); } @Test public void shouldNotCreateBeansWhenDisabled() { - this.contextRunner.withPropertyValues("stubrunner.jms.enabled=false") - .run((context) -> { - assertThat(context.getBeansOfType(JmsStubMessages.class)).hasSize(0); - assertThat(context.getBeansOfType(ContractVerifierJmsHelper.class)) - .hasSize(0); - }); + this.contextRunner.withPropertyValues("stubrunner.jms.enabled=false").run((context) -> { + assertThat(context.getBeansOfType(JmsStubMessages.class)).hasSize(0); + assertThat(context.getBeansOfType(ContractVerifierJmsHelper.class)).hasSize(0); + }); } @Test public void shouldCreateBeansWhenExplicitlyEnabled() { - this.contextRunner.withPropertyValues("stubrunner.jms.enabled=true") - .run((context) -> { - assertThat(context.getBeansOfType(JmsStubMessages.class)).hasSize(1); - assertThat(context.getBeansOfType(ContractVerifierJmsHelper.class)) - .hasSize(1); - }); + this.contextRunner.withPropertyValues("stubrunner.jms.enabled=true").run((context) -> { + assertThat(context.getBeansOfType(JmsStubMessages.class)).hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierJmsHelper.class)).hasSize(1); + }); } } diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaConfigurationTests.java index 058081856a..a536868cf2 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaConfigurationTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaConfigurationTests.java @@ -32,39 +32,32 @@ import static org.assertj.core.api.Assertions.assertThat; public class ContractVerifierKafkaConfigurationTests { private ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(KafkaAutoConfiguration.class, - ContractVerifierKafkaConfiguration.class)) + .withConfiguration( + AutoConfigurations.of(KafkaAutoConfiguration.class, ContractVerifierKafkaConfiguration.class)) .withUserConfiguration(CustomConfiguration.class); @Test public void shouldCreateBeansByDefault() { this.contextRunner.run((context) -> { assertThat(context.getBeansOfType(KafkaStubMessages.class)).hasSize(1); - assertThat(context.getBeansOfType(ContractVerifierKafkaHelper.class)) - .hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierKafkaHelper.class)).hasSize(1); }); } @Test public void shouldNotCreateBeansWhenDisabled() { - this.contextRunner.withPropertyValues("stubrunner.kafka.enabled=false") - .run((context) -> { - assertThat(context.getBeansOfType(KafkaStubMessages.class)) - .hasSize(0); - assertThat(context.getBeansOfType(ContractVerifierKafkaHelper.class)) - .hasSize(0); - }); + this.contextRunner.withPropertyValues("stubrunner.kafka.enabled=false").run((context) -> { + assertThat(context.getBeansOfType(KafkaStubMessages.class)).hasSize(0); + assertThat(context.getBeansOfType(ContractVerifierKafkaHelper.class)).hasSize(0); + }); } @Test public void shouldCreateBeansWhenExplicitlyEnabled() { - this.contextRunner.withPropertyValues("stubrunner.kafka.enabled=true") - .run((context) -> { - assertThat(context.getBeansOfType(KafkaStubMessages.class)) - .hasSize(1); - assertThat(context.getBeansOfType(ContractVerifierKafkaHelper.class)) - .hasSize(1); - }); + this.contextRunner.withPropertyValues("stubrunner.kafka.enabled=true").run((context) -> { + assertThat(context.getBeansOfType(KafkaStubMessages.class)).hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierKafkaHelper.class)).hasSize(1); + }); } static class CustomConfiguration { diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaMetadataTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaMetadataTests.java index ace0332788..727b7c98d5 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaMetadataTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/kafka/KafkaMetadataTests.java @@ -37,13 +37,11 @@ class KafkaMetadataTests { + " additionalOptions: bar"; // @formatter:on - KafkaMetadata metadata = KafkaMetadata.fromMetadata( - this.mapper.readerForMapOf(Object.class).readValue(yamlEntry)); + KafkaMetadata metadata = KafkaMetadata + .fromMetadata(this.mapper.readerForMapOf(Object.class).readValue(yamlEntry)); - String serialized = this.mapper.writer().forType(KafkaMetadata.class) - .writeValueAsString(metadata); - BDDAssertions.then(serialized).isEqualToNormalizingPunctuationAndWhitespace( - yamlEntry.replace("kafka:\n", "")); + String serialized = this.mapper.writer().forType(KafkaMetadata.class).writeValueAsString(metadata); + BDDAssertions.then(serialized).isEqualToNormalizingPunctuationAndWhitespace(yamlEntry.replace("kafka:\n", "")); } } diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfigurationTests.java index 58bb8f26bc..9983d55e35 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfigurationTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfigurationTests.java @@ -29,8 +29,7 @@ import static org.assertj.core.api.Assertions.assertThat; public class NoOpContractVerifierAutoConfigurationTests { private ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration( - AutoConfigurations.of(NoOpContractVerifierAutoConfiguration.class)); + .withConfiguration(AutoConfigurations.of(NoOpContractVerifierAutoConfiguration.class)); @Test public void shouldCreateBeansByDefault() { diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfigurationTests.java index 9ed1fa0b2e..a7a90d68e0 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfigurationTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfigurationTests.java @@ -29,8 +29,7 @@ import static org.assertj.core.api.Assertions.assertThat; public class ContractVerifierStreamAutoConfigurationTests { private ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration( - AutoConfigurations.of(ContractVerifierStreamAutoConfiguration.class)); + .withConfiguration(AutoConfigurations.of(ContractVerifierStreamAutoConfiguration.class)); @Test public void shouldCreateBeansByDefault() { @@ -42,24 +41,18 @@ public class ContractVerifierStreamAutoConfigurationTests { @Test public void shouldNotCreateBeansWhenDisabled() { - this.contextRunner.withPropertyValues("stubrunner.stream.enabled=false") - .run((context) -> { - assertThat(context.getBeansOfType(ContractVerifierHelper.class)) - .hasSize(0); - assertThat(context.getBeansOfType(StreamStubMessages.class)) - .hasSize(0); - }); + this.contextRunner.withPropertyValues("stubrunner.stream.enabled=false").run((context) -> { + assertThat(context.getBeansOfType(ContractVerifierHelper.class)).hasSize(0); + assertThat(context.getBeansOfType(StreamStubMessages.class)).hasSize(0); + }); } @Test public void shouldCreateBeansWhenExplicitlyEnabled() { - this.contextRunner.withPropertyValues("stubrunner.stream.enabled=true") - .run((context) -> { - assertThat(context.getBeansOfType(ContractVerifierHelper.class)) - .hasSize(1); - assertThat(context.getBeansOfType(StreamStubMessages.class)) - .hasSize(1); - }); + this.contextRunner.withPropertyValues("stubrunner.stream.enabled=true").run((context) -> { + assertThat(context.getBeansOfType(ContractVerifierHelper.class)).hasSize(1); + assertThat(context.getBeansOfType(StreamStubMessages.class)).hasSize(1); + }); } } diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/util/ContractVerifierUtilTest.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/util/ContractVerifierUtilTest.java index 433878aaf8..617d807a6f 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/util/ContractVerifierUtilTest.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/util/ContractVerifierUtilTest.java @@ -33,24 +33,21 @@ import static org.assertj.core.api.Assertions.assertThat; public class ContractVerifierUtilTest { - private final String unnamedXml = "\r\n" - + " customer@test.com\r\n" + " "; + private final String unnamedXml = "\r\n" + " customer@test.com\r\n" + + " "; private final String namedXml = "\r\n" + " customer@test.com\r\n" + " "; @Test - public void shouldGetValueFromXPath() - throws ParserConfigurationException, IOException, SAXException { + public void shouldGetValueFromXPath() throws ParserConfigurationException, IOException, SAXException { // Given DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); builderFactory.setNamespaceAware(true); DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder(); - Document parsedXml = documentBuilder - .parse(new InputSource(new StringReader(unnamedXml))); + Document parsedXml = documentBuilder.parse(new InputSource(new StringReader(unnamedXml))); // When - String value = ContractVerifierUtil.valueFromXPath(parsedXml, - "/customer/email/text()"); + String value = ContractVerifierUtil.valueFromXPath(parsedXml, "/customer/email/text()"); // Then assertThat(value).isEqualTo("customer@test.com"); } @@ -62,24 +59,20 @@ public class ContractVerifierUtilTest { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); builderFactory.setNamespaceAware(true); DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder(); - Document parsedXml = documentBuilder - .parse(new InputSource(new StringReader(unnamedXml))); + Document parsedXml = documentBuilder.parse(new InputSource(new StringReader(unnamedXml))); // When ContractVerifierUtil.valueFromXPath(parsedXml, "/ns1:customer/email/text()"); } @Test - public void shouldGetValueFromXPathWithNamespace() - throws ParserConfigurationException, IOException, SAXException { + public void shouldGetValueFromXPathWithNamespace() throws ParserConfigurationException, IOException, SAXException { // Given DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); builderFactory.setNamespaceAware(true); DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder(); - Document parsedXml = documentBuilder - .parse(new InputSource(new StringReader(namedXml))); + Document parsedXml = documentBuilder.parse(new InputSource(new StringReader(namedXml))); // When - String value = ContractVerifierUtil.valueFromXPath(parsedXml, - "/ns1:customer/email/text()"); + String value = ContractVerifierUtil.valueFromXPath(parsedXml, "/ns1:customer/email/text()"); // Then assertThat(value).isEqualTo("customer@test.com"); } @@ -91,27 +84,22 @@ public class ContractVerifierUtilTest { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); builderFactory.setNamespaceAware(true); DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder(); - Document parsedXml = documentBuilder - .parse(new InputSource(new StringReader(namedXml))); + Document parsedXml = documentBuilder.parse(new InputSource(new StringReader(namedXml))); // When - String value = ContractVerifierUtil.valueFromXPath(parsedXml, - "/customer/email/text()"); + String value = ContractVerifierUtil.valueFromXPath(parsedXml, "/customer/email/text()"); // Then assertThat(value).isEqualTo(""); } @Test - public void shouldGetNodeFromXPath() - throws ParserConfigurationException, IOException, SAXException { + public void shouldGetNodeFromXPath() throws ParserConfigurationException, IOException, SAXException { // Given DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); builderFactory.setNamespaceAware(true); DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder(); - Document parsedXml = documentBuilder - .parse(new InputSource(new StringReader(unnamedXml))); + Document parsedXml = documentBuilder.parse(new InputSource(new StringReader(unnamedXml))); // When - Node node = ContractVerifierUtil.nodeFromXPath(parsedXml, - "/customer/email/text()"); + Node node = ContractVerifierUtil.nodeFromXPath(parsedXml, "/customer/email/text()"); // Then assertThat(node.getTextContent()).isEqualTo("customer@test.com"); } @@ -123,24 +111,20 @@ public class ContractVerifierUtilTest { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); builderFactory.setNamespaceAware(true); DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder(); - Document parsedXml = documentBuilder - .parse(new InputSource(new StringReader(unnamedXml))); + Document parsedXml = documentBuilder.parse(new InputSource(new StringReader(unnamedXml))); // When ContractVerifierUtil.nodeFromXPath(parsedXml, "/ns1:customer/email/text()"); } @Test - public void shouldGetNodeFromXPathWithNamespace() - throws ParserConfigurationException, IOException, SAXException { + public void shouldGetNodeFromXPathWithNamespace() throws ParserConfigurationException, IOException, SAXException { // Given DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); builderFactory.setNamespaceAware(true); DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder(); - Document parsedXml = documentBuilder - .parse(new InputSource(new StringReader(namedXml))); + Document parsedXml = documentBuilder.parse(new InputSource(new StringReader(namedXml))); // When - Node node = ContractVerifierUtil.nodeFromXPath(parsedXml, - "/ns1:customer/email/text()"); + Node node = ContractVerifierUtil.nodeFromXPath(parsedXml, "/ns1:customer/email/text()"); // Then assertThat(node.getTextContent()).isEqualTo("customer@test.com"); } @@ -152,21 +136,17 @@ public class ContractVerifierUtilTest { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); builderFactory.setNamespaceAware(true); DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder(); - Document parsedXml = documentBuilder - .parse(new InputSource(new StringReader(namedXml))); + Document parsedXml = documentBuilder.parse(new InputSource(new StringReader(namedXml))); // When - Node node = ContractVerifierUtil.nodeFromXPath(parsedXml, - "/customer/email/text()"); + Node node = ContractVerifierUtil.nodeFromXPath(parsedXml, "/customer/email/text()"); // Then assertThat(node).isNull(); } @Test public void should_set_path_without_prefix_and_with_suffix() { - assertThat(ContractVerifierUtil.fromRelativePath("validate_foo()")) - .isEqualTo("foo.yml"); - assertThat(ContractVerifierUtil.fromRelativePath("validate_foo")) - .isEqualTo("foo.yml"); + assertThat(ContractVerifierUtil.fromRelativePath("validate_foo()")).isEqualTo("foo.yml"); + assertThat(ContractVerifierUtil.fromRelativePath("validate_foo")).isEqualTo("foo.yml"); assertThat(ContractVerifierUtil.fromRelativePath("foo")).isEqualTo("foo.yml"); assertThat(ContractVerifierUtil.fromRelativePath("foo.yml")).isEqualTo("foo.yml"); } diff --git a/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_docs_examples.java b/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_docs_examples.java index 98b8ff33d7..86c7f805bb 100644 --- a/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_docs_examples.java +++ b/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_docs_examples.java @@ -131,21 +131,15 @@ class contract_docs_examples implements Supplier> { // `containing` function matches strings // that contains passed substring. - q.parameter("gender", - r.value(r.consumer(r.containing("[mf]")), - r.producer("mf"))); + q.parameter("gender", r.value(r.consumer(r.containing("[mf]")), r.producer("mf"))); // `matching` function tests parameter // against passed regular expression. - q.parameter("offset", - r.value(r.consumer(r.matching("[0-9]+")), - r.producer(123))); + q.parameter("offset", r.value(r.consumer(r.matching("[0-9]+")), r.producer(123))); // `notMatching` functions tests if parameter // does not match passed regular expression. - q.parameter("loginStartsWith", - r.value(r.consumer(r.notMatching(".{0,2}")), - r.producer(3))); + q.parameter("loginStartsWith", r.value(r.consumer(r.notMatching(".{0,2}")), r.producer(3))); }); }); @@ -242,8 +236,7 @@ class contract_docs_examples implements Supplier> { r.url("/foo"); // In this case body will be formatted as XML. - r.body(r.equalToXml( - "johnJohn The Contract")); + r.body(r.equalToXml("johnJohn The Contract")); }); c.response(r -> { @@ -280,9 +273,8 @@ class contract_docs_examples implements Supplier> { }); c.response(r -> { r.status(r.OK()); - r.body(ContractVerifierUtil.map().entry("id", r.$(r.anyNumber())) - .entry("surname", r.$(r.consumer("Kowalsky"), - r.producer(r.regex("[a-zA-Z]+"))))); + r.body(ContractVerifierUtil.map().entry("id", r.$(r.anyNumber())).entry("surname", + r.$(r.consumer("Kowalsky"), r.producer(r.regex("[a-zA-Z]+"))))); r.headers(h -> { h.header("Content-Type", "text/plain"); }); @@ -303,19 +295,17 @@ class contract_docs_examples implements Supplier> { h.contentType(h.applicationJson()); }); r.body(ContractVerifierUtil.map() - .entry("email", - r.$(r.consumer(r.optional(r.regex(r.email()))), - r.producer("abc@abc.com"))) - .entry("callback_url", r.$(r.consumer(r.regex(r.hostname())), - r.producer("https://partners.com")))); + .entry("email", r.$(r.consumer(r.optional(r.regex(r.email()))), r.producer("abc@abc.com"))) + .entry("callback_url", + r.$(r.consumer(r.regex(r.hostname())), r.producer("https://partners.com")))); }); c.response(r -> { r.status(404); r.headers(h -> { h.header("Content-Type", "application/json"); }); - r.body(ContractVerifierUtil.map().entry("code", r.value( - r.consumer("123123"), r.producer(r.optional("123123"))))); + r.body(ContractVerifierUtil.map().entry("code", + r.value(r.consumer("123123"), r.producer(r.optional("123123"))))); }); }); @@ -326,8 +316,7 @@ class contract_docs_examples implements Supplier> { org.springframework.cloud.contract.spec.Contract.make(c -> { c.request(r -> { r.method("PUT"); - r.url(r.$(r.consumer(r.regex("^/api/[0-9]{2}$")), - r.producer("/api/12"))); + r.url(r.$(r.consumer(r.regex("^/api/[0-9]{2}$")), r.producer("/api/12"))); r.headers(h -> { h.header("Content-Type", "application/json"); }); @@ -335,11 +324,9 @@ class contract_docs_examples implements Supplier> { }); c.response(r -> { r.body(ContractVerifierUtil.map() - .entry("path", - r.$(r.consumer("/api/12"), - r.producer(r.regex("^/api/[0-9]{2}$")))) - .entry("correlationId", r.$(r.consumer("1223456"), r - .producer(r.execute("isProperCorrelationId($it)"))))); + .entry("path", r.$(r.consumer("/api/12"), r.producer(r.regex("^/api/[0-9]{2}$")))) + .entry("correlationId", + r.$(r.consumer("1223456"), r.producer(r.execute("isProperCorrelationId($it)"))))); r.status(r.OK()); }); }); diff --git a/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_multipart.java b/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_multipart.java index b81c25077e..8fad3fdba4 100644 --- a/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_multipart.java +++ b/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_multipart.java @@ -52,11 +52,8 @@ class contract_multipart implements Supplier> { }); r.multipart(ContractVerifierUtil.map() // key (parameter name), value (parameter value) pair - .entry("formParameter", - r.$(r.c(r.regex("\".+\"")), - r.p("\"formParameterValue\""))) - .entry("someBooleanParameter", - r.$(r.c(r.regex(r.anyBoolean())), r.p("true"))) + .entry("formParameter", r.$(r.c(r.regex("\".+\"")), r.p("\"formParameterValue\""))) + .entry("someBooleanParameter", r.$(r.c(r.regex(r.anyBoolean())), r.p("true"))) // a named parameter (e.g. with `file` name) that represents file // with // `name` and `content`. You can also call `named("fileName", diff --git a/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_rest.java b/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_rest.java index 195518e457..9036c12adc 100644 --- a/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_rest.java +++ b/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_rest.java @@ -55,12 +55,10 @@ class contract_rest implements Supplier> { r.status(r.OK()); r.headers(h -> { h.header("foo2", r.value(r.server(r.regex("bar")), r.client("bar"))); - h.header("foo3", r.value(r.server(r.execute("andMeToo($it)")), - r.client("foo33"))); + h.header("foo3", r.value(r.server(r.execute("andMeToo($it)")), r.client("foo33"))); h.header("fooRes", "baz"); }); - r.body(ContractVerifierUtil.map().entry("foo2", "bar") - .entry("foo3", "baz").entry("nullValue", null)); + r.body(ContractVerifierUtil.map().entry("foo2", "bar").entry("foo3", "baz").entry("nullValue", null)); r.bodyMatchers(m -> { m.jsonPath("$.foo2", m.byRegex("bar")); m.jsonPath("$.foo3", m.byCommand("executeMe($it)")); diff --git a/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_rest_with_tags.java b/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_rest_with_tags.java index 6263deb90e..743d24cf2a 100644 --- a/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_rest_with_tags.java +++ b/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_rest_with_tags.java @@ -63,9 +63,8 @@ class contract_rest_with_tags implements Supplier> { static Object metadata = Collections.singletonList( // tag::metadata[] Contract.make(c -> { - c.metadata(MetadataUtil.map().entry("wiremock", - ContractVerifierUtil.map().entry("stubMapping", - "{ \"response\" : { \"fixedDelayMilliseconds\" : 2000 } }"))); + c.metadata(MetadataUtil.map().entry("wiremock", ContractVerifierUtil.map().entry("stubMapping", + "{ \"response\" : { \"fixedDelayMilliseconds\" : 2000 } }"))); })); // end::metadata[] @@ -100,12 +99,10 @@ class contract_rest_with_tags implements Supplier> { r.status(r.OK()); r.headers(h -> { h.header("foo2", r.value(r.server(r.regex("bar")), r.client("bar"))); - h.header("foo3", r.value(r.server(r.execute("andMeToo($it)")), - r.client("foo33"))); + h.header("foo3", r.value(r.server(r.execute("andMeToo($it)")), r.client("foo33"))); h.header("fooRes", "baz"); }); - r.body(ContractVerifierUtil.map().entry("foo2", "bar") - .entry("foo3", "baz").entry("nullValue", null)); + r.body(ContractVerifierUtil.map().entry("foo2", "bar").entry("foo3", "baz").entry("nullValue", null)); r.bodyMatchers(m -> { m.jsonPath("$.foo2", m.byRegex("bar")); m.jsonPath("$.foo3", m.byCommand("executeMe($it)")); diff --git a/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_xml.java b/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_xml.java index 3ef610759f..58a4c566d0 100644 --- a/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_xml.java +++ b/spring-cloud-contract-verifier/src/test/resources/contractsToCompile/contract_xml.java @@ -37,15 +37,12 @@ class contract_xml implements Supplier { r.headers(h -> { h.contentType(h.applicationXml()); }); - r.body("\n" + "123\n" - + "abc\n" + "\n" + "abc\n" - + "def\n" + "ghi\n" + "\n" - + "123\n" + "true\n" - + "2017-01-01\n" - + "2017-01-01T01:23:45\n" - + "\n" - + "foo\n" - + "foo\n" + ""); + r.body("\n" + "123\n" + "abc\n" + "\n" + + "abc\n" + "def\n" + "ghi\n" + "\n" + + "123\n" + "true\n" + "2017-01-01\n" + + "2017-01-01T01:23:45\n" + "\n" + + "foo\n" + "foo\n" + + ""); r.bodyMatchers(m -> { m.xPath("/test/duck/text()", m.byRegex("[0-9]{3}")); m.xPath("/test/duck/text()", m.byCommand("equals($it)")); diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockApplicationListener.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockApplicationListener.java index 34bcb8de6e..1ba16141dd 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockApplicationListener.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockApplicationListener.java @@ -41,8 +41,7 @@ import org.springframework.util.SocketUtils; * */ @Order(Ordered.LOWEST_PRECEDENCE) -public class WireMockApplicationListener - implements ApplicationListener { +public class WireMockApplicationListener implements ApplicationListener { private static final Log log = LogFactory.getLog(WireMockApplicationListener.class); @@ -52,25 +51,22 @@ public class WireMockApplicationListener } private void registerPort(ConfigurableEnvironment environment) { - Integer httpPortProperty = environment.getProperty("wiremock.server.port", - Integer.class); + Integer httpPortProperty = environment.getProperty("wiremock.server.port", Integer.class); // If the httpPortProperty is not found it means the AutoConfigureWireMock hasn't // been initialised. if (httpPortProperty == null) { return; } if (isHttpDynamic(httpPortProperty)) { - registerPropertySourceForDynamicEntries(environment, "wiremock.server.port", - 10000, 12500, "wiremock.server.port-dynamic"); + registerPropertySourceForDynamicEntries(environment, "wiremock.server.port", 10000, 12500, + "wiremock.server.port-dynamic"); if (log.isDebugEnabled()) { log.debug("Registered property source for dynamic http port"); } } - int httpsPortProperty = environment.getProperty("wiremock.server.https-port", - Integer.class, 0); + int httpsPortProperty = environment.getProperty("wiremock.server.https-port", Integer.class, 0); if (isHttpsDynamic(httpsPortProperty)) { - registerPropertySourceForDynamicEntries(environment, - "wiremock.server.https-port", 12500, 15000, + registerPropertySourceForDynamicEntries(environment, "wiremock.server.https-port", 12500, 15000, "wiremock.server.https-port-dynamic"); if (log.isDebugEnabled()) { log.debug("Registered property source for dynamic https port"); @@ -79,12 +75,10 @@ public class WireMockApplicationListener else if (httpsPortProperty == -1) { MutablePropertySources propertySources = environment.getPropertySources(); addPropertySource(propertySources); - Map source = ((MapPropertySource) propertySources - .get("wiremock")).getSource(); + Map source = ((MapPropertySource) propertySources.get("wiremock")).getSource(); source.put("wiremock.server.https-port-dynamic", true); if (log.isDebugEnabled()) { - log.debug( - "Registered property source for dynamic https with https port property set to -1"); + log.debug("Registered property source for dynamic https with https port property set to -1"); } } @@ -98,21 +92,18 @@ public class WireMockApplicationListener return httpPortProperty.equals(0); } - private void registerPropertySourceForDynamicEntries( - ConfigurableEnvironment environment, String portProperty, int minPort, - int maxPort, String dynamicPortProperty) { + private void registerPropertySourceForDynamicEntries(ConfigurableEnvironment environment, String portProperty, + int minPort, int maxPort, String dynamicPortProperty) { MutablePropertySources propertySources = environment.getPropertySources(); addPropertySource(propertySources); - Map source = ((MapPropertySource) propertySources.get("wiremock")) - .getSource(); + Map source = ((MapPropertySource) propertySources.get("wiremock")).getSource(); source.put(portProperty, SocketUtils.findAvailableTcpPort(minPort, maxPort)); source.put(dynamicPortProperty, true); } private void addPropertySource(MutablePropertySources propertySources) { if (!propertySources.contains("wiremock")) { - propertySources.addFirst( - new MapPropertySource("wiremock", new HashMap())); + propertySources.addFirst(new MapPropertySource("wiremock", new HashMap())); } else { // Move it up into first place 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 2dcef0d704..88556e1cf9 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 @@ -93,8 +93,7 @@ public class WireMockConfiguration implements SmartLifecycle { log.debug("Running initialization of the WireMock configuration"); } if (this.options == null) { - com.github.tomakehurst.wiremock.core.WireMockConfiguration factory = WireMockSpring - .options(); + com.github.tomakehurst.wiremock.core.WireMockConfiguration factory = WireMockSpring.options(); if (this.wireMock.getServer().getPort() != 8080) { factory.port(this.wireMock.getServer().getPort()); } @@ -108,8 +107,7 @@ public class WireMockConfiguration implements SmartLifecycle { } this.options = factory; if (this.customizers != null) { - this.customizers.orderedStream() - .forEach(customizer -> customizer.customize(factory)); + this.customizers.orderedStream().forEach(customizer -> customizer.customize(factory)); } } reRegisterServerWithResetMappings(); @@ -132,9 +130,7 @@ public class WireMockConfiguration implements SmartLifecycle { } else { if (log.isDebugEnabled()) { - log.debug("Destroying WireMock [" - + this.beanFactory.getBean(WIREMOCK_SERVER_BEAN_NAME) - + "] instance"); + log.debug("Destroying WireMock [" + this.beanFactory.getBean(WIREMOCK_SERVER_BEAN_NAME) + "] instance"); } this.beanFactory.destroySingleton(WIREMOCK_SERVER_BEAN_NAME); if (log.isDebugEnabled()) { @@ -146,36 +142,31 @@ public class WireMockConfiguration implements SmartLifecycle { private void reRegisterServer() { if (log.isTraceEnabled()) { - log.trace("Creating a new server at http port [" - + this.wireMock.getServer().getPort() + "] and " + "https port [" - + this.wireMock.getServer().getHttpsPort() + "]"); + log.trace("Creating a new server at http port [" + this.wireMock.getServer().getPort() + "] and " + + "https port [" + this.wireMock.getServer().getHttpsPort() + "]"); } if (this.isRunning()) { if (log.isDebugEnabled()) { - log.debug("Stopping server [" + this.server + "] at port [" - + port(this.server) + "]"); + log.debug("Stopping server [" + this.server + "] at port [" + port(this.server) + "]"); } stop(); } else if (this.server == null) { this.server = new WireMockServer(this.options); if (log.isDebugEnabled()) { - log.debug("Created new server [" + this.server + "] at port [" - + port(this.server) + "]"); + log.debug("Created new server [" + this.server + "] at port [" + port(this.server) + "]"); } } start(); if (log.isDebugEnabled()) { - log.debug("Started server [" + this.server + "] at port [" + port(this.server) - + "]"); + log.debug("Started server [" + this.server + "] at port [" + port(this.server) + "]"); } logRegisteredMappings(); } private void logRegisteredMappings() { if (log.isDebugEnabled()) { - log.debug("WireMock server has [" + this.server.getStubMappings().size() - + "] stubs registered"); + log.debug("WireMock server has [" + this.server.getStubMappings().size() + "] stubs registered"); } } @@ -202,8 +193,7 @@ public class WireMockConfiguration implements SmartLifecycle { private void registerStubs() { if (log.isDebugEnabled()) { - log.debug("Will register [" + this.wireMock.getServer().getStubs().length - + "] stub locations"); + log.debug("Will register [" + this.wireMock.getServer().getStubs().length + "] stub locations"); } for (String stubs : this.wireMock.getServer().getStubs()) { if (StringUtils.hasText(stubs)) { @@ -220,8 +210,7 @@ public class WireMockConfiguration implements SmartLifecycle { for (Resource resource : resolver.getResources(pattern.toString())) { try (InputStream inputStream = resource.getInputStream()) { StubMapping stubMapping = WireMockStubMapping - .buildFrom(StreamUtils.copyToString(inputStream, - StandardCharsets.UTF_8)); + .buildFrom(StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8)); this.server.addStubMapping(stubMapping); } } @@ -233,9 +222,7 @@ public class WireMockConfiguration implements SmartLifecycle { } } - private void registerFiles( - com.github.tomakehurst.wiremock.core.WireMockConfiguration factory) - throws IOException { + private void registerFiles(com.github.tomakehurst.wiremock.core.WireMockConfiguration factory) throws IOException { List resources = new ArrayList<>(); for (String files : this.wireMock.getServer().getFiles()) { if (StringUtils.hasText(files)) { @@ -249,8 +236,7 @@ public class WireMockConfiguration implements SmartLifecycle { } } if (!resources.isEmpty()) { - ResourcesFileSource fileSource = new ResourcesFileSource( - resources.toArray(new Resource[0])); + ResourcesFileSource fileSource = new ResourcesFileSource(resources.toArray(new Resource[0])); factory.fileSource(fileSource); } } @@ -260,8 +246,7 @@ public class WireMockConfiguration implements SmartLifecycle { if (isRunning()) { int port = port(this.server); if (log.isDebugEnabled()) { - log.debug("Server [" + this.server + "] is already running at port [" - + port + "]"); + log.debug("Server [" + this.server + "] is already running at port [" + port + "]"); } return; } @@ -286,8 +271,7 @@ public class WireMockConfiguration implements SmartLifecycle { this.server.stop(); this.running = false; if (log.isDebugEnabled()) { - log.debug( - "Stopped WireMock [" + server + "] instance port [" + port + "]"); + log.debug("Stopped WireMock [" + server + "] instance port [" + port + "]"); } } else if (log.isDebugEnabled()) { @@ -296,8 +280,8 @@ public class WireMockConfiguration implements SmartLifecycle { } private int port(WireMockServer server) { - return server.isRunning() ? (server.getOptions().httpsSettings().enabled() - ? server.httpsPort() : server.port()) : -1; + return server.isRunning() ? (server.getOptions().httpsSettings().enabled() ? server.httpsPort() : server.port()) + : -1; } @Override diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockRestServiceServer.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockRestServiceServer.java index d914865353..08507355a9 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockRestServiceServer.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockRestServiceServer.java @@ -204,8 +204,7 @@ public final class WireMockRestServiceServer { } } catch (IOException e) { - throw new IllegalStateException("Cannot load resources for: " + location, - e); + throw new IllegalStateException("Cannot load resources for: " + location, e); } } if (this.ignoreExpectOrder) { @@ -213,8 +212,7 @@ public final class WireMockRestServiceServer { } for (StubMapping mapping : mappings) { ResponseActions expect = responseActions(server, mapping); - expect.andExpect(method( - HttpMethod.valueOf(mapping.getRequest().getMethod().getName()))); + expect.andExpect(method(HttpMethod.valueOf(mapping.getRequest().getMethod().getName()))); mapping.getRequest().getBodyPatterns(); bodyPatterns(expect, mapping.getRequest()); requestHeaders(expect, mapping.getRequest()); @@ -223,8 +221,7 @@ public final class WireMockRestServiceServer { return server; } - private ResponseActions responseActions(MockRestServiceServer server, - StubMapping mapping) { + private ResponseActions responseActions(MockRestServiceServer server, StubMapping mapping) { if (StringUtils.hasText(mapping.getRequest().getUrl()) || StringUtils.hasText(mapping.getRequest().getUrlPath())) { return server.expect(requestTo(request(mapping.getRequest()))); @@ -239,8 +236,7 @@ public final class WireMockRestServiceServer { for (final ContentPattern pattern : request.getBodyPatterns()) { if (pattern instanceof MatchesJsonPathPattern) { expect.andExpect(MockRestRequestMatchers - .jsonPath(((MatchesJsonPathPattern) pattern).getMatchesJsonPath()) - .exists()); + .jsonPath(((MatchesJsonPathPattern) pattern).getMatchesJsonPath()).exists()); } else if (pattern instanceof MatchesXPathPattern) { expect.andExpect(xpath((MatchesXPathPattern) pattern)); @@ -249,17 +245,14 @@ public final class WireMockRestServiceServer { } } - private RequestMatcher matchContents( - @SuppressWarnings("rawtypes") final ContentPattern pattern) { + private RequestMatcher matchContents(@SuppressWarnings("rawtypes") final ContentPattern pattern) { return new RequestMatcher() { @Override - public void match(ClientHttpRequest request) - throws IOException, AssertionError { + public void match(ClientHttpRequest request) throws IOException, AssertionError { MockClientHttpRequest mockRequest = (MockClientHttpRequest) request; @SuppressWarnings("unchecked") MatchResult result = pattern.match(mockRequest.getBodyAsString()); - MatcherAssert.assertThat( - "Request as string [" + mockRequest.getBodyAsString() + "]", + MatcherAssert.assertThat("Request as string [" + mockRequest.getBodyAsString() + "]", result.isExactMatch()); } }; @@ -275,8 +268,7 @@ public final class WireMockRestServiceServer { } private String request(RequestPattern request) { - return this.baseUrl + (request.getUrlPath() == null - ? (request.getUrl() == null ? "/" : request.getUrl()) + return this.baseUrl + (request.getUrlPath() == null ? (request.getUrl() == null ? "/" : request.getUrl()) : request.getUrlPath()); } @@ -293,15 +285,13 @@ public final class WireMockRestServiceServer { @Override protected boolean matchesSafely(String item) { if (request.getUrlPathPattern() != null) { - return Pattern.compile(request.getUrlPathPattern()) - .matcher(withoutBaseUrl(item)).matches(); + return Pattern.compile(request.getUrlPathPattern()).matcher(withoutBaseUrl(item)).matches(); } else if (request.getUrlMatcher() != null) { return request.getUrlMatcher().match(item).isExactMatch(); } else if (request.getUrlPattern() != null) { - return Pattern.compile(request.getUrlPattern()).matcher(item) - .matches(); + return Pattern.compile(request.getUrlPattern()).matcher(item).matches(); } return false; } @@ -324,8 +314,8 @@ public final class WireMockRestServiceServer { } private StubMapping mapping(Resource resource) throws IOException { - return Json.read(StreamUtils.copyToString(resource.getInputStream(), - Charset.defaultCharset()), StubMapping.class); + return Json.read(StreamUtils.copyToString(resource.getInputStream(), Charset.defaultCharset()), + StubMapping.class); } private DefaultResponseCreator response(ResponseDefinition response) { @@ -339,8 +329,7 @@ public final class WireMockRestServiceServer { } String file = response.getBodyFileName(); if (file != null) { - List locations = this.files.isEmpty() - ? Arrays.asList("classpath:/__files/") : this.files; + List locations = this.files.isEmpty() ? Arrays.asList("classpath:/__files/") : this.files; for (String location : locations) { try { if (!location.endsWith("/")) { @@ -351,14 +340,12 @@ public final class WireMockRestServiceServer { try { Resource resource = files.createRelative(file); if (resource.exists()) { - return StreamUtils.copyToString( - resource.getInputStream(), + return StreamUtils.copyToString(resource.getInputStream(), Charset.forName("UTF-8")); } } catch (IOException e) { - throw new IllegalStateException( - "Cannot locate body file: " + file, e); + throw new IllegalStateException("Cannot locate body file: " + file, e); } } } @@ -379,15 +366,12 @@ public final class WireMockRestServiceServer { @Override public boolean matches(Object item) { - return pattern.match( - new MultiValue(header, Arrays.asList((String) item))) - .isExactMatch(); + return pattern.match(new MultiValue(header, Arrays.asList((String) item))).isExactMatch(); } @Override public void describeTo(Description description) { - description - .appendText("should match header: " + header + " with ") + description.appendText("should match header: " + header + " with ") .appendText(pattern.getExpected()); } })); @@ -455,8 +439,7 @@ public final class WireMockRestServiceServer { if (value == 0) { // Same number of header matchers if (two.getPriority() != null) { - return one.getPriority() != null - ? one.getPriority() - two.getPriority() : 1; + return one.getPriority() != null ? one.getPriority() - two.getPriority() : 1; } value = (int) (one.getInsertionIndex() - two.getInsertionIndex()); } @@ -465,8 +448,7 @@ public final class WireMockRestServiceServer { } private String request(RequestPattern request) { - return (request.getUrlPath() == null - ? (request.getUrl() == null ? "/" : request.getUrl()) + return (request.getUrlPath() == null ? (request.getUrl() == null ? "/" : request.getUrl()) : request.getUrlPath()); } diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockRestTemplateConfiguration.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockRestTemplateConfiguration.java index 60e86de239..d2f01253d4 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockRestTemplateConfiguration.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockRestTemplateConfiguration.java @@ -40,14 +40,12 @@ public class WireMockRestTemplateConfiguration { @Bean @ConditionalOnClass(SSLContextBuilder.class) - @ConditionalOnProperty(value = "wiremock.rest-template-ssl-enabled", - matchIfMissing = true) + @ConditionalOnProperty(value = "wiremock.rest-template-ssl-enabled", matchIfMissing = true) public RestTemplateCustomizer wiremockRestTemplateCustomizer() { return new RestTemplateCustomizer() { @Override public void customize(RestTemplate restTemplate) { - if (restTemplate - .getRequestFactory() instanceof HttpComponentsClientHttpRequestFactory) { + if (restTemplate.getRequestFactory() instanceof HttpComponentsClientHttpRequestFactory) { HttpComponentsClientHttpRequestFactory factory = (HttpComponentsClientHttpRequestFactory) restTemplate .getRequestFactory(); factory.setHttpClient(createSslHttpClient()); @@ -57,15 +55,12 @@ public class WireMockRestTemplateConfiguration { private HttpClient createSslHttpClient() { try { SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory( - new SSLContextBuilder().loadTrustMaterial(null, - TrustSelfSignedStrategy.INSTANCE).build(), + new SSLContextBuilder().loadTrustMaterial(null, TrustSelfSignedStrategy.INSTANCE).build(), NoopHostnameVerifier.INSTANCE); - return HttpClients.custom().setSSLSocketFactory(socketFactory) - .build(); + return HttpClients.custom().setSSLSocketFactory(socketFactory).build(); } catch (Exception ex) { - throw new IllegalStateException("Unable to create SSL HttpClient", - ex); + throw new IllegalStateException("Unable to create SSL HttpClient", ex); } } }; diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockSpring.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockSpring.java index a9a307317a..041c92f01b 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockSpring.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockSpring.java @@ -47,18 +47,14 @@ public abstract class WireMockSpring { public static WireMockConfiguration options() { if (!initialized) { - if (ClassUtils.isPresent("org.apache.http.conn.ssl.NoopHostnameVerifier", - null)) { - HttpsURLConnection - .setDefaultHostnameVerifier(NoopHostnameVerifier.INSTANCE); + if (ClassUtils.isPresent("org.apache.http.conn.ssl.NoopHostnameVerifier", null)) { + HttpsURLConnection.setDefaultHostnameVerifier(NoopHostnameVerifier.INSTANCE); try { HttpsURLConnection.setDefaultSSLSocketFactory(SSLContexts.custom() - .loadTrustMaterial(null, TrustSelfSignedStrategy.INSTANCE) - .build().getSocketFactory()); + .loadTrustMaterial(null, TrustSelfSignedStrategy.INSTANCE).build().getSocketFactory()); } catch (Exception e) { - throw new AssertionError("Cannot install custom socket factory: [" - + e.getMessage() + "]"); + throw new AssertionError("Cannot install custom socket factory: [" + e.getMessage() + "]"); } } initialized = true; diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockTestExecutionListener.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockTestExecutionListener.java index 46bdc785fe..05200771b6 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockTestExecutionListener.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockTestExecutionListener.java @@ -38,8 +38,7 @@ public final class WireMockTestExecutionListener extends AbstractTestExecutionLi @Override public void beforeTestClass(TestContext testContext) throws Exception { - if (applicationContextBroken(testContext) - || wireMockConfigurationMissing(testContext) + if (applicationContextBroken(testContext) || wireMockConfigurationMissing(testContext) || annotationMissing(testContext)) { return; } @@ -54,8 +53,7 @@ public final class WireMockTestExecutionListener extends AbstractTestExecutionLi @Override public void afterTestClass(TestContext testContext) { - if (applicationContextBroken(testContext) - || wireMockConfigurationMissing(testContext) + if (applicationContextBroken(testContext) || wireMockConfigurationMissing(testContext) || annotationMissing(testContext)) { return; } @@ -66,14 +64,12 @@ public final class WireMockTestExecutionListener extends AbstractTestExecutionLi + "as possible. Your tests will be faster and more reliable and this " + "warning will go away"); } - testContext - .markApplicationContextDirty(DirtiesContext.HierarchyMode.EXHAUSTIVE); + testContext.markApplicationContextDirty(DirtiesContext.HierarchyMode.EXHAUSTIVE); } else { if (log.isDebugEnabled()) { - log.debug( - "Resetting mappings for the next test to restart them. That's necessary when" - + " reusing the same context with new servers running on random ports"); + log.debug("Resetting mappings for the next test to restart them. That's necessary when" + + " reusing the same context with new servers running on random ports"); } wireMockConfig(testContext).reRegisterServerWithResetMappings(); } @@ -81,8 +77,7 @@ public final class WireMockTestExecutionListener extends AbstractTestExecutionLi @Override public void afterTestMethod(TestContext testContext) throws Exception { - if (applicationContextBroken(testContext) - || wireMockConfigurationMissing(testContext) + if (applicationContextBroken(testContext) || wireMockConfigurationMissing(testContext) || annotationMissing(testContext)) { return; } @@ -96,11 +91,10 @@ public final class WireMockTestExecutionListener extends AbstractTestExecutionLi } private boolean annotationMissing(TestContext testContext) { - if (testContext.getTestClass() - .getAnnotationsByType(AutoConfigureWireMock.class).length == 0) { + if (testContext.getTestClass().getAnnotationsByType(AutoConfigureWireMock.class).length == 0) { if (log.isDebugEnabled()) { - log.debug("No @AutoConfigureWireMock annotation found on [" - + testContext.getTestClass() + "]. Skipping"); + log.debug( + "No @AutoConfigureWireMock annotation found on [" + testContext.getTestClass() + "]. Skipping"); } return true; } @@ -108,8 +102,7 @@ public final class WireMockTestExecutionListener extends AbstractTestExecutionLi } private boolean wireMockConfigurationMissing(TestContext testContext) { - boolean missing = !testContext(testContext) - .containsBean(WireMockConfiguration.class.getName()); + boolean missing = !testContext(testContext).containsBean(WireMockConfiguration.class.getName()); if (log.isDebugEnabled()) { log.debug("WireMockConfiguration is missing [" + missing + "]"); } @@ -140,14 +133,12 @@ public final class WireMockTestExecutionListener extends AbstractTestExecutionLi private boolean portIsFixed(TestContext testContext) { WireMockConfiguration wireMockProperties = wireMockConfig(testContext); boolean httpPortDynamic = wireMockProperties.wireMock.getServer().isPortDynamic(); - boolean httpsPortDynamic = wireMockProperties.wireMock.getServer() - .isHttpsPortDynamic(); + boolean httpsPortDynamic = wireMockProperties.wireMock.getServer().isHttpsPortDynamic(); if (log.isDebugEnabled()) { int httpPort = wireMockProperties.wireMock.getServer().getPort(); int httpsPort = wireMockProperties.wireMock.getServer().getHttpsPort(); - log.debug("Http port [" + httpPort + "] dynamic [" + httpPortDynamic + "]" - + " https port [" + httpsPort + "] dynamic [" + httpsPortDynamic - + "]"); + log.debug("Http port [" + httpPort + "] dynamic [" + httpPortDynamic + "]" + " https port [" + httpsPort + + "] dynamic [" + httpsPortDynamic + "]"); } return !httpPortDynamic || !httpsPortDynamic; } diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSource.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSource.java index 81af6fcfd0..4150120734 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSource.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSource.java @@ -67,9 +67,7 @@ public class ResourcesFileSource implements FileSource { sources[i] = fileOrFallbackToClasspath(resource); } else { - throw new IllegalArgumentException( - "Unsupported resource type for file source: " - + resource.getClass()); + throw new IllegalArgumentException("Unsupported resource type for file source: " + resource.getClass()); } } return sources; @@ -148,8 +146,7 @@ public class ResourcesFileSource implements FileSource { List childSources = new ArrayList<>(); for (FileSource resource : this.sources) { try { - UrlResource uri = new UrlResource( - resource.child(subDirectoryName).getUri()); + UrlResource uri = new UrlResource(resource.child(subDirectoryName).getUri()); if (uri.createRelative(subDirectoryName).exists()) { childSources.add(resource.child(subDirectoryName)); } diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/BasicMappingBuilder.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/BasicMappingBuilder.java index 0b43053849..b88aebe723 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/BasicMappingBuilder.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/BasicMappingBuilder.java @@ -73,8 +73,7 @@ class BasicMappingBuilder implements ScenarioMappingBuilder { } BasicMappingBuilder(String customRequestMatcherName, Parameters parameters) { - this.requestPatternBuilder = new RequestPatternBuilder(customRequestMatcherName, - parameters); + this.requestPatternBuilder = new RequestPatternBuilder(customRequestMatcherName, parameters); } @Override @@ -114,22 +113,19 @@ class BasicMappingBuilder implements ScenarioMappingBuilder { } @Override - public BasicMappingBuilder withCookie(String name, - StringValuePattern cookieValuePattern) { + public BasicMappingBuilder withCookie(String name, StringValuePattern cookieValuePattern) { this.requestPatternBuilder.withCookie(name, cookieValuePattern); return this; } @Override - public BasicMappingBuilder withQueryParam(String key, - StringValuePattern queryParamPattern) { + public BasicMappingBuilder withQueryParam(String key, StringValuePattern queryParamPattern) { this.requestPatternBuilder.withQueryParam(key, queryParamPattern); return this; } @Override - public ScenarioMappingBuilder withQueryParams( - Map queryParams) { + public ScenarioMappingBuilder withQueryParams(Map queryParams) { for (Map.Entry entry : queryParams.entrySet()) { this.requestPatternBuilder.withQueryParam(entry.getKey(), entry.getValue()); } @@ -143,8 +139,7 @@ class BasicMappingBuilder implements ScenarioMappingBuilder { } @Override - public ScenarioMappingBuilder withMultipartRequestBody( - MultipartValuePatternBuilder multipartPatternBuilder) { + public ScenarioMappingBuilder withMultipartRequestBody(MultipartValuePatternBuilder multipartPatternBuilder) { this.requestPatternBuilder.withRequestBodyPart(multipartPatternBuilder.build()); return this; } @@ -187,16 +182,13 @@ class BasicMappingBuilder implements ScenarioMappingBuilder { @Override public BasicMappingBuilder withBasicAuth(String username, String password) { - this.requestPatternBuilder - .withBasicAuth(new BasicCredentials(username, password)); + this.requestPatternBuilder.withBasicAuth(new BasicCredentials(username, password)); return this; } @Override - public

BasicMappingBuilder withPostServeAction(String extensionName, - P parameters) { - Parameters params = parameters instanceof Parameters ? (Parameters) parameters - : Parameters.of(parameters); + public

BasicMappingBuilder withPostServeAction(String extensionName, P parameters) { + Parameters params = parameters instanceof Parameters ? (Parameters) parameters : Parameters.of(parameters); this.postServeActions.put(extensionName, params); return this; } @@ -232,22 +224,18 @@ class BasicMappingBuilder implements ScenarioMappingBuilder { } @Override - public MappingBuilder andMatching(String customRequestMatcherName, - Parameters parameters) { + public MappingBuilder andMatching(String customRequestMatcherName, Parameters parameters) { this.requestPatternBuilder.andMatching(customRequestMatcherName, parameters); return this; } @Override public StubMapping build() { - if (this.scenarioName == null && (this.requiredScenarioState != null - || this.newScenarioState != null)) { - throw new IllegalStateException( - "Scenario name must be specified to require or set a new scenario state"); + if (this.scenarioName == null && (this.requiredScenarioState != null || this.newScenarioState != null)) { + throw new IllegalStateException("Scenario name must be specified to require or set a new scenario state"); } RequestPattern requestPattern = this.requestPatternBuilder.build(); - ResponseDefinition response = (this.responseDefBuilder != null - ? this.responseDefBuilder : aResponse()).build(); + ResponseDefinition response = (this.responseDefBuilder != null ? this.responseDefBuilder : aResponse()).build(); StubMapping mapping = new StubMapping(requestPattern, response); mapping.setPriority(this.priority); mapping.setScenarioName(this.scenarioName); @@ -256,8 +244,7 @@ class BasicMappingBuilder implements ScenarioMappingBuilder { mapping.setUuid(this.id); mapping.setName(this.name); mapping.setPersistent(this.isPersistent); - mapping.setPostServeActions( - this.postServeActions.isEmpty() ? null : this.postServeActions); + mapping.setPostServeActions(this.postServeActions.isEmpty() ? null : this.postServeActions); mapping.setMetadata(this.metadata); return mapping; } diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippet.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippet.java index f41b45c6d2..c6cb0ee32d 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippet.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippet.java @@ -55,8 +55,7 @@ public class ContractDslSnippet extends TemplatedSnippet { private static final Set IGNORED_HEADERS = new HashSet<>( Arrays.asList(HttpHeaders.HOST, HttpHeaders.CONTENT_LENGTH)); - private final PropertyPlaceholderHelper propertyPlaceholderHelper = new PropertyPlaceholderHelper( - "{", "}"); + private final PropertyPlaceholderHelper propertyPlaceholderHelper = new PropertyPlaceholderHelper("{", "}"); private Map model = new HashMap<>(); @@ -83,10 +82,8 @@ public class ContractDslSnippet extends TemplatedSnippet { @Override public void document(Operation operation) throws IOException { - TemplateEngine templateEngine = (TemplateEngine) operation.getAttributes() - .get(TemplateEngine.class.getName()); - String renderedContract = templateEngine - .compileTemplate("default-dsl-contract-only") + TemplateEngine templateEngine = (TemplateEngine) operation.getAttributes().get(TemplateEngine.class.getName()); + String renderedContract = templateEngine.compileTemplate("default-dsl-contract-only") .render(createModelForContract(operation)); this.model.put("contract", renderedContract); storeDslContract(operation, renderedContract); @@ -98,8 +95,7 @@ public class ContractDslSnippet extends TemplatedSnippet { model.put("response_status", response.getStatus().value()); model.put("response_body_present", response.getContent().length > 0); model.put("response_body", response.getContentAsString()); - Map headers = new HashMap<>( - response.getHeaders().toSingleValueMap()); + Map headers = new HashMap<>(response.getHeaders().toSingleValueMap()); filterHeaders(headers); model.put("response_headers_present", !headers.isEmpty()); model.put("response_headers", headers.entrySet()); @@ -125,21 +121,17 @@ public class ContractDslSnippet extends TemplatedSnippet { model.put("request_urlpath_present", urlPathPresent); if (urlPathPresent) { // TODO: Add support for multiple values - model.put("request_queryparams", - request.getParameters().toSingleValueMap().entrySet()); + model.put("request_queryparams", request.getParameters().toSingleValueMap().entrySet()); } model.put("request_body_present", request.getContent().length > 0); model.put("request_body", request.getContentAsString()); - Map headers = new HashMap<>( - request.getHeaders().toSingleValueMap()); + Map headers = new HashMap<>(request.getHeaders().toSingleValueMap()); filterHeaders(headers); model.put("request_headers_present", !headers.isEmpty()); model.put("request_headers", headers.entrySet()); @SuppressWarnings("unchecked") - Set jsonPaths = (Set) operation.getAttributes() - .get("contract.jsonPaths"); - model.put("request_json_paths_present", - jsonPaths != null && !jsonPaths.isEmpty()); + Set jsonPaths = (Set) operation.getAttributes().get("contract.jsonPaths"); + model.put("request_json_paths_present", jsonPaths != null && !jsonPaths.isEmpty()); model.put("request_json_paths", jsonPaths(jsonPaths)); } @@ -162,24 +154,19 @@ public class ContractDslSnippet extends TemplatedSnippet { return modelForContract; } - private void storeDslContract(Operation operation, String content) - throws IOException { - RestDocumentationContext context = (RestDocumentationContext) operation - .getAttributes().get(RestDocumentationContext.class.getName()); - RestDocumentationContextPlaceholderResolver resolver = new RestDocumentationContextPlaceholderResolver( - context); + private void storeDslContract(Operation operation, String content) throws IOException { + RestDocumentationContext context = (RestDocumentationContext) operation.getAttributes() + .get(RestDocumentationContext.class.getName()); + RestDocumentationContextPlaceholderResolver resolver = new RestDocumentationContextPlaceholderResolver(context); String resolvedName = replacePlaceholders(resolver, operation.getName()); - File output = new File(context.getOutputDirectory(), - CONTRACTS_FOLDER + "/" + resolvedName + ".groovy"); + File output = new File(context.getOutputDirectory(), CONTRACTS_FOLDER + "/" + resolvedName + ".groovy"); output.getParentFile().mkdirs(); - try (Writer writer = new OutputStreamWriter( - Files.newOutputStream(output.toPath()))) { + try (Writer writer = new OutputStreamWriter(Files.newOutputStream(output.toPath()))) { writer.append(content); } } - private String replacePlaceholders( - PropertyPlaceholderHelper.PlaceholderResolver resolver, String input) { + private String replacePlaceholders(PropertyPlaceholderHelper.PlaceholderResolver resolver, String input) { return this.propertyPlaceholderHelper.replacePlaceholders(input, resolver); } diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractExchangeHandler.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractExchangeHandler.java index 7bd5e37e73..4d7854d64a 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractExchangeHandler.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractExchangeHandler.java @@ -56,8 +56,7 @@ import org.springframework.web.multipart.support.StandardMultipartHttpServletReq * @author Dave Syer * */ -public class ContractExchangeHandler - extends WireMockVerifyHelper, ContractExchangeHandler> +public class ContractExchangeHandler extends WireMockVerifyHelper, ContractExchangeHandler> implements Consumer> { @Override @@ -66,17 +65,14 @@ public class ContractExchangeHandler } @Override - protected ResponseDefinitionBuilder getResponseDefinition( - EntityExchangeResult result) { - ResponseDefinitionBuilder definition = ResponseDefinitionBuilder - .responseDefinition().withBody(result.getResponseBodyContent()) - .withStatus(result.getStatus().value()); + protected ResponseDefinitionBuilder getResponseDefinition(EntityExchangeResult result) { + ResponseDefinitionBuilder definition = ResponseDefinitionBuilder.responseDefinition() + .withBody(result.getResponseBodyContent()).withStatus(result.getStatus().value()); addResponseHeaders(definition, result.getResponseHeaders()); return definition; } - private void addResponseHeaders(ResponseDefinitionBuilder definition, - HttpHeaders httpHeaders) { + private void addResponseHeaders(ResponseDefinitionBuilder definition, HttpHeaders httpHeaders) { for (String name : httpHeaders.keySet()) { definition.withHeader(name, httpHeaders.get(name).toArray(new String[0])); } @@ -84,14 +80,12 @@ public class ContractExchangeHandler @Override protected Map getConfiguration(EntityExchangeResult result) { - Field field = ReflectionUtils.findField( - WebTestClientRestDocumentationConfigurer.class, "configurations"); + Field field = ReflectionUtils.findField(WebTestClientRestDocumentationConfigurer.class, "configurations"); ReflectionUtils.makeAccessible(field); - String index = result.getRequestHeaders() - .getFirst(WebTestClient.WEBTESTCLIENT_REQUEST_ID); + String index = result.getRequestHeaders().getFirst(WebTestClient.WEBTESTCLIENT_REQUEST_ID); @SuppressWarnings("unchecked") - Map map = (((Map>) ReflectionUtils - .getField(field, null)).get(index)); + Map map = (((Map>) ReflectionUtils.getField(field, null)) + .get(index)); if (map == null) { return new HashMap<>(); } @@ -167,8 +161,7 @@ class WireMockHttpRequestAdapter implements Request { @Override public HttpHeader header(String key) { HttpHeaders headers = this.result.getRequestHeaders(); - return headers.containsKey(key) - ? new HttpHeader(key, headers.getValuesAsList(key)) : null; + return headers.containsKey(key) ? new HttpHeader(key, headers.getValuesAsList(key)) : null; } @Override @@ -247,8 +240,7 @@ class WireMockHttpRequestAdapter implements Request { @Override public boolean isMultipart() { - return MediaType.MULTIPART_FORM_DATA - .isCompatibleWith(this.result.getRequestHeaders().getContentType()); + return MediaType.MULTIPART_FORM_DATA.isCompatibleWith(this.result.getRequestHeaders().getContentType()); } @Override @@ -266,8 +258,7 @@ class WireMockHttpRequestAdapter implements Request { MockHttpServletRequest request = MockMvcRequestBuilders .request(this.result.getMethod(), this.result.getUriTemplate()) .contentType(this.result.getRequestHeaders().getContentType()) - .content(this.result.getRequestBodyContent()) - .buildRequest(new MockServletContext()); + .content(this.result.getRequestBodyContent()).buildRequest(new MockServletContext()); try { return new StandardMultipartHttpServletRequest(request).getParts().stream() .map(part -> partFromServletPart(part)).collect(Collectors.toList()); @@ -315,8 +306,7 @@ class WireMockHttpRequestAdapter implements Request { // TODO: Consider caching this @Override public Part getPart(String name) { - return getWireMockParts().stream().filter(part -> name.equals(part.getName())) - .findFirst().get(); + return getWireMockParts().stream().filter(part -> name.equals(part.getName())).findFirst().get(); } @Override diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractResultHandler.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractResultHandler.java index dc60e6062a..ec73008b06 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractResultHandler.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractResultHandler.java @@ -52,8 +52,8 @@ import org.springframework.util.StringUtils; * * @author Dave Syer */ -public class ContractResultHandler extends - WireMockVerifyHelper implements ResultHandler { +public class ContractResultHandler extends WireMockVerifyHelper + implements ResultHandler { static final String ATTRIBUTE_NAME_CONFIGURATION = "org.springframework.restdocs.configuration"; @@ -67,8 +67,7 @@ public class ContractResultHandler extends MockHttpServletResponse response = result.getResponse(); ResponseDefinitionBuilder definition; try { - definition = ResponseDefinitionBuilder.responseDefinition() - .withBody(response.getContentAsString()) + definition = ResponseDefinitionBuilder.responseDefinition().withBody(response.getContentAsString()) .withStatus(response.getStatus()); addResponseHeaders(definition, response); return definition; @@ -78,8 +77,7 @@ public class ContractResultHandler extends } } - private void addResponseHeaders(ResponseDefinitionBuilder definition, - MockHttpServletResponse input) { + private void addResponseHeaders(ResponseDefinitionBuilder definition, MockHttpServletResponse input) { for (String name : input.getHeaderNames()) { definition.withHeader(name, input.getHeader(name)); } @@ -88,8 +86,7 @@ public class ContractResultHandler extends @Override protected Map getConfiguration(MvcResult result) { @SuppressWarnings("unchecked") - Map map = (Map) result.getRequest() - .getAttribute(ATTRIBUTE_NAME_CONFIGURATION); + Map map = (Map) result.getRequest().getAttribute(ATTRIBUTE_NAME_CONFIGURATION); if (map == null) { map = new HashMap<>(); result.getRequest().setAttribute(ATTRIBUTE_NAME_CONFIGURATION, map); @@ -185,8 +182,7 @@ public class ContractResultHandler extends if (result.getRequest().getCookies() == null) { return nameToCookie; } - for (javax.servlet.http.Cookie cookie : result.getRequest() - .getCookies()) { + for (javax.servlet.http.Cookie cookie : result.getRequest().getCookies()) { nameToCookie.put(cookie.getName(), new Cookie(cookie.getValue())); } return nameToCookie; @@ -194,8 +190,7 @@ public class ContractResultHandler extends @Override public QueryParameter queryParameter(String key) { - return new QueryParameter(key, - Collections.singletonList(result.getRequest().getParameter(key))); + return new QueryParameter(key, Collections.singletonList(result.getRequest().getParameter(key))); } @Override @@ -215,53 +210,48 @@ public class ContractResultHandler extends @Override public String getBodyAsBase64() { - return Base64Utils - .encodeToString(result.getRequest().getContentAsByteArray()); + return Base64Utils.encodeToString(result.getRequest().getContentAsByteArray()); } @Override public boolean isMultipart() { - return StringUtils - .hasText(result.getRequest().getHeader("multipart/form-data")); + return StringUtils.hasText(result.getRequest().getHeader("multipart/form-data")); } @Override public Collection getParts() { try { - return result.getRequest().getParts().stream() - .map(part -> new Part() { - @Override - public String getName() { - return part.getName(); - } + return result.getRequest().getParts().stream().map(part -> new Part() { + @Override + public String getName() { + return part.getName(); + } - @Override - public HttpHeader getHeader(String name) { - String header = part.getHeader(name); - return new HttpHeader(name, header); - } + @Override + public HttpHeader getHeader(String name) { + String header = part.getHeader(name); + return new HttpHeader(name, header); + } - @Override - public HttpHeaders getHeaders() { - List headers = new ArrayList<>(); - for (String headerName : part.getHeaderNames()) { - headers.add(new HttpHeader(headerName, - getHeader(headerName).values())); - } - return new HttpHeaders(headers); - } + @Override + public HttpHeaders getHeaders() { + List headers = new ArrayList<>(); + for (String headerName : part.getHeaderNames()) { + headers.add(new HttpHeader(headerName, getHeader(headerName).values())); + } + return new HttpHeaders(headers); + } - @Override - public Body getBody() { - try { - return new Body(IOUtils - .toByteArray(part.getInputStream())); - } - catch (IOException ex) { - throw new IllegalStateException(ex); - } - } - }).collect(Collectors.toList()); + @Override + public Body getBody() { + try { + return new Body(IOUtils.toByteArray(part.getInputStream())); + } + catch (IOException ex) { + throw new IllegalStateException(ex); + } + } + }).collect(Collectors.toList()); } catch (Exception ex) { throw new IllegalStateException(ex); @@ -270,8 +260,7 @@ public class ContractResultHandler extends @Override public Part getPart(String name) { - return getParts().stream().filter(part -> part.getName().equals(name)) - .findFirst().orElse(null); + return getParts().stream().filter(part -> part.getName().equals(name)).findFirst().orElse(null); } @Override diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/DynamicPortPlaceholderInserterPreprocessor.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/DynamicPortPlaceholderInserterPreprocessor.java index 43245f340f..a13788d1df 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/DynamicPortPlaceholderInserterPreprocessor.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/DynamicPortPlaceholderInserterPreprocessor.java @@ -34,8 +34,7 @@ class DynamicPortPlaceholderInserterPreprocessor implements OperationPreprocesso public OperationResponse preprocess(OperationResponse response) { String content = response.getContentAsString(); if (content.contains("localhost:8080")) { - content = content.replace("localhost:8080", - "localhost:{{request.requestLine.port}}"); + content = content.replace("localhost:8080", "localhost:{{request.requestLine.port}}"); response = this.responseFactory.createFrom(response, content.getBytes()); } return response; diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/JsonPathValue.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/JsonPathValue.java index 0ab2a4083a..0da02e8e37 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/JsonPathValue.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/JsonPathValue.java @@ -75,8 +75,7 @@ class JsonPathValue { } private String getExpectedValueMessage(String expectedDescription) { - return String.format("Expected %s at JSON path \"%s\" but found: %s", - expectedDescription, this.expression, + return String.format("Expected %s at JSON path \"%s\" but found: %s", expectedDescription, this.expression, ObjectUtils.nullSafeToString(StringUtils.quoteIfString(getValue(false)))); } diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockRestAssuredConfiguration.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockRestAssuredConfiguration.java index 738f97cc0c..100593ea3f 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockRestAssuredConfiguration.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockRestAssuredConfiguration.java @@ -35,8 +35,7 @@ import org.springframework.restdocs.restassured3.RestAssuredRestDocumentationCon */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass(RestAssuredRestDocumentationConfigurer.class) -public class WireMockRestAssuredConfiguration - implements RestDocsRestAssuredConfigurationCustomizer { +public class WireMockRestAssuredConfiguration implements RestDocsRestAssuredConfigurationCustomizer { @Override public void customize(RestAssuredRestDocumentationConfigurer configurer) { diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockRestDocsConfiguration.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockRestDocsConfiguration.java index a69831f709..ba6746fb2c 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockRestDocsConfiguration.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockRestDocsConfiguration.java @@ -36,8 +36,7 @@ import org.springframework.restdocs.mockmvc.MockMvcRestDocumentationConfigurer; */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass(MockMvcRestDocumentationConfigurer.class) -public class WireMockRestDocsConfiguration - implements RestDocsMockMvcConfigurationCustomizer { +public class WireMockRestDocsConfiguration implements RestDocsMockMvcConfigurationCustomizer { private final Environment environment; @@ -47,10 +46,8 @@ public class WireMockRestDocsConfiguration @Override public void customize(MockMvcRestDocumentationConfigurer configurer) { - if (this.environment.getProperty("wiremock.placeholders.enabled", "true") - .equals("true")) { - configurer.operationPreprocessors().withResponseDefaults( - new DynamicPortPlaceholderInserterPreprocessor()); + if (this.environment.getProperty("wiremock.placeholders.enabled", "true").equals("true")) { + configurer.operationPreprocessors().withResponseDefaults(new DynamicPortPlaceholderInserterPreprocessor()); } configurer.snippets().withAdditionalDefaults(new WireMockSnippet()); } diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockSnippet.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockSnippet.java index d51f369463..85c80492af 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockSnippet.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockSnippet.java @@ -81,8 +81,7 @@ public class WireMockSnippet implements Snippet { private String snippetName = "stubs"; - private Set headerBlackList = new HashSet<>( - Arrays.asList("host", "content-length")); + private Set headerBlackList = new HashSet<>(Arrays.asList("host", "content-length")); private Set jsonPaths = new LinkedHashSet<>(); @@ -102,30 +101,24 @@ public class WireMockSnippet implements Snippet { } String json = Json.write(this.stubMapping); RestDocumentationContext context; - context = (RestDocumentationContext) operation.getAttributes() - .get(RestDocumentationContext.class.getName()); + context = (RestDocumentationContext) operation.getAttributes().get(RestDocumentationContext.class.getName()); RestDocumentationContextPlaceholderResolverFactory placeholders; placeholders = new RestDocumentationContextPlaceholderResolverFactory(); - WriterResolver writerResolver = new StandardWriterResolver(placeholders, "UTF-8", - TEMPLATE_FORMAT); - try (Writer writer = writerResolver.resolve(this.snippetName, operation.getName(), - context)) { + WriterResolver writerResolver = new StandardWriterResolver(placeholders, "UTF-8", TEMPLATE_FORMAT); + try (Writer writer = writerResolver.resolve(this.snippetName, operation.getName(), context)) { writer.append(json); } } private void extractMatchers(Operation operation) { - this.stubMapping = (StubMapping) operation.getAttributes() - .get("contract.stubMapping"); + this.stubMapping = (StubMapping) operation.getAttributes().get("contract.stubMapping"); if (this.stubMapping != null) { return; } @SuppressWarnings("unchecked") - Set jsonPaths = (Set) operation.getAttributes() - .get("contract.jsonPaths"); + Set jsonPaths = (Set) operation.getAttributes().get("contract.jsonPaths"); this.jsonPaths = jsonPaths; - this.contentType = (MediaType) operation.getAttributes() - .get("contract.contentType"); + this.contentType = (MediaType) operation.getAttributes().get("contract.contentType"); if (this.contentType == null) { this.hasJsonBodyRequestToMatch = hasJsonContentType(operation); this.hasXmlBodyRequestToMatch = hasXmlContentType(operation); @@ -141,24 +134,21 @@ public class WireMockSnippet implements Snippet { } private boolean hasContentType(Operation operation, MediaType mediaType) { - return operation.getRequest().getHeaders().getContentType() != null && (operation - .getRequest().getHeaders().getContentType().isCompatibleWith(mediaType)); + return operation.getRequest().getHeaders().getContentType() != null + && (operation.getRequest().getHeaders().getContentType().isCompatibleWith(mediaType)); } private ResponseDefinitionBuilder response(Operation operation) { String content = operation.getResponse().getContentAsString(); - ResponseDefinitionBuilder response = aResponse() - .withHeaders(responseHeaders(operation)).withBody(content); - if (content != null - && content.contains("localhost:{{request.requestLine.port}}")) { + ResponseDefinitionBuilder response = aResponse().withHeaders(responseHeaders(operation)).withBody(content); + if (content != null && content.contains("localhost:{{request.requestLine.port}}")) { response = response.withTransformers("response-template"); } return response.withStatus(operation.getResponse().getStatus().value()); } private MappingBuilder request(Operation operation) { - return queryParams(requestHeaders(requestBuilder(operation), operation), - operation); + return queryParams(requestHeaders(requestBuilder(operation), operation), operation); } private MappingBuilder queryParams(MappingBuilder request, Operation operation) { @@ -175,8 +165,7 @@ public class WireMockSnippet implements Snippet { } private MappingBuilder requestHeaders(MappingBuilder request, Operation operation) { - org.springframework.http.HttpHeaders headers = operation.getRequest() - .getHeaders(); + org.springframework.http.HttpHeaders headers = operation.getRequest().getHeaders(); // TODO: whitelist headers for (String name : headers.keySet()) { if (!this.headerBlackList.contains(name.toLowerCase())) { @@ -187,8 +176,7 @@ public class WireMockSnippet implements Snippet { } } if (this.contentType != null) { - request = request.withHeader("Content-Type", - matching(Pattern.quote(this.contentType.toString()) + ".*")); + request = request.withHeader("Content-Type", matching(Pattern.quote(this.contentType.toString()) + ".*")); } return request; } @@ -198,14 +186,11 @@ public class WireMockSnippet implements Snippet { case DELETE: return delete(requestPattern(operation)); case POST: - return bodyPattern(post(requestPattern(operation)), - operation.getRequest().getContentAsString()); + return bodyPattern(post(requestPattern(operation)), operation.getRequest().getContentAsString()); case PUT: - return bodyPattern(put(requestPattern(operation)), - operation.getRequest().getContentAsString()); + return bodyPattern(put(requestPattern(operation)), operation.getRequest().getContentAsString()); case PATCH: - return bodyPattern(patch(requestPattern(operation)), - operation.getRequest().getContentAsString()); + return bodyPattern(patch(requestPattern(operation)), operation.getRequest().getContentAsString()); case GET: return get(requestPattern(operation)); case HEAD: @@ -215,8 +200,7 @@ public class WireMockSnippet implements Snippet { case TRACE: return trace(requestPattern(operation)); default: - throw new UnsupportedOperationException( - "Unsupported method type: " + operation.getRequest().getMethod()); + throw new UnsupportedOperationException("Unsupported method type: " + operation.getRequest().getMethod()); } } @@ -245,8 +229,7 @@ public class WireMockSnippet implements Snippet { } private HttpHeaders responseHeaders(Operation operation) { - org.springframework.http.HttpHeaders headers = operation.getResponse() - .getHeaders(); + org.springframework.http.HttpHeaders headers = operation.getResponse().getHeaders(); HttpHeaders result = new HttpHeaders(); for (String name : headers.keySet()) { if (!this.headerBlackList.contains(name.toLowerCase())) { diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockVerifyHelper.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockVerifyHelper.java index ca03afa8c9..d5c1df0dfb 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockVerifyHelper.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockVerifyHelper.java @@ -61,8 +61,7 @@ public abstract class WireMockVerifyHelper postRequest = RequestEntity - .post(URI.create("https://example.org/resource")) + RequestEntity postRequest = RequestEntity.post(URI.create("https://example.org/resource")) .accept(MediaType.TEXT_PLAIN).build(); ResponseEntity response; try { @@ -62,8 +61,7 @@ public class WiremockMockServerApplicationTests { response = null; } if (null != response) { - fail("There was a response for POST request: " + postRequest - + "\n\tresponse: " + response); + fail("There was a response for POST request: " + postRequest + "\n\tresponse: " + response); } } @@ -72,9 +70,8 @@ public class WiremockMockServerApplicationTests { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // .stubs("classpath:/mappings/resource-with-body-file.json").build(); - assertThat(this.restTemplate.getForObject("https://example.org/resource", - String.class)) - .isEqualToIgnoringWhitespace("{\"message\":\"Hello World\"}"); + assertThat(this.restTemplate.getForObject("https://example.org/resource", String.class)) + .isEqualToIgnoringWhitespace("{\"message\":\"Hello World\"}"); server.verify(); } @@ -82,11 +79,9 @@ public class WiremockMockServerApplicationTests { public void simpleGetWithBodyFileCustomLocation() throws Exception { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // - .stubs("classpath:/mappings/resource-with-body-file.json") - .files("classpath:/custom/").build(); - assertThat(this.restTemplate.getForObject("https://example.org/resource", - String.class)) - .isEqualToIgnoringWhitespace("{\"message\":\"Hello Custom\"}"); + .stubs("classpath:/mappings/resource-with-body-file.json").files("classpath:/custom/").build(); + assertThat(this.restTemplate.getForObject("https://example.org/resource", String.class)) + .isEqualToIgnoringWhitespace("{\"message\":\"Hello Custom\"}"); server.verify(); } @@ -94,11 +89,10 @@ public class WiremockMockServerApplicationTests { public void simpleGetWithBodyFileCustomLocationDirectory() throws Exception { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // - .stubs("classpath:/mappings/resource-with-body-file.json") - .files("file:src/test/resources/custom").build(); - assertThat(this.restTemplate.getForObject("https://example.org/resource", - String.class)) - .isEqualToIgnoringWhitespace("{\"message\":\"Hello Custom\"}"); + .stubs("classpath:/mappings/resource-with-body-file.json").files("file:src/test/resources/custom") + .build(); + assertThat(this.restTemplate.getForObject("https://example.org/resource", String.class)) + .isEqualToIgnoringWhitespace("{\"message\":\"Hello Custom\"}"); server.verify(); } @@ -107,8 +101,7 @@ public class WiremockMockServerApplicationTests { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // .stubs("classpath:/mappings/resource-with-empty-path.json").build(); - assertThat(this.restTemplate.getForObject("https://example.org/", String.class)) - .isEqualTo("Hello World"); + assertThat(this.restTemplate.getForObject("https://example.org/", String.class)).isEqualTo("Hello World"); server.verify(); } @@ -117,8 +110,8 @@ public class WiremockMockServerApplicationTests { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // .stubs("classpath:/mappings/resource-with-content-type.json").build(); - assertThat(this.restTemplate.getForObject("https://example.org/resource", - String.class)).isEqualTo("Hello World"); + assertThat(this.restTemplate.getForObject("https://example.org/resource", String.class)) + .isEqualTo("Hello World"); server.verify(); } @@ -127,8 +120,8 @@ public class WiremockMockServerApplicationTests { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // .stubs("classpath:/mappings/resource-without-content-type.json").build(); - assertThat(this.restTemplate.getForObject("https://example.org/resource", - String.class)).isEqualTo("Hello World"); + assertThat(this.restTemplate.getForObject("https://example.org/resource", String.class)) + .isEqualTo("Hello World"); server.verify(); } @@ -137,8 +130,8 @@ public class WiremockMockServerApplicationTests { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // .stubs("classpath:/mappings/poster.json").build(); - assertThat(this.restTemplate.postForObject("https://example.org/poster", - "greeting", String.class)).isEqualTo("Hello World"); + assertThat(this.restTemplate.postForObject("https://example.org/poster", "greeting", String.class)) + .isEqualTo("Hello World"); server.verify(); } @@ -146,76 +139,56 @@ public class WiremockMockServerApplicationTests { public void postWithHeader() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // order determined by content... - .stubs("classpath:/mappings/poster.json", - "classpath:/mappings/accept.json") - .build(); - assertThat( - this.restTemplate - .exchange( - RequestEntity.post(new URI("https://example.org/poster")) - .accept(MediaType.TEXT_PLAIN).build(), - String.class) - .getBody()).isEqualTo("Accepted World"); + .stubs("classpath:/mappings/poster.json", "classpath:/mappings/accept.json").build(); + assertThat(this.restTemplate.exchange( + RequestEntity.post(new URI("https://example.org/poster")).accept(MediaType.TEXT_PLAIN).build(), + String.class).getBody()).isEqualTo("Accepted World"); } @Test public void postWithHeaderContains() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // order determined by content... - .stubs("classpath:/mappings/poster.json", - "classpath:/mappings/header-contains.json") - .build(); - assertThat(this.restTemplate.exchange( - RequestEntity.post(new URI("https://example.org/poster")) - .accept(MediaType.valueOf("application/v.foo")).build(), - String.class).getBody()).isEqualTo("Foo World"); + .stubs("classpath:/mappings/poster.json", "classpath:/mappings/header-contains.json").build(); + assertThat(this.restTemplate.exchange(RequestEntity.post(new URI("https://example.org/poster")) + .accept(MediaType.valueOf("application/v.foo")).build(), String.class).getBody()) + .isEqualTo("Foo World"); } @Test public void postWithHeaderMatches() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // order determined by content... - .stubs("classpath:/mappings/poster.json", - "classpath:/mappings/header-matches.json") - .build(); - assertThat(this.restTemplate.exchange( - RequestEntity.post(new URI("https://example.org/poster")) - .accept(MediaType.valueOf("application/v.bar")).build(), - String.class).getBody()).isEqualTo("Bar World"); + .stubs("classpath:/mappings/poster.json", "classpath:/mappings/header-matches.json").build(); + assertThat(this.restTemplate.exchange(RequestEntity.post(new URI("https://example.org/poster")) + .accept(MediaType.valueOf("application/v.bar")).build(), String.class).getBody()) + .isEqualTo("Bar World"); } @Test public void postWithMoreExactHeaderMatch() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // order determined by content... - .stubs("classpath:/mappings/header-matches.json", - "classpath:/mappings/header-matches-precise.json") + .stubs("classpath:/mappings/header-matches.json", "classpath:/mappings/header-matches-precise.json") .build(); assertThat( - this.restTemplate - .exchange( - RequestEntity.post(new URI("https://example.org/poster")) - .accept(MediaType.valueOf("application/v.bar")) - .header("X-Precise", "true").build(), - String.class) - .getBody()).isEqualTo("Precise World"); + this.restTemplate.exchange( + RequestEntity.post(new URI("https://example.org/poster")) + .accept(MediaType.valueOf("application/v.bar")).header("X-Precise", "true").build(), + String.class).getBody()).isEqualTo("Precise World"); } @Test public void postWithMoreExactHeaderMatchButOrdered() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // order matters... - .stubs("classpath:/mappings/header-matches.json", - "classpath:/mappings/header-matches-precise.json") + .stubs("classpath:/mappings/header-matches.json", "classpath:/mappings/header-matches-precise.json") .ignoreExpectOrder(false).build(); assertThat( - this.restTemplate - .exchange( - RequestEntity.post(new URI("https://example.org/poster")) - .accept(MediaType.valueOf("application/v.bar")) - .header("X-Precise", "true").build(), - String.class) - .getBody()).isEqualTo("Bar World"); + this.restTemplate.exchange( + RequestEntity.post(new URI("https://example.org/poster")) + .accept(MediaType.valueOf("application/v.bar")).header("X-Precise", "true").build(), + String.class).getBody()).isEqualTo("Bar World"); // The first one matches, not the most precise! } @@ -226,8 +199,8 @@ public class WiremockMockServerApplicationTests { .stubs("classpath:/mappings/resource-with-low-priority.json", "classpath:/mappings/resource-with-high-priority.json") .build(); - assertThat(this.restTemplate.getForObject("https://example.org/resource", - String.class)).isEqualTo("Hello High"); + assertThat(this.restTemplate.getForObject("https://example.org/resource", String.class)) + .isEqualTo("Hello High"); } @Test @@ -235,8 +208,8 @@ public class WiremockMockServerApplicationTests { WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // .stubs("classpath:/mappings").build(); - assertThat(this.restTemplate.getForObject("https://example.org/resource", - String.class)).isEqualTo("Hello World"); + assertThat(this.restTemplate.getForObject("https://example.org/resource", String.class)) + .isEqualTo("Hello World"); } @Test @@ -244,8 +217,8 @@ public class WiremockMockServerApplicationTests { WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // .stubs("classpath:/io.stubs/mappings").build(); - assertThat(this.restTemplate.getForObject("https://example.org/resource", - String.class)).isEqualTo("Hello World"); + assertThat(this.restTemplate.getForObject("https://example.org/resource", String.class)) + .isEqualTo("Hello World"); } // Issue #135 @@ -256,8 +229,8 @@ public class WiremockMockServerApplicationTests { .stubs("classpath:/mappings/body-matches-jsonpath.json").build(); assertThat(this.restTemplate.postForObject("https://example.org/body", - new Things(Collections.singletonList(new Thing("RequiredThing"))), - String.class)).isEqualTo("Hello Body"); + new Things(Collections.singletonList(new Thing("RequiredThing"))), String.class)) + .isEqualTo("Hello Body"); } @Test @@ -269,15 +242,13 @@ public class WiremockMockServerApplicationTests { String response; try { response = this.restTemplate.postForObject("https://example.org/body", - new Things(Collections.singletonList(new Thing("AbsentThing"))), - String.class); + new Things(Collections.singletonList(new Thing("AbsentThing"))), String.class); } catch (AssertionError e) { response = null; } if (null != response) { - fail("There was a response for a request that shouldn't be matched : " - + response); + fail("There was a response for a request that shouldn't be matched : " + response); } } @@ -287,10 +258,9 @@ public class WiremockMockServerApplicationTests { .baseUrl("https://example.org") // .stubs("classpath:/mappings/body-matches-xpath.json").build(); - assertThat(this.restTemplate.exchange(RequestEntity - .post(URI.create("https://example.org/body")) - .contentType(MediaType.APPLICATION_XML) - .body("RequiredThing"), + assertThat(this.restTemplate.exchange( + RequestEntity.post(URI.create("https://example.org/body")).contentType(MediaType.APPLICATION_XML) + .body("RequiredThing"), String.class).getBody()).isEqualTo("Hello Body"); } @@ -302,17 +272,14 @@ public class WiremockMockServerApplicationTests { ResponseEntity response; try { - response = this.restTemplate.exchange( - RequestEntity.post(URI.create("https://example.org/body")) - .contentType(MediaType.APPLICATION_XML).body(""), - String.class); + response = this.restTemplate.exchange(RequestEntity.post(URI.create("https://example.org/body")) + .contentType(MediaType.APPLICATION_XML).body(""), String.class); } catch (AssertionError e) { response = null; } if (null != response) { - fail("There was a response for a request that shouldn't be matched : " - + response); + fail("There was a response for a request that shouldn't be matched : " + response); } } @@ -323,8 +290,8 @@ public class WiremockMockServerApplicationTests { .stubs("classpath:/mappings/body-matches-equaltojson.json").build(); assertThat(this.restTemplate.postForObject("https://example.org/body", - new Things(Collections.singletonList(new Thing("RequiredThing"))), - String.class)).isEqualTo("Hello Body"); + new Things(Collections.singletonList(new Thing("RequiredThing"))), String.class)) + .isEqualTo("Hello Body"); } @Test @@ -336,15 +303,13 @@ public class WiremockMockServerApplicationTests { String response; try { response = this.restTemplate.postForObject("https://example.org/body", - new Things(Collections.singletonList(new Thing("AbsentThing"))), - String.class); + new Things(Collections.singletonList(new Thing("AbsentThing"))), String.class); } catch (AssertionError e) { response = null; } if (null != response) { - fail("There was a response for a request that shouldn't be matched : " - + response); + fail("There was a response for a request that shouldn't be matched : " + response); } } @@ -354,10 +319,9 @@ public class WiremockMockServerApplicationTests { .baseUrl("https://example.org") // .stubs("classpath:/mappings/body-matches-equaltoxml.json").build(); - assertThat(this.restTemplate.exchange(RequestEntity - .post(URI.create("https://example.org/body")) - .contentType(MediaType.APPLICATION_XML) - .body("RequiredThing"), + assertThat(this.restTemplate.exchange( + RequestEntity.post(URI.create("https://example.org/body")).contentType(MediaType.APPLICATION_XML) + .body("RequiredThing"), String.class).getBody()).isEqualTo("Hello Body"); } @@ -369,18 +333,16 @@ public class WiremockMockServerApplicationTests { ResponseEntity response; try { - response = this.restTemplate.exchange(RequestEntity - .post(URI.create("https://example.org/body")) - .contentType(MediaType.APPLICATION_XML) - .body("AbsentThing"), + response = this.restTemplate.exchange( + RequestEntity.post(URI.create("https://example.org/body")).contentType(MediaType.APPLICATION_XML) + .body("AbsentThing"), String.class); } catch (AssertionError e) { response = null; } if (null != response) { - fail("There was a response for a request that shouldn't be matched : " - + response); + fail("There was a response for a request that shouldn't be matched : " + response); } } @@ -390,10 +352,9 @@ public class WiremockMockServerApplicationTests { .baseUrl("https://example.org") // .stubs("classpath:/mappings/body-matches-regex.json").build(); - assertThat(this.restTemplate.exchange(RequestEntity - .post(URI.create("https://example.org/body")) - .contentType(MediaType.APPLICATION_XML) - .body("RequiredThing"), + assertThat(this.restTemplate.exchange( + RequestEntity.post(URI.create("https://example.org/body")).contentType(MediaType.APPLICATION_XML) + .body("RequiredThing"), String.class).getBody()).isEqualTo("Hello Body"); } @@ -405,18 +366,16 @@ public class WiremockMockServerApplicationTests { ResponseEntity response; try { - response = this.restTemplate.exchange(RequestEntity - .post(URI.create("https://example.org/body")) - .contentType(MediaType.APPLICATION_XML) - .body("AbsentThing"), + response = this.restTemplate.exchange( + RequestEntity.post(URI.create("https://example.org/body")).contentType(MediaType.APPLICATION_XML) + .body("AbsentThing"), String.class); } catch (AssertionError e) { response = null; } if (null != response) { - fail("There was a response for a request that shouldn't be matched : " - + response); + fail("There was a response for a request that shouldn't be matched : " + response); } } @@ -425,9 +384,8 @@ public class WiremockMockServerApplicationTests { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // .stubs("classpath:/mappings/url-path-pattern.json").build(); - assertThat(this.restTemplate - .getForObject("https://example.org/123/url-path-pattern/", String.class)) - .isEqualTo("Hello Url Path Matcher"); + assertThat(this.restTemplate.getForObject("https://example.org/123/url-path-pattern/", String.class)) + .isEqualTo("Hello Url Path Matcher"); server.verify(); } @@ -436,9 +394,8 @@ public class WiremockMockServerApplicationTests { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // .baseUrl("https://example.org") // .stubs("classpath:/mappings/url-matches.json").build(); - assertThat(this.restTemplate - .getForObject("https://example.org/123/hello-url-matcher/", String.class)) - .isEqualTo("Hello Url Matcher"); + assertThat(this.restTemplate.getForObject("https://example.org/123/hello-url-matcher/", String.class)) + .isEqualTo("Hello Url Matcher"); server.verify(); } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerApplicationTests.java index 2489e3e027..06bfbf1291 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerApplicationTests.java @@ -33,22 +33,20 @@ import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) -@SpringBootTest(classes = WiremockTestsApplication.class, - properties = "app.baseUrl=http://localhost:5435", +@SpringBootTest(classes = WiremockTestsApplication.class, properties = "app.baseUrl=http://localhost:5435", webEnvironment = WebEnvironment.NONE) public class WiremockServerApplicationTests { @ClassRule - public static WireMockClassRule wiremock = new WireMockClassRule( - WireMockSpring.options().port(5435)); + public static WireMockClassRule wiremock = new WireMockClassRule(WireMockSpring.options().port(5435)); @Autowired private Service service; @Test public void hello() throws Exception { - stubFor(get(urlEqualTo("/test")).willReturn(aResponse() - .withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + stubFor(get(urlEqualTo("/test")) + .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); assertThat(this.service.go()).isEqualTo("Hello World!"); } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestAssuredApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestAssuredApplicationTests.java index 9091115e8f..968fbaf563 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestAssuredApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestAssuredApplicationTests.java @@ -56,15 +56,14 @@ public class WiremockServerRestAssuredApplicationTests { @Test public void contextLoads() throws Exception { - given().port(this.port).when().get("/resource").then().assertThat() - .statusCode(is(200)).body(equalTo("Hello World")); + given().port(this.port).when().get("/resource").then().assertThat().statusCode(is(200)) + .body(equalTo("Hello World")); } @Test public void statusIsMaintained() throws Exception { - given(this.documentationSpec.port(this.port)).filter(document("status")).when() - .get("/status").then().assertThat().statusCode(is(202)) - .body(equalTo("Hello World")); + given(this.documentationSpec.port(this.port)).filter(document("status")).when().get("/status").then() + .assertThat().statusCode(is(202)).body(equalTo("Hello World")); } @Configuration diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestDocsApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestDocsApplicationTests.java index c6aeb2e482..4fb5146744 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestDocsApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestDocsApplicationTests.java @@ -65,56 +65,45 @@ public class WiremockServerRestDocsApplicationTests { @Test public void contextLoads() throws Exception { - this.mockMvc.perform(MockMvcRequestBuilders.get("/resource")) - .andExpect(content().string("Hello World")).andDo(document("resource")); + this.mockMvc.perform(MockMvcRequestBuilders.get("/resource")).andExpect(content().string("Hello World")) + .andDo(document("resource")); } @Test public void statusIsMaintained() throws Exception { - this.mockMvc.perform(MockMvcRequestBuilders.get("/status")) - .andExpect(content().string("Hello World")) - .andExpect(status().is(HttpStatus.ACCEPTED_202)) - .andDo(document("status")); + this.mockMvc.perform(MockMvcRequestBuilders.get("/status")).andExpect(content().string("Hello World")) + .andExpect(status().is(HttpStatus.ACCEPTED_202)).andDo(document("status")); } @Test public void queryParamsAreFetchedFromStubs() throws Exception { - this.mockMvc.perform(MockMvcRequestBuilders.get( - "/project_metadata/spring-framework?callback=a_function_name&foo=foo&bar=bar")) - .andExpect(status().isOk()) - .andExpect(content().string("spring-framework a_function_name foo bar")) + this.mockMvc + .perform(MockMvcRequestBuilders + .get("/project_metadata/spring-framework?callback=a_function_name&foo=foo&bar=bar")) + .andExpect(status().isOk()).andExpect(content().string("spring-framework a_function_name foo bar")) .andDo(document("query")); File file = new File("target/snippets/stubs", "query.json"); BDDAssertions.then(file).exists(); - StubMapping stubMapping = StubMapping - .buildFrom(new String(Files.readAllBytes(file.toPath()))); - Map queryParameters = stubMapping.getRequest() - .getQueryParameters(); + StubMapping stubMapping = StubMapping.buildFrom(new String(Files.readAllBytes(file.toPath()))); + Map queryParameters = stubMapping.getRequest().getQueryParameters(); BDDAssertions.then(queryParameters.get("callback").getValuePattern()) .isEqualTo(WireMock.equalTo("a_function_name")); - BDDAssertions.then(queryParameters.get("foo").getValuePattern()) - .isEqualTo(WireMock.equalTo("foo")); - BDDAssertions.then(queryParameters.get("bar").getValuePattern()) - .isEqualTo(WireMock.equalTo("bar")); + BDDAssertions.then(queryParameters.get("foo").getValuePattern()).isEqualTo(WireMock.equalTo("foo")); + BDDAssertions.then(queryParameters.get("bar").getValuePattern()).isEqualTo(WireMock.equalTo("bar")); } @Test public void stubsRenderLinksWithPlaceholder() throws Exception { - this.mockMvc.perform(MockMvcRequestBuilders.get("/link")) - .andExpect(status().isOk()) - .andExpect(content().string(containsString("link:"))) - .andDo(document("link")); + this.mockMvc.perform(MockMvcRequestBuilders.get("/link")).andExpect(status().isOk()) + .andExpect(content().string(containsString("link:"))).andDo(document("link")); File file = new File("target/snippets/stubs", "link.json"); BDDAssertions.then(file).exists(); - StubMapping stubMapping = StubMapping - .buildFrom(new String(Files.readAllBytes(file.toPath()))); + StubMapping stubMapping = StubMapping.buildFrom(new String(Files.readAllBytes(file.toPath()))); String body = stubMapping.getResponse().getBody(); - BDDAssertions.then(body) - .contains("http://localhost:{{request.requestLine.port}}/link"); - BDDAssertions.then(stubMapping.getResponse().getTransformers()) - .contains("response-template"); + BDDAssertions.then(body).contains("http://localhost:{{request.requestLine.port}}/link"); + BDDAssertions.then(stubMapping.getResponse().getTransformers()).contains("response-template"); } @Configuration @@ -130,8 +119,8 @@ public class WiremockServerRestDocsApplicationTests { @ResponseBody @RequestMapping("/link") public String link(HttpServletRequest request) { - UriComponents uriComponents = UriComponentsBuilder - .fromHttpRequest(new ServletServerHttpRequest(request)).build(); + UriComponents uriComponents = UriComponentsBuilder.fromHttpRequest(new ServletServerHttpRequest(request)) + .build(); return "link: " + uriComponents.toUriString(); } @@ -144,10 +133,9 @@ public class WiremockServerRestDocsApplicationTests { @ResponseBody @RequestMapping("/project_metadata/{projectId}") public ResponseEntity query(@PathVariable("projectId") String projectId, - @RequestParam("callback") String callback, - @RequestParam("foo") String foo, @RequestParam("bar") String bar) { - return ResponseEntity.ok() - .body(projectId + " " + callback + " " + foo + " " + bar); + @RequestParam("callback") String callback, @RequestParam("foo") String foo, + @RequestParam("bar") String bar) { + return ResponseEntity.ok().body(projectId + " " + callback + " " + foo + " " + bar); } } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestDocsHypermediaApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestDocsHypermediaApplicationTests.java index da15b516a6..da0b585a5f 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestDocsHypermediaApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestDocsHypermediaApplicationTests.java @@ -48,8 +48,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @RunWith(SpringRunner.class) -@SpringBootTest(classes = TestConfiguration.class, - properties = "wiremock.placeholders.enabled=false") +@SpringBootTest(classes = TestConfiguration.class, properties = "wiremock.placeholders.enabled=false") @AutoConfigureRestDocs(outputDir = "target/snippets") @AutoConfigureMockMvc public class WiremockServerRestDocsHypermediaApplicationTests { @@ -59,15 +58,12 @@ public class WiremockServerRestDocsHypermediaApplicationTests { @Test public void stubsRenderLinksWithoutPlaceholder() throws Exception { - this.mockMvc.perform(MockMvcRequestBuilders.get("/link")) - .andExpect(status().isOk()) - .andExpect(content().string(containsString("link:"))) - .andDo(document("link")); + this.mockMvc.perform(MockMvcRequestBuilders.get("/link")).andExpect(status().isOk()) + .andExpect(content().string(containsString("link:"))).andDo(document("link")); File file = new File("target/snippets/stubs", "link.json"); BDDAssertions.then(file).exists(); - StubMapping stubMapping = StubMapping - .buildFrom(new String(Files.readAllBytes(file.toPath()))); + StubMapping stubMapping = StubMapping.buildFrom(new String(Files.readAllBytes(file.toPath()))); String body = stubMapping.getResponse().getBody(); BDDAssertions.then(body).contains("http://localhost:8080/link"); } @@ -79,8 +75,8 @@ public class WiremockServerRestDocsHypermediaApplicationTests { @ResponseBody @RequestMapping("/link") public String resource(HttpServletRequest request) { - UriComponents uriComponents = UriComponentsBuilder - .fromHttpRequest(new ServletServerHttpRequest(request)).build(); + UriComponents uriComponents = UriComponentsBuilder.fromHttpRequest(new ServletServerHttpRequest(request)) + .build(); return "link: " + uriComponents.toUriString(); } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestDocsMatcherApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestDocsMatcherApplicationTests.java index 7c30d34fed..43694659fc 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestDocsMatcherApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestDocsMatcherApplicationTests.java @@ -62,12 +62,10 @@ public class WiremockServerRestDocsMatcherApplicationTests { public void matchesRequest() throws Exception { FileSystemUtils.deleteRecursively(new File("target/snippets/stubs/posted.json")); this.mockMvc - .perform(MockMvcRequestBuilders.post("/resource").content("greeting") - .contentType(MediaType.TEXT_PLAIN)) + .perform(MockMvcRequestBuilders.post("/resource").content("greeting").contentType(MediaType.TEXT_PLAIN)) .andExpect(MockMvcResultMatchers.content().string("Hello World")) - .andDo(WireMockRestDocs.verify() - .wiremock(WireMock.post(WireMock.urlPathEqualTo("/resource")) - .withRequestBody(WireMock.matching("greeting.*")))) + .andDo(WireMockRestDocs.verify().wiremock(WireMock.post(WireMock.urlPathEqualTo("/resource")) + .withRequestBody(WireMock.matching("greeting.*")))) .andDo(document("posted")); assertThat(new File("target/snippets/stubs/posted.json")).exists(); } @@ -77,12 +75,10 @@ public class WiremockServerRestDocsMatcherApplicationTests { this.expected.expect(AssertionError.class); this.expected.expectMessage("wiremock did not match"); this.mockMvc - .perform(MockMvcRequestBuilders.post("/resource").content("greeting") - .contentType(MediaType.TEXT_PLAIN)) + .perform(MockMvcRequestBuilders.post("/resource").content("greeting").contentType(MediaType.TEXT_PLAIN)) .andExpect(MockMvcResultMatchers.content().string("Hello World")) - .andDo(WireMockRestDocs.verify() - .wiremock(WireMock.post(WireMock.urlPathEqualTo("/resource")) - .withRequestBody(WireMock.matching("garbage.*")))) + .andDo(WireMockRestDocs.verify().wiremock(WireMock.post(WireMock.urlPathEqualTo("/resource")) + .withRequestBody(WireMock.matching("garbage.*")))) .andDo(document("posted")); } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerWebTestClientApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerWebTestClientApplicationTests.java index bab50da386..7b2f6af413 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerWebTestClientApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerWebTestClientApplicationTests.java @@ -57,31 +57,27 @@ public class WiremockServerWebTestClientApplicationTests { @Test public void contextLoads() throws Exception { - this.client.get().uri("/resource").exchange().expectBody(String.class) - .isEqualTo("Hello World").consumeWith(document("resource")); + this.client.get().uri("/resource").exchange().expectBody(String.class).isEqualTo("Hello World") + .consumeWith(document("resource")); } @Test public void statusIsMaintained() throws Exception { - this.client.get().uri("/status").exchange().expectStatus().isAccepted() - .expectBody(String.class).isEqualTo("Hello World") - .consumeWith(document("status")); + this.client.get().uri("/status").exchange().expectStatus().isAccepted().expectBody(String.class) + .isEqualTo("Hello World").consumeWith(document("status")); } @Test public void stubsRenderLinksWithPlaceholder() throws Exception { - this.client.get().uri("/link").exchange().expectBody(String.class) - .value(containsString("link:")).consumeWith(document("link")); + this.client.get().uri("/link").exchange().expectBody(String.class).value(containsString("link:")) + .consumeWith(document("link")); File file = new File("target/snippets/webtestclient/stubs", "link.json"); BDDAssertions.then(file).exists(); - StubMapping stubMapping = StubMapping - .buildFrom(new String(Files.readAllBytes(file.toPath()))); + StubMapping stubMapping = StubMapping.buildFrom(new String(Files.readAllBytes(file.toPath()))); String body = stubMapping.getResponse().getBody(); - BDDAssertions.then(body) - .contains("http://localhost:{{request.requestLine.port}}/link"); - BDDAssertions.then(stubMapping.getResponse().getTransformers()) - .contains("response-template"); + BDDAssertions.then(body).contains("http://localhost:{{request.requestLine.port}}/link"); + BDDAssertions.then(stubMapping.getResponse().getTransformers()).contains("response-template"); } @Configuration @@ -96,8 +92,7 @@ public class WiremockServerWebTestClientApplicationTests { @ResponseBody @RequestMapping("/link") public String link(ServerHttpRequest request) { - UriComponents uriComponents = UriComponentsBuilder.fromHttpRequest(request) - .build(); + UriComponents uriComponents = UriComponentsBuilder.fromHttpRequest(request).build(); return "link: " + uriComponents.toUriString(); } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockTestsApplication.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockTestsApplication.java index 0d6fc3f8fc..2a05d26a7c 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockTestsApplication.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockTestsApplication.java @@ -96,16 +96,14 @@ class Service { public String pom() { String requestUrl = this.base + "/pom.xml"; log.info("Will send a request to [" + requestUrl + "]"); - return this.restTemplate.exchange( - RequestEntity.get(URI.create(requestUrl)).accept(mediaTypes()).build(), - String.class).getBody(); + return this.restTemplate + .exchange(RequestEntity.get(URI.create(requestUrl)).accept(mediaTypes()).build(), String.class) + .getBody(); } private MediaType[] mediaTypes() { - return Stream - .of("text/plain", "text/plain", "application/json", "application/json", - "application/*+json", "application/*+json", "*/*", "*/*") - .map(MediaType::valueOf).toArray(MediaType[]::new); + return Stream.of("text/plain", "text/plain", "application/json", "application/json", "application/*+json", + "application/*+json", "*/*", "*/*").map(MediaType::valueOf).toArray(MediaType[]::new); } public String go2() { diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/issue399/NotOrderedCustomizerTest.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/issue399/NotOrderedCustomizerTest.java index 82a67b7eac..1bb5d3edc3 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/issue399/NotOrderedCustomizerTest.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/issue399/NotOrderedCustomizerTest.java @@ -45,8 +45,7 @@ public class NotOrderedCustomizerTest { @Test public void should_not_fail_when_ordered_customizer_added_interceptor_to_rest_template() { - stubFor(get(urlEqualTo("/some-url")) - .willReturn(aResponse().withStatus(200).withBody("Yeah!"))); + stubFor(get(urlEqualTo("/some-url")).willReturn(aResponse().withStatus(200).withBody("Yeah!"))); RestTemplateClient client = new RestTemplateClient( this.restTemplateBuilder.rootUri("http://localhost:" + this.port)); diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/issue399/OrderedCustomizerTest.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/issue399/OrderedCustomizerTest.java index d65090e71c..14d2e6a260 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/issue399/OrderedCustomizerTest.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/issue399/OrderedCustomizerTest.java @@ -47,8 +47,7 @@ public class OrderedCustomizerTest { @Test public void should_not_fail_when_ordered_customizer_added_interceptor_to_rest_template() { - stubFor(get(urlEqualTo("/some-url")) - .willReturn(aResponse().withStatus(200).withBody("Yeah!"))); + stubFor(get(urlEqualTo("/some-url")).willReturn(aResponse().withStatus(200).withBody("Yeah!"))); RestTemplateClient client = new RestTemplateClient( this.restTemplateBuilder.rootUri("http://localhost:" + this.port)); diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/sameConfigsDifferentTests/FirstTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/sameConfigsDifferentTests/FirstTests.java index a48bbcf0de..b5ad43e760 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/sameConfigsDifferentTests/FirstTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/sameConfigsDifferentTests/FirstTests.java @@ -41,8 +41,7 @@ import org.springframework.web.client.RestTemplate; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) -@SpringBootTest(properties = "service.port=${wiremock.server.port}", - classes = FirstTests.Config.class) +@SpringBootTest(properties = "service.port=${wiremock.server.port}", classes = FirstTests.Config.class) @AutoConfigureWireMock(port = 0) public class FirstTests { @@ -54,11 +53,10 @@ public class FirstTests { @Test public void shouldBeRejectedDueToAbnormalLoanAmount() throws Exception { - server.addStubMapping(StubMapping.buildFrom(StreamUtils.copyToString( - markClientAsFraud.getInputStream(), Charset.forName("UTF-8")))); + server.addStubMapping(StubMapping + .buildFrom(StreamUtils.copyToString(markClientAsFraud.getInputStream(), Charset.forName("UTF-8")))); // given: - LoanApplication loanApplication = new LoanApplication(new Client("1234567890"), - 99999); + LoanApplication loanApplication = new LoanApplication(new Client("1234567890"), 99999); // when: HttpHeaders httpHeaders = new HttpHeaders(); @@ -66,11 +64,9 @@ public class FirstTests { ResponseEntity response = new RestTemplate().exchange( "http://localhost:" + server.port() + "/fraudcheck", HttpMethod.PUT, - new HttpEntity<>(new FraudServiceRequest(loanApplication), httpHeaders), - FraudServiceResponse.class); + new HttpEntity<>(new FraudServiceRequest(loanApplication), httpHeaders), FraudServiceResponse.class); // then: - assertThat(response.getBody().getFraudCheckStatus()) - .isEqualTo(FraudCheckStatus.FRAUD); + assertThat(response.getBody().getFraudCheckStatus()).isEqualTo(FraudCheckStatus.FRAUD); assertThat(response.getBody().getRejectionReason()).isEqualTo("Amount too high"); } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/sameConfigsDifferentTests/SecondTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/sameConfigsDifferentTests/SecondTests.java index 25ce5f3a33..a1ca63cb60 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/sameConfigsDifferentTests/SecondTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/sameConfigsDifferentTests/SecondTests.java @@ -41,8 +41,7 @@ import org.springframework.web.client.RestTemplate; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) -@SpringBootTest(properties = "service.port=${wiremock.server.port}", - classes = SecondTests.Config.class) +@SpringBootTest(properties = "service.port=${wiremock.server.port}", classes = SecondTests.Config.class) @AutoConfigureWireMock(port = 0) public class SecondTests { @@ -54,11 +53,10 @@ public class SecondTests { @Test public void shouldBeRejectedDueToAbnormalLoanAmount() throws Exception { - server.addStubMapping(StubMapping.buildFrom(StreamUtils.copyToString( - markClientAsNotFraud.getInputStream(), Charset.forName("UTF-8")))); + server.addStubMapping(StubMapping + .buildFrom(StreamUtils.copyToString(markClientAsNotFraud.getInputStream(), Charset.forName("UTF-8")))); // given: - LoanApplication loanApplication = new LoanApplication(new Client("1234567890"), - 123.123); + LoanApplication loanApplication = new LoanApplication(new Client("1234567890"), 123.123); // when: HttpHeaders httpHeaders = new HttpHeaders(); @@ -66,11 +64,9 @@ public class SecondTests { ResponseEntity response = new RestTemplate().exchange( "http://localhost:" + server.port() + "/fraudcheck", HttpMethod.PUT, - new HttpEntity<>(new FraudServiceRequest(loanApplication), httpHeaders), - FraudServiceResponse.class); + new HttpEntity<>(new FraudServiceRequest(loanApplication), httpHeaders), FraudServiceResponse.class); // then: - assertThat(response.getBody().getFraudCheckStatus()) - .isEqualTo(FraudCheckStatus.OK); + assertThat(response.getBody().getFraudCheckStatus()).isEqualTo(FraudCheckStatus.OK); } @EnableAutoConfiguration diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/staticInit/WebClientTest.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/staticInit/WebClientTest.java index 37878745bd..b60c22a059 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/staticInit/WebClientTest.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/issues/staticInit/WebClientTest.java @@ -33,8 +33,7 @@ import static com.github.tomakehurst.wiremock.client.WireMock.get; import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; -@SpringBootTest( - properties = "my-client.url=http://localhost:${wiremock.server.port}/resources") +@SpringBootTest(properties = "my-client.url=http://localhost:${wiremock.server.port}/resources") @AutoConfigureWireMock(port = 0, httpsPort = 0, files = "src/test/resources/__files") class WebClientTest { @@ -67,14 +66,13 @@ class WebClientTest { Stubber() { log.info("Setting up GET"); - stubFor(get(urlEqualTo("/resources")) - .willReturn(aResponse().withBody("Everything seems fine!"))); + stubFor(get(urlEqualTo("/resources")).willReturn(aResponse().withBody("Everything seems fine!"))); } Stubber(WireMockServer wireMockServer) { log.info("Setting up GET"); - wireMockServer.stubFor(get(urlEqualTo("/resources")) - .willReturn(aResponse().withBody("Everything seems fine!"))); + wireMockServer + .stubFor(get(urlEqualTo("/resources")).willReturn(aResponse().withBody("Everything seems fine!"))); } } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippetTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippetTests.java index 25a6bc7aa9..0ca2b87c65 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippetTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippetTests.java @@ -86,10 +86,8 @@ public class ContractDslSnippetTests { public void should_create_contract_template_and_doc() throws Exception { // tag::contract_snippet[] this.mockMvc - .perform(post("/foo").accept(MediaType.APPLICATION_PDF) - .accept(MediaType.APPLICATION_JSON) - .contentType(MediaType.APPLICATION_JSON) - .content("{\"foo\": 23, \"bar\" : \"baz\" }")) + .perform(post("/foo").accept(MediaType.APPLICATION_PDF).accept(MediaType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON).content("{\"foo\": 23, \"bar\" : \"baz\" }")) .andExpect(status().isOk()).andExpect(content().string("bar")) // first WireMock .andDo(WireMockRestDocs.verify().jsonPath("$[?(@.foo >= 20)]") @@ -102,18 +100,17 @@ public class ContractDslSnippetTests { then(file("/contracts/index.groovy")).exists(); then(file("/stubs/index.json")).exists(); then(file("/index/dsl-contract.adoc")).exists(); - Collection parsedContracts = ContractVerifierDslConverter - .convertAsCollection(new File("/"), file("/contracts/index.groovy")); + Collection parsedContracts = ContractVerifierDslConverter.convertAsCollection(new File("/"), + file("/contracts/index.groovy")); Contract parsedContract = parsedContracts.iterator().next(); then(parsedContract.getRequest().getHeaders().getEntries()).isNotNull(); - then(headerNames(parsedContract.getRequest().getHeaders().getEntries())) - .doesNotContain(HttpHeaders.HOST, HttpHeaders.CONTENT_LENGTH); - then(headerNames(parsedContract.getResponse().getHeaders().getEntries())) - .doesNotContain(HttpHeaders.HOST, HttpHeaders.CONTENT_LENGTH); + then(headerNames(parsedContract.getRequest().getHeaders().getEntries())).doesNotContain(HttpHeaders.HOST, + HttpHeaders.CONTENT_LENGTH); + then(headerNames(parsedContract.getResponse().getHeaders().getEntries())).doesNotContain(HttpHeaders.HOST, + HttpHeaders.CONTENT_LENGTH); then(parsedContract.getRequest().getMethod().getClientValue()).isNotNull(); then(parsedContract.getRequest().getUrlPath().getClientValue()).isNotNull(); - then(parsedContract.getRequest().getUrlPath().getClientValue().toString()) - .startsWith("/"); + then(parsedContract.getRequest().getUrlPath().getClientValue().toString()).startsWith("/"); then(parsedContract.getRequest().getBody().getClientValue()).isNotNull(); then(parsedContract.getRequest().getBodyMatchers().hasMatchers()).isTrue(); then(parsedContract.getResponse().getStatus().getClientValue()).isNotNull(); @@ -122,44 +119,32 @@ public class ContractDslSnippetTests { } @Test - public void should_create_contract_template_and_doc_with_placeholder_names() - throws Exception { + public void should_create_contract_template_and_doc_with_placeholder_names() throws Exception { this.mockMvc - .perform(post("/foo").accept(MediaType.APPLICATION_PDF) - .accept(MediaType.APPLICATION_JSON) - .contentType(MediaType.APPLICATION_JSON) - .content("{\"foo\": 23, \"bar\" : \"baz\" }")) + .perform(post("/foo").accept(MediaType.APPLICATION_PDF).accept(MediaType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON).content("{\"foo\": 23, \"bar\" : \"baz\" }")) .andExpect(status().isOk()).andExpect(content().string("bar")) // first WireMock .andDo(WireMockRestDocs.verify().jsonPath("$[?(@.foo >= 20)]") .jsonPath("$[?(@.bar in ['baz','bazz','bazzz'])]") .contentType(MediaType.valueOf("application/json"))) // then Contract DSL documentation - .andDo(document("{methodName}", - SpringCloudContractRestDocs.dslContract())); + .andDo(document("{methodName}", SpringCloudContractRestDocs.dslContract())); - then(file( - "/contracts/should_create_contract_template_and_doc_with_placeholder_names.groovy")) - .exists(); - then(file( - "/stubs/should_create_contract_template_and_doc_with_placeholder_names.json")) - .exists(); - then(file( - "/should_create_contract_template_and_doc_with_placeholder_names/dsl-contract.adoc")) - .exists(); - Collection parsedContracts = ContractVerifierDslConverter - .convertAsCollection(new File("/"), file( - "/contracts/should_create_contract_template_and_doc_with_placeholder_names.groovy")); + then(file("/contracts/should_create_contract_template_and_doc_with_placeholder_names.groovy")).exists(); + then(file("/stubs/should_create_contract_template_and_doc_with_placeholder_names.json")).exists(); + then(file("/should_create_contract_template_and_doc_with_placeholder_names/dsl-contract.adoc")).exists(); + Collection parsedContracts = ContractVerifierDslConverter.convertAsCollection(new File("/"), + file("/contracts/should_create_contract_template_and_doc_with_placeholder_names.groovy")); Contract parsedContract = parsedContracts.iterator().next(); then(parsedContract.getRequest().getHeaders().getEntries()).isNotNull(); - then(headerNames(parsedContract.getRequest().getHeaders().getEntries())) - .doesNotContain(HttpHeaders.HOST, HttpHeaders.CONTENT_LENGTH); - then(headerNames(parsedContract.getResponse().getHeaders().getEntries())) - .doesNotContain(HttpHeaders.HOST, HttpHeaders.CONTENT_LENGTH); + then(headerNames(parsedContract.getRequest().getHeaders().getEntries())).doesNotContain(HttpHeaders.HOST, + HttpHeaders.CONTENT_LENGTH); + then(headerNames(parsedContract.getResponse().getHeaders().getEntries())).doesNotContain(HttpHeaders.HOST, + HttpHeaders.CONTENT_LENGTH); then(parsedContract.getRequest().getMethod().getClientValue()).isNotNull(); then(parsedContract.getRequest().getUrlPath().getClientValue()).isNotNull(); - then(parsedContract.getRequest().getUrlPath().getClientValue().toString()) - .startsWith("/"); + then(parsedContract.getRequest().getUrlPath().getClientValue().toString()).startsWith("/"); then(parsedContract.getRequest().getBody().getClientValue()).isNotNull(); then(parsedContract.getRequest().getBodyMatchers().hasMatchers()).isTrue(); then(parsedContract.getResponse().getStatus().getClientValue()).isNotNull(); @@ -168,25 +153,20 @@ public class ContractDslSnippetTests { } @Test - public void should_create_contract_template_and_doc_without_body_and_headers() - throws Exception { - this.mockMvc - .perform(MockMvcRequestBuilders.get("/foo").param("one", "newValueOne") - .param("two", "newValueTwo")) + public void should_create_contract_template_and_doc_without_body_and_headers() throws Exception { + this.mockMvc.perform(MockMvcRequestBuilders.get("/foo").param("one", "newValueOne").param("two", "newValueTwo")) .andExpect(status().isOk()).andDo(document("empty", dslContract())); then(file("/contracts/empty.groovy")).exists(); then(file("/empty/dsl-contract.adoc")).exists(); - Collection parsedContracts = ContractVerifierDslConverter - .convertAsCollection(new File("/"), file("/contracts/empty.groovy")); + Collection parsedContracts = ContractVerifierDslConverter.convertAsCollection(new File("/"), + file("/contracts/empty.groovy")); Contract parsedContract = parsedContracts.iterator().next(); then(parsedContract.getRequest().getHeaders()).isNull(); then(parsedContract.getRequest().getMethod().getClientValue()).isNotNull(); then(parsedContract.getRequest().getUrlPath().getClientValue()).isNotNull(); - then(parsedContract.getRequest().getUrlPath().getClientValue().toString()) - .startsWith("/"); - List parameters = parsedContract.getRequest().getUrlPath() - .getQueryParameters().getParameters(); + then(parsedContract.getRequest().getUrlPath().getClientValue().toString()).startsWith("/"); + List parameters = parsedContract.getRequest().getUrlPath().getQueryParameters().getParameters(); QueryParameter one = parameter(parameters, "one"); QueryParameter two = parameter(parameters, "two"); then(one.getClientValue()).isEqualTo("newValueOne"); @@ -199,9 +179,8 @@ public class ContractDslSnippetTests { } private QueryParameter parameter(List parameters, String name) { - return parameters.stream() - .filter(queryParameter -> queryParameter.getName().equals(name)) - .findFirst().orElseThrow(() -> new AssertionError("Missing entry")); + return parameters.stream().filter(queryParameter -> queryParameter.getName().equals(name)).findFirst() + .orElseThrow(() -> new AssertionError("Missing entry")); } private Set headerNames(Set

headers) { 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 d0dfad9606..cb6edd721c 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 @@ -70,80 +70,65 @@ public class WireMockSnippetTests { @Before public void setup() throws IOException { this.outputFolder = this.tmp.newFolder(); - ManualRestDocumentation restDocumentation = new ManualRestDocumentation( - this.outputFolder.getAbsolutePath()); + ManualRestDocumentation restDocumentation = new ManualRestDocumentation(this.outputFolder.getAbsolutePath()); restDocumentation.beforeTest(this.getClass(), "method"); this.context = restDocumentation.beforeOperation(); this.operation = operation(request(), response(), this.context); } @Test - public void should_maintain_the_response_status_when_generating_stub() - throws Exception { + 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 = WireMockStubMapping - .buildFrom(new String(Files.readAllBytes(stub.toPath()))); - assertThat(stubMapping.getResponse().getStatus()) - .isEqualTo(HttpStatus.ACCEPTED.value()); + StubMapping stubMapping = WireMockStubMapping.buildFrom(new String(Files.readAllBytes(stub.toPath()))); + assertThat(stubMapping.getResponse().getStatus()).isEqualTo(HttpStatus.ACCEPTED.value()); } @Test public void should_use_placeholders_in_stub_file_name() throws Exception { - this.operation = operation("{method-name}/{step}", request(), response(), - this.context); + this.operation = operation("{method-name}/{step}", request(), response(), this.context); WireMockSnippet snippet = new WireMockSnippet(); snippet.document(this.operation); File stub = new File(this.outputFolder, "stubs/method/1.json"); assertThat(stub).exists(); - StubMapping stubMapping = WireMockStubMapping - .buildFrom(new String(Files.readAllBytes(stub.toPath()))); - assertThat(stubMapping.getResponse().getStatus()) - .isEqualTo(HttpStatus.ACCEPTED.value()); + StubMapping stubMapping = WireMockStubMapping.buildFrom(new String(Files.readAllBytes(stub.toPath()))); + assertThat(stubMapping.getResponse().getStatus()).isEqualTo(HttpStatus.ACCEPTED.value()); } @Test public void should_use_equal_to_json_pattern_for_body_when_request_content_type_is_json_when_generating_stub() throws Exception { - this.operation = operation(requestPostWithJsonContentType(), response(), - this.context); + this.operation = operation(requestPostWithJsonContentType(), response(), this.context); WireMockSnippet snippet = new WireMockSnippet(); snippet.document(this.operation); File stub = new File(this.outputFolder, "stubs/foo.json"); assertThat(stub).exists(); - StubMapping stubMapping = WireMockStubMapping - .buildFrom(new String(Files.readAllBytes(stub.toPath()))); - assertThat(stubMapping.getRequest().getBodyPatterns().get(0)) - .isInstanceOf(EqualToJsonPattern.class); - assertThat(stubMapping.getRequest().getBodyPatterns().get(0).getValue()) - .isEqualTo("{\"name\": \"12\"}"); + StubMapping stubMapping = WireMockStubMapping.buildFrom(new String(Files.readAllBytes(stub.toPath()))); + assertThat(stubMapping.getRequest().getBodyPatterns().get(0)).isInstanceOf(EqualToJsonPattern.class); + assertThat(stubMapping.getRequest().getBodyPatterns().get(0).getValue()).isEqualTo("{\"name\": \"12\"}"); } @Test public void should_use_equal_to_xml_pattern_for_body_when_request_content_type_is_xml_when_generating_stub() throws Exception { - this.operation = operation(requestPostWithXmlContentType(), response(), - this.context); + this.operation = operation(requestPostWithXmlContentType(), response(), this.context); WireMockSnippet snippet = new WireMockSnippet(); snippet.document(this.operation); File stub = new File(this.outputFolder, "stubs/foo.json"); assertThat(stub).exists(); - StubMapping stubMapping = WireMockStubMapping - .buildFrom(new String(Files.readAllBytes(stub.toPath()))); - assertThat(stubMapping.getRequest().getBodyPatterns().get(0)) - .isInstanceOf(EqualToXmlPattern.class); - assertThat(stubMapping.getRequest().getBodyPatterns().get(0).getValue()) - .isEqualTo("foo"); + StubMapping stubMapping = WireMockStubMapping.buildFrom(new String(Files.readAllBytes(stub.toPath()))); + assertThat(stubMapping.getRequest().getBodyPatterns().get(0)).isInstanceOf(EqualToXmlPattern.class); + assertThat(stubMapping.getRequest().getBodyPatterns().get(0).getValue()).isEqualTo("foo"); } @Test @@ -155,17 +140,14 @@ public class WireMockSnippetTests { File stub = new File(this.outputFolder, "stubs/foo.json"); assertThat(stub).exists(); - StubMapping stubMapping = WireMockStubMapping - .buildFrom(new String(Files.readAllBytes(stub.toPath()))); + StubMapping stubMapping = WireMockStubMapping.buildFrom(new String(Files.readAllBytes(stub.toPath()))); assertThat(stubMapping.getRequest().getBodyPatterns()).isNullOrEmpty(); - assertThat(stubMapping.getResponse().getStatus()) - .isEqualTo(HttpStatus.ACCEPTED.value()); + assertThat(stubMapping.getResponse().getStatus()).isEqualTo(HttpStatus.ACCEPTED.value()); } @Test public void should_accept_empty_value_for_query_params() throws IOException { - this.operation = operation(requestPostWithEmptyQueryParamValue(), response(), - this.context); + this.operation = operation(requestPostWithEmptyQueryParamValue(), response(), this.context); WireMockSnippet snippet = new WireMockSnippet(); snippet.document(this.operation); @@ -184,11 +166,10 @@ public class WireMockSnippetTests { File stub = new File(this.outputFolder, "stubs/foo.json"); assertThat(stub).exists(); - StubMapping stubMapping = WireMockStubMapping - .buildFrom(new String(Files.readAllBytes(stub.toPath()))); + StubMapping stubMapping = WireMockStubMapping.buildFrom(new String(Files.readAllBytes(stub.toPath()))); assertThat(stubMapping.getRequest().getUrlPath()).isEqualTo("/bar"); - assertThat(stubMapping.getRequest().getQueryParameters()).containsOnly( - Assertions.entry("myParam", MultiValuePattern.of(equalTo(("myValue"))))); + assertThat(stubMapping.getRequest().getQueryParameters()) + .containsOnly(Assertions.entry("myParam", MultiValuePattern.of(equalTo(("myValue"))))); } private Operation operation(OperationRequest request, OperationResponse response, @@ -196,8 +177,8 @@ public class WireMockSnippetTests { return operation("foo", request, response, context); } - private Operation operation(String name, OperationRequest request, - OperationResponse response, RestDocumentationContext context) { + private Operation operation(String name, OperationRequest request, OperationResponse response, + RestDocumentationContext context) { return new Operation() { Map map = new HashMap<>(); @@ -406,8 +387,7 @@ public class WireMockSnippetTests { @Override public HttpHeaders getHeaders() { HttpHeaders httpHeaders = new HttpHeaders(); - httpHeaders.add(HttpHeaders.CONTENT_TYPE, - MediaType.APPLICATION_JSON_VALUE); + httpHeaders.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE); return httpHeaders; } @@ -453,8 +433,7 @@ public class WireMockSnippetTests { @Override public HttpHeaders getHeaders() { HttpHeaders httpHeaders = new HttpHeaders(); - httpHeaders.add(HttpHeaders.CONTENT_TYPE, - MediaType.APPLICATION_JSON_VALUE); + httpHeaders.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE); return httpHeaders; } @@ -502,8 +481,7 @@ public class WireMockSnippetTests { @Override public HttpHeaders getHeaders() { HttpHeaders httpHeaders = new HttpHeaders(); - httpHeaders.add(HttpHeaders.CONTENT_TYPE, - MediaType.APPLICATION_JSON_VALUE); + httpHeaders.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE); return httpHeaders; } diff --git a/tests/samples-messaging-amqp/src/main/java/com/example/AmqpMessagingApplication.java b/tests/samples-messaging-amqp/src/main/java/com/example/AmqpMessagingApplication.java index f90ea8d8cb..f4d22a28e9 100644 --- a/tests/samples-messaging-amqp/src/main/java/com/example/AmqpMessagingApplication.java +++ b/tests/samples-messaging-amqp/src/main/java/com/example/AmqpMessagingApplication.java @@ -40,8 +40,7 @@ public class AmqpMessagingApplication { @Bean public MessageConverter messageConverter() { - final Jackson2JsonMessageConverter jsonMessageConverter = new Jackson2JsonMessageConverter( - new ObjectMapper()); + final Jackson2JsonMessageConverter jsonMessageConverter = new Jackson2JsonMessageConverter(new ObjectMapper()); jsonMessageConverter.setCreateMessageIds(true); final ContentTypeDelegatingMessageConverter messageConverter = new ContentTypeDelegatingMessageConverter( jsonMessageConverter); @@ -50,8 +49,7 @@ public class AmqpMessagingApplication { } @Bean - public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory, - MessageConverter messageConverter) { + public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory, MessageConverter messageConverter) { RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); rabbitTemplate.setMessageConverter(messageConverter); return rabbitTemplate; diff --git a/tests/samples-messaging-amqp/src/main/java/com/example/Issue178ListenerConfiguration.java b/tests/samples-messaging-amqp/src/main/java/com/example/Issue178ListenerConfiguration.java index 210ef61aef..266bf8bc1b 100644 --- a/tests/samples-messaging-amqp/src/main/java/com/example/Issue178ListenerConfiguration.java +++ b/tests/samples-messaging-amqp/src/main/java/com/example/Issue178ListenerConfiguration.java @@ -39,8 +39,8 @@ import org.springframework.context.annotation.Configuration; class Issue178ListenerConfiguration { @Bean - SimpleMessageListenerContainer messageListenerContainer( - ConnectionFactory connectionFactory, RabbitTemplate rabbitTemplate) { + SimpleMessageListenerContainer messageListenerContainer(ConnectionFactory connectionFactory, + RabbitTemplate rabbitTemplate) { SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.addQueueNames("rated-item-service.rated-item-event.exchange"); @@ -54,12 +54,10 @@ class Issue178ListenerConfiguration { public void onMessage(Message message) { System.out.println("received: " + message); try { - String payload = new ObjectMapper().writeValueAsString(new MyPojo( - "992e46d8-ab05-4a26-a740-6ef7b0daeab3", "CREATED")); - Message outputMessage = MessageBuilder.withBody(payload.getBytes()) - .build(); - rabbitTemplate.send(issue178OutputExchange().getName(), "routingkey", - outputMessage); + String payload = new ObjectMapper() + .writeValueAsString(new MyPojo("992e46d8-ab05-4a26-a740-6ef7b0daeab3", "CREATED")); + Message outputMessage = MessageBuilder.withBody(payload.getBytes()).build(); + rabbitTemplate.send(issue178OutputExchange().getName(), "routingkey", outputMessage); } catch (JsonProcessingException e) { throw new RuntimeException(e); diff --git a/tests/samples-messaging-amqp/src/main/java/com/example/RabbitManager.java b/tests/samples-messaging-amqp/src/main/java/com/example/RabbitManager.java index fadc312d30..6c80a79637 100644 --- a/tests/samples-messaging-amqp/src/main/java/com/example/RabbitManager.java +++ b/tests/samples-messaging-amqp/src/main/java/com/example/RabbitManager.java @@ -61,22 +61,18 @@ public class RabbitManager { this.rabbitTemplate = rabbitTemplate; } - @RabbitListener( - bindings = @QueueBinding( - value = @Queue, exchange = @Exchange(value = "input", - durable = "true", autoDelete = "false", type = "topic"), - key = "event")) + @RabbitListener(bindings = @QueueBinding(value = @Queue, + exchange = @Exchange(value = "input", durable = "true", autoDelete = "false", type = "topic"), + key = "event")) public void newBook(Book book, @Headers Map headers) { LOG.info("Received new book with bookname = " + book.getName()); LOG.info("Headers = " + headers); this.service.sendBook(book, headers.get("amqp_replyTo")); } - @RabbitListener( - bindings = @QueueBinding( - value = @Queue, exchange = @Exchange(value = "input", - durable = "true", autoDelete = "false", type = "topic"), - key = "event2")) + @RabbitListener(bindings = @QueueBinding(value = @Queue, + exchange = @Exchange(value = "input", durable = "true", autoDelete = "false", type = "topic"), + key = "event2")) public void newBook2(Book book, @Headers Map headers) { LOG.info("newBook2 Received new book with bookname = " + book.getName()); LOG.info("newBook2 Headers = " + headers); diff --git a/tests/samples-messaging-camel/src/main/java/com/example/BookRouteConfiguration.java b/tests/samples-messaging-camel/src/main/java/com/example/BookRouteConfiguration.java index 87d3ccb1dd..90938624e3 100644 --- a/tests/samples-messaging-camel/src/main/java/com/example/BookRouteConfiguration.java +++ b/tests/samples-messaging-camel/src/main/java/com/example/BookRouteConfiguration.java @@ -32,8 +32,7 @@ import org.springframework.context.annotation.Configuration; public class BookRouteConfiguration { @Bean - ActiveMQComponent activeMQComponent( - @Value("${activemq.url:vm://localhost?broker.persistent=false}") String url) { + ActiveMQComponent activeMQComponent(@Value("${activemq.url:vm://localhost?broker.persistent=false}") String url) { ActiveMQComponent component = new ActiveMQComponent(); component.setBrokerURL(url); return component; @@ -46,16 +45,13 @@ public class BookRouteConfiguration { @Override public void configure() throws Exception { // scenario 1 - from bean to output - from("direct:start").unmarshal() - .json(JsonLibrary.Jackson, BookReturned.class).bean(bookService) + from("direct:start").unmarshal().json(JsonLibrary.Jackson, BookReturned.class).bean(bookService) .to("jms:output"); // scenario 2 - from input to output - from("jms:input").unmarshal() - .json(JsonLibrary.Jackson, BookReturned.class).bean(bookService) + from("jms:input").unmarshal().json(JsonLibrary.Jackson, BookReturned.class).bean(bookService) .to("jms:output"); // scenario 3 - from input to no output - from("jms:delete").unmarshal() - .json(JsonLibrary.Jackson, BookDeleted.class).bean(bookDeleter); + from("jms:delete").unmarshal().json(JsonLibrary.Jackson, BookDeleted.class).bean(bookDeleter); } }; diff --git a/tests/samples-messaging-integration/src/main/java/com/example/BookListener.java b/tests/samples-messaging-integration/src/main/java/com/example/BookListener.java index 08b7028700..ebf78b0de7 100644 --- a/tests/samples-messaging-integration/src/main/java/com/example/BookListener.java +++ b/tests/samples-messaging-integration/src/main/java/com/example/BookListener.java @@ -40,8 +40,7 @@ public class BookListener { */ public Message returnBook(BookReturned bookReturned) { log.info("Returning book [" + bookReturned + "]"); - return MessageBuilder.withPayload(bookReturned) - .setHeader("BOOK-NAME", bookReturned.bookName).build(); + return MessageBuilder.withPayload(bookReturned).setHeader("BOOK-NAME", bookReturned.bookName).build(); } /** diff --git a/tests/samples-messaging-integration/src/main/java/com/example/BookService.java b/tests/samples-messaging-integration/src/main/java/com/example/BookService.java index 593e4d94fd..e9624e3dfd 100644 --- a/tests/samples-messaging-integration/src/main/java/com/example/BookService.java +++ b/tests/samples-messaging-integration/src/main/java/com/example/BookService.java @@ -43,8 +43,8 @@ public class BookService { */ public void returnBook(BookReturned bookReturned) { log.info("Returning book " + bookReturned); - this.outputChannel.send(MessageBuilder.withPayload(bookReturned) - .setHeader("BOOK-NAME", bookReturned.bookName).build()); + this.outputChannel + .send(MessageBuilder.withPayload(bookReturned).setHeader("BOOK-NAME", bookReturned.bookName).build()); } } diff --git a/tests/samples-messaging-stream/src/main/java/com/example/BookReturnedListener.java b/tests/samples-messaging-stream/src/main/java/com/example/BookReturnedListener.java index d60631a9c1..7a57d5495e 100644 --- a/tests/samples-messaging-stream/src/main/java/com/example/BookReturnedListener.java +++ b/tests/samples-messaging-stream/src/main/java/com/example/BookReturnedListener.java @@ -26,8 +26,7 @@ import org.springframework.messaging.support.MessageBuilder; import org.springframework.stereotype.Component; @Component("bookReturned") -public class BookReturnedListener - implements Function> { +public class BookReturnedListener implements Function> { private static final Logger log = LoggerFactory.getLogger(BookReturnedListener.class); @@ -40,8 +39,7 @@ public class BookReturnedListener @Override public Message apply(BookReturned bookReturned) { log.info("Got the book " + bookReturned); - return MessageBuilder.withPayload(bookReturned) - .setHeader("BOOK-NAME", bookReturned.bookName).build(); + return MessageBuilder.withPayload(bookReturned).setHeader("BOOK-NAME", bookReturned.bookName).build(); } } diff --git a/tests/samples-messaging-stream/src/main/java/com/example/BookService.java b/tests/samples-messaging-stream/src/main/java/com/example/BookService.java index 3c96cf1c39..be3962fbe7 100644 --- a/tests/samples-messaging-stream/src/main/java/com/example/BookService.java +++ b/tests/samples-messaging-stream/src/main/java/com/example/BookService.java @@ -34,8 +34,7 @@ public class BookService implements Supplier>> { private final EmitterProcessor> bookReturnedEmitterProcessor; - public BookService( - EmitterProcessor> bookReturnedEmitterProcessor) { + public BookService(EmitterProcessor> bookReturnedEmitterProcessor) { this.bookReturnedEmitterProcessor = bookReturnedEmitterProcessor; } @@ -50,8 +49,8 @@ public class BookService implements Supplier>> { */ public void returnBook(BookReturned bookReturned) { log.info("Returning book " + bookReturned); - this.bookReturnedEmitterProcessor.onNext(MessageBuilder.withPayload(bookReturned) - .setHeader("BOOK-NAME", bookReturned.bookName).build()); + this.bookReturnedEmitterProcessor + .onNext(MessageBuilder.withPayload(bookReturned).setHeader("BOOK-NAME", bookReturned.bookName).build()); } @Override diff --git a/tests/spring-cloud-contract-stub-runner-amqp/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/amqp/AmqpMessagingApplication.java b/tests/spring-cloud-contract-stub-runner-amqp/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/amqp/AmqpMessagingApplication.java index ff9540109a..4240ee8d46 100644 --- a/tests/spring-cloud-contract-stub-runner-amqp/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/amqp/AmqpMessagingApplication.java +++ b/tests/spring-cloud-contract-stub-runner-amqp/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/amqp/AmqpMessagingApplication.java @@ -48,8 +48,7 @@ public class AmqpMessagingApplication { @Bean public MessageConverter messageConverter(ObjectMapper objectMapper) { - final Jackson2JsonMessageConverter jsonMessageConverter = new Jackson2JsonMessageConverter( - objectMapper); + final Jackson2JsonMessageConverter jsonMessageConverter = new Jackson2JsonMessageConverter(objectMapper); jsonMessageConverter.setCreateMessageIds(true); final ContentTypeDelegatingMessageConverter messageConverter = new ContentTypeDelegatingMessageConverter( jsonMessageConverter); @@ -58,8 +57,7 @@ public class AmqpMessagingApplication { } @Bean - public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory, - MessageConverter messageConverter) { + public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory, MessageConverter messageConverter) { RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); rabbitTemplate.setMessageConverter(messageConverter); return rabbitTemplate; @@ -70,8 +68,8 @@ public class AmqpMessagingApplication { static class MessageListenerAdapterConfig { @Bean - public MessageListenerAdapter messageListenerAdapter( - MessageSubscriber messageSubscriber, MessageConverter messageConverter) { + public MessageListenerAdapter messageListenerAdapter(MessageSubscriber messageSubscriber, + MessageConverter messageConverter) { return new MessageListenerAdapter(messageSubscriber, messageConverter); } @@ -79,15 +77,14 @@ public class AmqpMessagingApplication { @Bean public Binding binding() { - return BindingBuilder.bind(new Queue("test.queue")) - .to(new DirectExchange("contract-test.exchange")).with("#"); + return BindingBuilder.bind(new Queue("test.queue")).to(new DirectExchange("contract-test.exchange")) + .with("#"); } // end::amqp_binding[] // tag::amqp_listener[] @Bean - public SimpleMessageListenerContainer simpleMessageListenerContainer( - ConnectionFactory connectionFactory, + public SimpleMessageListenerContainer simpleMessageListenerContainer(ConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter) { SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); container.setConnectionFactory(connectionFactory); @@ -116,8 +113,8 @@ public class AmqpMessagingApplication { } @Bean - public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory( - ConnectionFactory connectionFactory, MessageConverter messageConverter) { + public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory, + MessageConverter messageConverter) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(connectionFactory); factory.setConcurrentConsumers(3); diff --git a/tests/spring-cloud-contract-stub-runner-amqp/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/amqp/MessageSubscriberRabbitListener.java b/tests/spring-cloud-contract-stub-runner-amqp/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/amqp/MessageSubscriberRabbitListener.java index 822589658c..6b8bddb199 100644 --- a/tests/spring-cloud-contract-stub-runner-amqp/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/amqp/MessageSubscriberRabbitListener.java +++ b/tests/spring-cloud-contract-stub-runner-amqp/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/amqp/MessageSubscriberRabbitListener.java @@ -32,8 +32,7 @@ public class MessageSubscriberRabbitListener { // tag::amqp_annotated_listener[] @RabbitListener(bindings = @QueueBinding(value = @Queue("test.queue"), - exchange = @Exchange(value = "contract-test.exchange", - ignoreDeclarationExceptions = "true"))) + exchange = @Exchange(value = "contract-test.exchange", ignoreDeclarationExceptions = "true"))) public void handlePerson(Person person) { this.person = person; } diff --git a/tests/spring-cloud-contract-stub-runner-context-path/src/main/java/com/example/loan/LoanApplicationService.java b/tests/spring-cloud-contract-stub-runner-context-path/src/main/java/com/example/loan/LoanApplicationService.java index 52c5f7b13f..df0a6c93a8 100644 --- a/tests/spring-cloud-contract-stub-runner-context-path/src/main/java/com/example/loan/LoanApplicationService.java +++ b/tests/spring-cloud-contract-stub-runner-context-path/src/main/java/com/example/loan/LoanApplicationService.java @@ -51,22 +51,19 @@ public class LoanApplicationService { return buildResponseFromFraudResult(response); } - private FraudServiceResponse sendRequestToFraudDetectionService( - FraudServiceRequest request) { + private FraudServiceResponse sendRequestToFraudDetectionService(FraudServiceRequest request) { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add(HttpHeaders.CONTENT_TYPE, FRAUD_SERVICE_JSON_VERSION_1); // tag::client_call_server[] - ResponseEntity response = this.restTemplate.exchange( - this.fraudUrl + "/fraudcheck", HttpMethod.PUT, - new HttpEntity<>(request, httpHeaders), FraudServiceResponse.class); + ResponseEntity response = this.restTemplate.exchange(this.fraudUrl + "/fraudcheck", + HttpMethod.PUT, new HttpEntity<>(request, httpHeaders), FraudServiceResponse.class); // end::client_call_server[] return response.getBody(); } - private LoanApplicationResult buildResponseFromFraudResult( - FraudServiceResponse response) { + private LoanApplicationResult buildResponseFromFraudResult(FraudServiceResponse response) { LoanApplicationStatus applicationStatus = null; if (FraudCheckStatus.OK == response.getFraudCheckStatus()) { applicationStatus = LoanApplicationStatus.LOAN_APPLIED; @@ -75,8 +72,7 @@ public class LoanApplicationService { applicationStatus = LoanApplicationStatus.LOAN_APPLICATION_REJECTED; } - return new LoanApplicationResult(applicationStatus, - response.getRejectionReason()); + return new LoanApplicationResult(applicationStatus, response.getRejectionReason()); } public void setFraudUrl(String fraudUrl) { diff --git a/tests/spring-cloud-contract-stub-runner-context-path/src/main/java/com/example/loan/model/LoanApplicationResult.java b/tests/spring-cloud-contract-stub-runner-context-path/src/main/java/com/example/loan/model/LoanApplicationResult.java index 0850c0af0b..80c36b0227 100644 --- a/tests/spring-cloud-contract-stub-runner-context-path/src/main/java/com/example/loan/model/LoanApplicationResult.java +++ b/tests/spring-cloud-contract-stub-runner-context-path/src/main/java/com/example/loan/model/LoanApplicationResult.java @@ -25,8 +25,7 @@ public class LoanApplicationResult { public LoanApplicationResult() { } - public LoanApplicationResult(LoanApplicationStatus loanApplicationStatus, - String rejectionReason) { + public LoanApplicationResult(LoanApplicationStatus loanApplicationStatus, String rejectionReason) { this.loanApplicationStatus = loanApplicationStatus; this.rejectionReason = rejectionReason; } diff --git a/tests/spring-cloud-contract-stub-runner-context-path/src/test/java/com/example/loan/FailFastLoanApplicationServiceTests.java b/tests/spring-cloud-contract-stub-runner-context-path/src/test/java/com/example/loan/FailFastLoanApplicationServiceTests.java index d39e27f2b7..88db9a47b7 100644 --- a/tests/spring-cloud-contract-stub-runner-context-path/src/test/java/com/example/loan/FailFastLoanApplicationServiceTests.java +++ b/tests/spring-cloud-contract-stub-runner-context-path/src/test/java/com/example/loan/FailFastLoanApplicationServiceTests.java @@ -35,10 +35,9 @@ public class FailFastLoanApplicationServiceTests { @Test public void shouldFailToStartContextWhenNoStubCanBeFound() { // When - final Throwable throwable = catchThrowable(() -> new SpringApplicationBuilder( - Application.class, StubRunnerConfiguration.class) - .properties(ImmutableMap.of("stubrunner.stubsMode", "REMOTE", - "stubrunner.repositoryRoot", + final Throwable throwable = catchThrowable( + () -> new SpringApplicationBuilder(Application.class, StubRunnerConfiguration.class) + .properties(ImmutableMap.of("stubrunner.stubsMode", "REMOTE", "stubrunner.repositoryRoot", "classpath:m2repo/repository/", "stubrunner.ids", new String[] { "org.springframework.cloud.contract.verifier.stubs:should-not-be-found" })) @@ -46,26 +45,23 @@ public class FailFastLoanApplicationServiceTests { // Then assertThat(throwable).isInstanceOf(BeanCreationException.class); - assertThat(throwable.getCause().getCause()) - .isInstanceOf(BeanInstantiationException.class).hasMessageContaining( - "No stubs or contracts were found for [org.springframework.cloud.contract.verifier.stubs:should-not-be-found:+:stubs] and the switch to fail on no stubs was set."); + assertThat(throwable.getCause().getCause()).isInstanceOf(BeanInstantiationException.class).hasMessageContaining( + "No stubs or contracts were found for [org.springframework.cloud.contract.verifier.stubs:should-not-be-found:+:stubs] and the switch to fail on no stubs was set."); } @Test public void shouldNotTryAndWorkOfflineWhenRemoteModeIsOn() { // When - final Throwable throwable = catchThrowable(() -> new SpringApplicationBuilder( - Application.class, StubRunnerConfiguration.class) - .properties(ImmutableMap.of("stubrunner.stubsMode", "CLASSPATH", - "stubrunner.ids", + final Throwable throwable = catchThrowable( + () -> new SpringApplicationBuilder(Application.class, StubRunnerConfiguration.class) + .properties(ImmutableMap.of("stubrunner.stubsMode", "CLASSPATH", "stubrunner.ids", new String[] { "org.springframework.cloud.contract.verifier.stubs:should-not-be-found" })) .run()); // Then assertThat(throwable).isInstanceOf(BeanCreationException.class); - assertThat(throwable.getCause().getCause()) - .isInstanceOf(BeanInstantiationException.class) + assertThat(throwable.getCause().getCause()).isInstanceOf(BeanInstantiationException.class) .hasMessageContaining("No stubs were found on classpath "); } diff --git a/tests/spring-cloud-contract-stub-runner-context-path/src/test/java/com/example/loan/LoanApplicationServiceTests.java b/tests/spring-cloud-contract-stub-runner-context-path/src/test/java/com/example/loan/LoanApplicationServiceTests.java index 119761c105..315b9ab786 100644 --- a/tests/spring-cloud-contract-stub-runner-context-path/src/test/java/com/example/loan/LoanApplicationServiceTests.java +++ b/tests/spring-cloud-contract-stub-runner-context-path/src/test/java/com/example/loan/LoanApplicationServiceTests.java @@ -39,8 +39,8 @@ import static org.assertj.core.api.Assertions.assertThat; // tag::autoconfigure_stubrunner[] @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) -@AutoConfigureStubRunner(repositoryRoot = "classpath:m2repo/repository/", ids = { - "org.springframework.cloud.contract.verifier.stubs:contextPathFraudDetectionServer" }, +@AutoConfigureStubRunner(repositoryRoot = "classpath:m2repo/repository/", + ids = { "org.springframework.cloud.contract.verifier.stubs:contextPathFraudDetectionServer" }, stubsMode = StubRunnerProperties.StubsMode.REMOTE) public class LoanApplicationServiceTests { @@ -58,14 +58,13 @@ public class LoanApplicationServiceTests { @Before public void setPort() { this.service.setFraudUrl( - this.stubFinder.findStubUrl("contextPathFraudDetectionServer").toString() - + "/fraud-path/"); + this.stubFinder.findStubUrl("contextPathFraudDetectionServer").toString() + "/fraud-path/"); } @Test public void shouldStartThisAppWithContextPath() { - String response = new RestTemplate().getForObject( - "http://localhost:" + this.port + "/my-path/foo", String.class); + String response = new RestTemplate().getForObject("http://localhost:" + this.port + "/my-path/foo", + String.class); assertThat(response).isNotEmpty(); } @@ -73,13 +72,11 @@ public class LoanApplicationServiceTests { @Test public void shouldSuccessfullyApplyForLoan() { // given: - LoanApplication application = new LoanApplication(new Client("1234567890"), - 123.123); + LoanApplication application = new LoanApplication(new Client("1234567890"), 123.123); // when: LoanApplicationResult loanApplication = this.service.loanApplication(application); // then: - assertThat(loanApplication.getLoanApplicationStatus()) - .isEqualTo(LoanApplicationStatus.LOAN_APPLIED); + assertThat(loanApplication.getLoanApplicationStatus()).isEqualTo(LoanApplicationStatus.LOAN_APPLIED); assertThat(loanApplication.getRejectionReason()).isNull(); } @@ -87,8 +84,7 @@ public class LoanApplicationServiceTests { @Test public void shouldBeRejectedDueToAbnormalLoanAmount() { // given: - LoanApplication application = new LoanApplication(new Client("1234567890"), - 99999); + LoanApplication application = new LoanApplication(new Client("1234567890"), 99999); // when: LoanApplicationResult loanApplication = this.service.loanApplication(application); // then: