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 bbaad88b86..4316a8d49f 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 @@ -35,13 +35,13 @@ public class GroovyDslPropertyConverter implements DslPropertyConverter { public Object testSide(Object object) { if (object instanceof GString) { boolean anyPattern = Arrays.stream(((GString) object).getValues()) - .anyMatch(it -> it instanceof RegexProperty); + .anyMatch(it -> it instanceof RegexProperty); if (!anyPattern) { return object; } List generatedValues = Arrays.stream(((GString) object).getValues()) - .map(it -> it instanceof RegexProperty ? ((RegexProperty) it).generate() : it) - .collect(Collectors.toList()); + .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); 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 4103f3d6d8..8a2a64dac0 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 @@ -40,10 +40,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)); + return body.entrySet() + .stream() + .collect(Collectors.toMap((Function) t -> t.getKey().toString(), + (Function) t -> toDslProperty(t.getValue()), throwingMerger(), + LinkedHashMap::new)); } private static BinaryOperator throwingMerger() { 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 a188e355a7..86b726c491 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 @@ -37,10 +37,10 @@ import java.util.regex.Pattern; public class Headers { private static final BiFunction CLIENT_SIDE = (s, header) -> ContractUtils - .convertStubSideRecursively(header); + .convertStubSideRecursively(header); private static final BiFunction SERVER_SIDE = (s, header) -> ContractUtils - .convertTestSideRecursively(header); + .convertTestSideRecursively(header); private Set
entries = new LinkedHashSet<>(); 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 939c8ebe92..7cd8df4c02 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 @@ -68,16 +68,16 @@ public final class RegexPatterns { protected static final Pattern HTTPS_URL = UrlHelper.HTTPS_URL; protected static final Pattern UUID = Pattern - .compile("[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}", Pattern.CASE_INSENSITIVE); + .compile("[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}", Pattern.CASE_INSENSITIVE); protected static final Pattern UUID4 = Pattern - .compile("[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}", Pattern.CASE_INSENSITIVE); + .compile("[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}", Pattern.CASE_INSENSITIVE); protected static final Pattern ANY_DATE = Pattern - .compile("(\\d\\d\\d\\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])"); + .compile("(\\d\\d\\d\\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])"); - 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_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])"); @@ -89,9 +89,9 @@ 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 -> '^' + RegexpUtils.escapeSpecialRegexWithSingleEscape(it) + '$') - .collect(Collectors.joining("|"))); + return Pattern.compile(Arrays.stream(values) + .map(it -> '^' + RegexpUtils.escapeSpecialRegexWithSingleEscape(it) + '$') + .collect(Collectors.joining("|"))); } public static String multipartParam(Object name, Object value) { 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 4761dfa33d..5ec51b0756 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 @@ -742,8 +742,8 @@ public class Response extends Common implements RegexCreatingProperty 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/ContractDownloader.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ContractDownloader.java index 81189596fd..a7c1f35882 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 @@ -69,7 +69,7 @@ public class ContractDownloader { log.debug("Will download contracts for [" + this.contractsJarStubConfiguration + "]"); } Map.Entry unpackedContractStubs = this.stubDownloader - .downloadAndUnpackStubJar(this.contractsJarStubConfiguration); + .downloadAndUnpackStubJar(this.contractsJarStubConfiguration); if (unpackedContractStubs == null) { throw new IllegalStateException("The contracts failed to be downloaded!"); } @@ -145,7 +145,8 @@ public class ContractDownloader { private String patternFromProperty(File contractsDirectory) { return ("^" + contractsDirectory.getAbsolutePath() + "(" + File.separator + ")?" + ".*" - + contractsPath().replace("/", File.separator) + ".*$").replace("\\", "\\\\"); + + contractsPath().replace("/", File.separator) + ".*$") + .replace("\\", "\\\\"); } private String contractsPath() { @@ -165,7 +166,7 @@ public class ContractDownloader { private String groupArtifactToPattern(File contractsDirectory) { return ("^" + contractsDirectory.getAbsolutePath() + "(" + File.separator + ")?" + ".*" + slashSeparatedGroupId() + File.separator + this.projectArtifactId + File.separator + ".*$") - .replace("\\", "\\\\"); + .replace("\\", "\\\\"); } private String fileToPattern(File contractsDirectory) { 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 1d76538c84..942c2fddf9 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 @@ -152,10 +152,11 @@ class StubsStubDownloader implements StubDownloader { 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); + this::anyPattern) + .downloadAndUnpackStubJar(stubConfiguration); } return new ResourceResolvingStubDownloader(stubRunnerOptions, this::repoRoot, this::gavPattern) - .downloadAndUnpackStubJar(stubConfiguration); + .downloadAndUnpackStubJar(stubConfiguration); } private RepoRoots repoRootForSchemeSpecificPart(StubRunnerOptions stubRunnerOptions, 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 f2bd946c0e..16149582ca 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 @@ -219,8 +219,9 @@ 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()) { @@ -278,8 +279,10 @@ class GitRepo { } private void trackBranch(CheckoutCommand checkout, String label) { - checkout.setCreateBranch(true).setName(label).setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.TRACK) - .setStartPoint("origin/" + label); + checkout.setCreateBranch(true) + .setName(label) + .setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.TRACK) + .setStartPoint("origin/" + label); } private boolean isBranch(Git git, String label) throws GitAPIException { @@ -389,8 +392,9 @@ class GitRepo { } CloneCommand getCloneCommandByCloneRepository() { - return Git.cloneRepository().setCredentialsProvider(this.provider) - .setTransportConfigCallback(this.callback); + return Git.cloneRepository() + .setCredentialsProvider(this.provider) + .setTransportConfigCallback(this.callback); } PushCommand push(Git git) { 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 bde851deee..218371a07f 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 @@ -109,8 +109,9 @@ class ResourceResolvingStubDownloader implements StubDownloader { } 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 { 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 7d9e37079f..be38cc3781 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 @@ -203,8 +203,9 @@ 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))); } } @@ -351,9 +352,10 @@ class FileWalker extends SimpleFileVisitor { 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()) - .findFirst().orElse(latestFoundVersion); + 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 if (sameVersionButSnapshot != latestFoundVersion) { @@ -366,17 +368,22 @@ 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); - } - return Arrays.stream(files).filter(file -> RELEASE.equals(file.getName().toLowerCase())).findFirst() + .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() + .orElse(null); } private List pickLatestVersion(File[] files) { - return Arrays.stream(files).map(DefaultArtifactVersionWrapper::new) - .filter(wrapper -> this.latestSnapshotVersion || wrapper.isNotSnapshot()).sorted() - .collect(Collectors.toList()); + return Arrays.stream(files) + .map(DefaultArtifactVersionWrapper::new) + .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/StubRunnerExecutor.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerExecutor.java index 6ea5c89c93..1db8106327 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 @@ -91,7 +91,7 @@ class StubRunnerExecutor implements StubFinder { return runningStubs(); } HttpServerStubConfigurer configurer = BeanUtils - .instantiateClass(stubRunnerOptions.getHttpServerStubConfigurer()); + .instantiateClass(stubRunnerOptions.getHttpServerStubConfigurer()); startStubServers(configurer, stubRunnerOptions, stubConfiguration, repository); RunningStubs runningCollaborators = runningStubs(); log.info("All stubs are now running " + runningCollaborators.toString()); @@ -262,7 +262,7 @@ class StubRunnerExecutor implements StubFinder { } else { payload = JsonOutput - .toJson(BodyExtractor.extractClientValueFromBody(body == null ? null : body.getClientValue())); + .toJson(BodyExtractor.extractClientValueFromBody(body == null ? null : body.getClientValue())); } this.messageVerifierSender.send(payload, headers == null ? null : headers.asStubSideMap(), @@ -291,20 +291,20 @@ class StubRunnerExecutor implements StubFinder { log.debug("There are no HTTP related contracts. Won't start any servers"); } this.stubServer = new StubServer(stubConfiguration, mappings, contracts, new NoOpHttpServerStub()) - .start(configuration); + .start(configuration); return this.stubServer; } if (!randomPort) { this.stubServer = new StubServer(stubConfiguration, mappings, contracts, httpServerStub()) - .start(configuration); + .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)); + .start(new HttpServerStubConfiguration(configurer, stubRunnerOptions, stubConfiguration, + availablePort, true)); } }); } 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 106e77aa11..df799be20c 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 @@ -132,7 +132,7 @@ class StubRunnerFactory { public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { File potentialStubMapping = file.toFile(); Collection stubGenerators = this.provider - .allOrDefault(new DslToWireMockClientConverter()); + .allOrDefault(new DslToWireMockClientConverter()); if (stubGenerators.stream().anyMatch(s -> s.canReadStubMapping(potentialStubMapping))) { if (log.isDebugEnabled()) { log.debug("Deleting file [" + file.toString() + "] since it contains a valid mapping."); 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 73a54e6728..ad7d9afab6 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 @@ -170,22 +170,23 @@ 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", ""))) - .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"))) - .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", "")); + .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"))) + .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", "")); builder = httpStubConfigurer(builder); String proxyHost = System.getProperty("stubrunner.proxy.host"); if (proxyHost != null) { @@ -211,10 +212,10 @@ public class StubRunnerOptions { Properties properties = System.getProperties(); Set propertyNames = properties.stringPropertyNames(); propertyNames.stream() - // 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))); + // 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))); return map; } 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 ea97c7ca49..51466b60f4 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 @@ -28,6 +28,7 @@ import org.springframework.context.annotation.Import; /** * Annotation to enable a Stub runner server. + * * @author Dave Syer * @author Tim Ysewyn */ 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 8ac92d0330..837174e477 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 @@ -82,7 +82,8 @@ 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); @@ -101,20 +102,23 @@ 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()))) - .withStubRepositoryRoot(props.getRepositoryRoot()) - .withStubsMode(resolvePlaceholder(props.getStubsMode())) - .withStubsClassifier(resolvePlaceholder(props.getClassifier())) - .withStubs(resolvePlaceholder(props.getIds())).withUsername(resolvePlaceholder(props.getUsername())) - .withPassword(resolvePlaceholder(props.getPassword())) - .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()) - .withServerId(resolvePlaceholder(props.getServerId())).withFailOnNoStubs(props.isFailOnNoStubs()); + .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())) + .withPassword(resolvePlaceholder(props.getPassword())) + .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()) + .withServerId(resolvePlaceholder(props.getServerId())) + .withFailOnNoStubs(props.isFailOnNoStubs()); } private String[] resolvePlaceholder(String[] string) { @@ -172,7 +176,7 @@ class LazyMessageVerifier implements MessageVerifierSender, MessageVerifierRecei private MessageVerifierSender messageVerifierSender() { if (this.messageVerifierSender == null) { this.messageVerifierSender = this.beanFactory.getBeanProvider(MessageVerifierSender.class) - .getIfAvailable(NoOpStubMessages::new); + .getIfAvailable(NoOpStubMessages::new); } return this.messageVerifierSender; } @@ -180,7 +184,7 @@ class LazyMessageVerifier implements MessageVerifierSender, MessageVerifierRecei private MessageVerifierReceiver messageVerifierReceiver() { if (this.messageVerifierReceiver == null) { this.messageVerifierReceiver = this.beanFactory.getBeanProvider(MessageVerifierReceiver.class) - .getIfAvailable(NoOpStubMessages::new); + .getIfAvailable(NoOpStubMessages::new); } return this.messageVerifierReceiver; } 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 ffa4c82c6a..61ec35c57a 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 @@ -28,7 +28,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; * Conditional that checks if the user turned off the stubbed discovery mode. * * @author Marcin Grzejszczak - * * @since 1.0.0 */ @Retention(RetentionPolicy.RUNTIME) 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 05472175b4..608924ba93 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 @@ -29,7 +29,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; * is turned on by default. * * @author Marcin Grzejszczak - * * @since 1.0.0 */ @Retention(RetentionPolicy.RUNTIME) 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 886435be85..2709e6e8eb 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 @@ -63,7 +63,7 @@ public class StubMapperProperties { return id; } String groupAndArtifact = this.idsToServiceIds - .get(stubConfiguration.getGroupId() + ":" + stubConfiguration.getArtifactId()); + .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/StubRunnerSpringCloudAutoConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerSpringCloudAutoConfiguration.java index 526a33d562..862d1cb7f7 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 @@ -123,7 +123,7 @@ class StubRunnerDiscoveryClientWrapper implements BeanPostProcessor { boolean isStubbedDiscoveryEnabled() { if (this.stubbedDiscoveryEnabled == null) { this.stubbedDiscoveryEnabled = Boolean.valueOf(this.beanFactory.getBean(Environment.class) - .getProperty("stubrunner.cloud.stubbed.discovery.enabled", "true")); + .getProperty("stubrunner.cloud.stubbed.discovery.enabled", "true")); } return this.stubbedDiscoveryEnabled; } @@ -131,7 +131,7 @@ class StubRunnerDiscoveryClientWrapper implements BeanPostProcessor { boolean isCloudDelegateEnabled() { if (this.cloudDelegateEnabled == null) { this.cloudDelegateEnabled = Boolean.valueOf(this.beanFactory.getBean(Environment.class) - .getProperty("stubrunner.cloud.delegate.enabled", "false")); + .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 d84e53f636..387231ccf0 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 @@ -99,7 +99,7 @@ public class ConsulStubsRegistrar implements StubsRegistrar { protected String name(StubConfiguration stubConfiguration) { String resolvedName = this.stubMapperProperties - .fromIvyNotationToId(stubConfiguration.toColonSeparatedDependencyNotation()); + .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/ConditionalOnEurekaEnabled.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/ConditionalOnEurekaEnabled.java index 2ad62d3eb5..2ec17c245d 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 @@ -28,7 +28,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; * Conditional that checks if Eureka is enabled. * * @author Marcin Grzejszczak - * * @since 1.0.0 */ @Retention(RetentionPolicy.RUNTIME) 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 e0c29339d8..9d8d2be6c9 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 @@ -101,7 +101,9 @@ public class EurekaStubsRegistrar implements StubsRegistrar { EurekaClient client = new CloudEurekaClient(applicationInfoManager, this.eurekaClientConfigBean, transportClientFactories, args, this.context); EurekaRegistration registration = EurekaRegistration.builder(instance) - .with(this.eurekaClientConfigBean, this.context).with(client).build(); + .with(this.eurekaClientConfigBean, this.context) + .with(client) + .build(); EurekaHealthCheckHandler eurekaHealthCheckHandler = new EurekaHealthCheckHandler( StatusAggregator.getDefault()); eurekaHealthCheckHandler.setApplicationContext(context); @@ -165,7 +167,7 @@ public class EurekaStubsRegistrar implements StubsRegistrar { private String name(StubConfiguration stubConfiguration) { String resolvedName = this.stubMapperProperties - .fromIvyNotationToId(stubConfiguration.toColonSeparatedDependencyNotation()); + .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/loadbalancer/SpringCloudLoadBalancerAutoConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/loadbalancer/SpringCloudLoadBalancerAutoConfiguration.java index feb5d99e64..604ec267a1 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 @@ -151,8 +151,8 @@ class StubbedServiceInstance implements ServiceInstance { } RunningStubs runningStubs = this.stubFinder.findAllRunningStubs(); String mappedServiceName = StringUtils - .hasText(this.stubMapperProperties.fromServiceIdToIvyNotation(this.serviceId)) - ? this.stubMapperProperties.fromServiceIdToIvyNotation(this.serviceId) : this.serviceId; + .hasText(this.stubMapperProperties.fromServiceIdToIvyNotation(this.serviceId)) + ? this.stubMapperProperties.fromServiceIdToIvyNotation(this.serviceId) : this.serviceId; entry = runningStubs.getEntry(mappedServiceName); CACHE.put(this.serviceId, entry); return entry; 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 0d697c56a8..5ed6339446 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 @@ -87,8 +87,12 @@ public class ZookeeperStubsRegistrar implements StubsRegistrar { 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); @@ -97,7 +101,7 @@ public class ZookeeperStubsRegistrar implements StubsRegistrar { private String name(StubConfiguration stubConfiguration) { String resolvedName = this.stubMapperProperties - .fromIvyNotationToId(stubConfiguration.toColonSeparatedDependencyNotation()); + .fromIvyNotationToId(stubConfiguration.toColonSeparatedDependencyNotation()); if (StringUtils.hasText(resolvedName)) { return resolvedName; } @@ -105,8 +109,11 @@ public class ZookeeperStubsRegistrar implements StubsRegistrar { } protected ServiceDiscovery serviceDiscovery(ServiceInstance serviceInstance) { - return ServiceDiscoveryBuilder.builder(Void.class).basePath(this.zookeeperDiscoveryProperties.getRoot()) - .client(this.curatorFramework).thisInstance(serviceInstance).build(); + return ServiceDiscoveryBuilder.builder(Void.class) + .basePath(this.zookeeperDiscoveryProperties.getRoot()) + .client(this.curatorFramework) + .thisInstance(serviceInstance) + .build(); } @Override diff --git a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit4/StubRunnerRuleCustomPortJUnitTest.java b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit4/StubRunnerRuleCustomPortJUnitTest.java index 5c58ea4862..11180996b3 100644 --- a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit4/StubRunnerRuleCustomPortJUnitTest.java +++ b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit4/StubRunnerRuleCustomPortJUnitTest.java @@ -39,9 +39,10 @@ public class StubRunnerRuleCustomPortJUnitTest { // tag::classrule_with_port[] @ClassRule public static StubRunnerRule rule = new StubRunnerRule().repoRoot(repoRoot()) - .stubsMode(StubRunnerProperties.StubsMode.REMOTE) - .downloadStub("org.springframework.cloud.contract.verifier.stubs", "loanIssuance").withPort(35465) - .downloadStub("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer:35466"); + .stubsMode(StubRunnerProperties.StubsMode.REMOTE) + .downloadStub("org.springframework.cloud.contract.verifier.stubs", "loanIssuance") + .withPort(35465) + .downloadStub("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer:35466"); @BeforeClass @AfterClass @@ -67,14 +68,14 @@ public class StubRunnerRuleCustomPortJUnitTest { 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")); + .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", - "fraudDetectionServer")).isTrue(); then(rule.findAllRunningStubs() - .isPresent("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")).isTrue(); + .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"); diff --git a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit4/StubRunnerRuleJUnitTest.java b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit4/StubRunnerRuleJUnitTest.java index 534004f01f..e8b9388c25 100644 --- a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit4/StubRunnerRuleJUnitTest.java +++ b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/junit4/StubRunnerRuleJUnitTest.java @@ -39,9 +39,9 @@ public class StubRunnerRuleJUnitTest { // tag::classrule[] @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"); + .stubsMode(StubRunnerProperties.StubsMode.REMOTE) + .downloadStub("org.springframework.cloud.contract.verifier.stubs", "loanIssuance") + .downloadStub("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer"); @BeforeClass @AfterClass @@ -68,14 +68,14 @@ public class StubRunnerRuleJUnitTest { 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")); + .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", - "fraudDetectionServer")).isTrue(); then(rule.findAllRunningStubs() - .isPresent("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")).isTrue(); + .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"); 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 a44c36ccec..0fc68385ca 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,7 +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 798a536b8a..e3eee5e63a 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 @@ -76,7 +76,7 @@ public class CompositeStubDownloaderBuilderTests { StubDownloader downloader = builder.build(new StubRunnerOptionsBuilder().withFailOnNoStubs(true).build()); BDDAssertions.thenThrownBy(() -> downloader.downloadAndUnpackStubJar(new StubConfiguration("a:b:v"))) - .isInstanceOf(IllegalArgumentException.class); + .isInstanceOf(IllegalArgumentException.class); } } 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 1d9615dbf6..2f68c2c6a1 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 @@ -61,8 +61,9 @@ public class ContractProjectUpdaterTest extends AbstractGitTest { this.gitRepo.checkout(this.project, "master"); setOriginOnProjectToTmp(this.origin, this.project, true); StubRunnerOptions options = new StubRunnerOptionsBuilder() - .withStubRepositoryRoot("file://" + this.project.getAbsolutePath() + "/") - .withStubsMode(StubRunnerProperties.StubsMode.REMOTE).build(); + .withStubRepositoryRoot("file://" + this.project.getAbsolutePath() + "/") + .withStubsMode(StubRunnerProperties.StubsMode.REMOTE) + .build(); this.updater = new ContractProjectUpdater(options); } @@ -80,7 +81,7 @@ public class ContractProjectUpdaterTest extends AbstractGitTest { 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")) - .exists(); + .exists(); BDDAssertions.then(this.gitRepo.gitFactory.provider).isNull(); BDDAssertions.then(this.outputCapture.toString()).contains("No custom credentials provider will be set"); } @@ -88,13 +89,15 @@ public class ContractProjectUpdaterTest extends AbstractGitTest { @Test 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() { - { - put("git.username", "foo"); - put("git.password", "bar"); - } - }).build(); + .withStubRepositoryRoot("file://" + this.project.getAbsolutePath() + "/") + .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()); @@ -108,16 +111,19 @@ public class ContractProjectUpdaterTest extends AbstractGitTest { 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")) - .exists(); + .exists(); BDDAssertions.then(this.outputCapture.toString()) - .contains("Passed username and password - will set a custom credentials provider"); + .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 { StubRunnerOptions options = new StubRunnerOptionsBuilder() - .withStubRepositoryRoot("file://" + this.project.getAbsolutePath() + "/") - .withStubsMode(StubRunnerProperties.StubsMode.REMOTE).withUsername("foo").withPassword("bar").build(); + .withStubRepositoryRoot("file://" + this.project.getAbsolutePath() + "/") + .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()); @@ -131,9 +137,9 @@ public class ContractProjectUpdaterTest extends AbstractGitTest { 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")) - .exists(); + .exists(); BDDAssertions.then(this.outputCapture.toString()) - .contains("Passed username and password - will set a custom credentials provider"); + .contains("Passed username and password - will set a custom credentials provider"); } @Test @@ -151,7 +157,7 @@ public class ContractProjectUpdaterTest extends AbstractGitTest { then(revCommit.getShortMessage()).isEqualTo(initialCommit); } BDDAssertions.then(new File(this.project, "META-INF/com.example/hello-world/0.0.2/mappings/someMapping.json")) - .doesNotExist(); + .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 48da145b99..1246b44d72 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 @@ -37,7 +37,7 @@ public class FileStubDownloaderTests { Assertions.assertThat(expectedUnixResource).isEqualTo(fileStubDownloader.resolve(unixFileFormat, 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 34edef8835..aeaf1eb4ae 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 @@ -59,16 +59,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"); + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("Exception occurred while cloning repo"); } @Test 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) - .hasMessageContaining("Exception occurred while cloning repo") - .hasCauseInstanceOf(CustomException.class); + .cloneProject(this.project.toURI())).isInstanceOf(IllegalStateException.class) + .hasMessageContaining("Exception occurred while cloning repo") + .hasCauseInstanceOf(CustomException.class); } @Test 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 9703bab87a..62ffe7d525 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,8 +49,10 @@ 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(); } @@ -59,8 +61,10 @@ 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(); } @@ -70,8 +74,10 @@ 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(); } @@ -80,51 +86,55 @@ public class GitStubDownloaderTests { 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, "/"); + .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"); + .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 { StubDownloaderBuilder stubDownloaderBuilder = new ScmStubDownloaderBuilder(); String contractFolderLocation = (file("/git_samples/contract-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 + "1.0.0.BUILD-SNAPSHOT"); entry = stubDownloader - .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:latest")); + .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"); entry = stubDownloader - .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:LATEST")); + .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"); entry = stubDownloader - .downloadAndUnpackStubJar(new StubConfiguration("com.issue1305:beer-api-producer-external:+")); + .downloadAndUnpackStubJar(new StubConfiguration("com.issue1305:beer-api-producer-external:+")); then(entry).isNotNull(); then(entry.getValue().getAbsolutePath()).contains( @@ -135,24 +145,26 @@ public class GitStubDownloaderTests { 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, "/"); + .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")); + .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 @@ -160,65 +172,71 @@ public class GitStubDownloaderTests { throws URISyntaxException { StubDownloaderBuilder stubDownloaderBuilder = new ScmStubDownloaderBuilder(); String contractFolderLocation = (file("/git_samples/contract-predefined-names-git/").getAbsolutePath() - .replace("/", File.separator) + "/").replace(File.separator, "/"); + .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"); + .contains("com.example" + File.separator + "beer-api-producer-external" + File.separator + "latest"); entry = stubDownloader - .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:latest")); + .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"); + .contains("com.example" + File.separator + "beer-api-producer-external" + File.separator + "latest"); entry = stubDownloader - .downloadAndUnpackStubJar(new StubConfiguration("com.example:beer-api-producer-external:LATEST")); + .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"); + .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 { StubDownloaderBuilder stubDownloaderBuilder = new ScmStubDownloaderBuilder(); 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: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"); + .contains("com.example" + File.separator + "beer-api-producer-external" + File.separator + "release"); 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"); + .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 { StubDownloaderBuilder stubDownloaderBuilder = new ScmStubDownloaderBuilder(); String contractFolderLocation = (file("/git_samples/contract-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()); try { stubDownloader.downloadAndUnpackStubJar(new StubConfiguration("foo.bar", "bazService", "")); 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 cd161a3fc1..88b50523f2 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 @@ -65,19 +65,19 @@ public class StubRunnerSliceTests { assertThat(this.loanIssuancePort).isBetween(10001, 10020); assertThat(this.stubFinder.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")) - .isNotNull(); + .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("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")); + .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")) - .isNotNull(); + .isNotNull(); assertThat(this.properties.getProperties()).containsEntry("hello", "world").containsEntry("foo", "bar"); } 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 a0b192f158..1d5f51243c 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 @@ -32,11 +32,11 @@ public class StubsStubDownloaderTests { public void should_pick_stubs_from_a_given_location() { String path = url.getPath(); StubRunnerOptions options = new StubRunnerOptionsBuilder().withStubRepositoryRoot("stubs://file://" + path) - .build(); + .build(); StubsStubDownloader downloader = new StubsStubDownloader(options); Map.Entry entry = downloader - .downloadAndUnpackStubJar(new StubConfiguration("lv.spring.cloud:bye")); + .downloadAndUnpackStubJar(new StubConfiguration("lv.spring.cloud:bye")); BDDAssertions.then(entry).isNotNull(); BDDAssertions.then(entry.getValue()).exists(); @@ -48,11 +48,12 @@ public class StubsStubDownloaderTests { 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) - .withProperties(propsWithFindProducer()).build(); + .withProperties(propsWithFindProducer()) + .build(); StubsStubDownloader downloader = new StubsStubDownloader(options); Map.Entry entry = downloader - .downloadAndUnpackStubJar(new StubConfiguration("lv.spring.cloud:bye")); + .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"); @@ -63,11 +64,12 @@ public class StubsStubDownloaderTests { 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) - .withProperties(propsWithFindProducer()).build(); + .withProperties(propsWithFindProducer()) + .build(); StubsStubDownloader downloader = new StubsStubDownloader(options); Map.Entry entry = downloader - .downloadAndUnpackStubJar(new StubConfiguration("lv.spring:cloud:bye")); + .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"); 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 7f1491f826..434adaa1b9 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 @@ -42,9 +42,11 @@ class StubRunnerJUnit5ExtensionCustomMessageVerifierTests { // Visible for testing @RegisterExtension static StubRunnerExtension stubRunnerExtension = new StubRunnerExtension() - .stubsMode(StubRunnerProperties.StubsMode.REMOTE).repoRoot(repoRoot()) - .downloadStub("org.springframework.cloud.contract.verifier.stubs", "bootService") - .messageVerifierSender(new MyMessageVerifier()).messageVerifierReceiver(new MyMessageVerifier()); + .stubsMode(StubRunnerProperties.StubsMode.REMOTE) + .repoRoot(repoRoot()) + .downloadStub("org.springframework.cloud.contract.verifier.stubs", "bootService") + .messageVerifierSender(new MyMessageVerifier()) + .messageVerifierReceiver(new MyMessageVerifier()); @BeforeAll @AfterAll 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 314e11e4eb..98e21a5498 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 @@ -38,9 +38,10 @@ 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"); + .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 @@ -61,23 +62,23 @@ class StubRunnerJUnit5ExtensionCustomPortTests { @Test void should_start_wiremock_servers() throws Exception { then(stubRunnerExtension.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")) - .isNotNull(); + .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(); + .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(); + .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"); + .isEqualTo("fraudDetectionServer"); then(stubRunnerExtension.findStubUrl("loanIssuance")).isEqualTo(URI.create("http://localhost:22345").toURL()); then(stubRunnerExtension.findStubUrl("fraudDetectionServer")) - .isEqualTo(URI.create("http://localhost:22346").toURL()); + .isEqualTo(URI.create("http://localhost:22346").toURL()); } private String httpGet(String url) throws Exception { 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 1a823c1fa3..d65398319d 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,9 @@ public class StubRunnerJUnit5ExtensionExceptionThrowingTests { @RegisterExtension static StubRunnerExtension stubRunnerExtension = new StubRunnerExtension() - .stubsMode(StubRunnerProperties.StubsMode.REMOTE).repoRoot(repoRoot()) - .downloadStub("org.springframework.cloud.contract.verifier.stubs", "bootService"); + .stubsMode(StubRunnerProperties.StubsMode.REMOTE) + .repoRoot(repoRoot()) + .downloadStub("org.springframework.cloud.contract.verifier.stubs", "bootService"); @BeforeAll @AfterAll 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 3ad4384d9f..89876ade68 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 @@ -39,10 +39,10 @@ class StubRunnerJUnit5ExtensionTests { // 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") - .withMappingsOutputFolder("target/outputmappingsforrule"); + .stubsMode(StubRunnerProperties.StubsMode.REMOTE) + .downloadStub("org.springframework.cloud.contract.verifier.stubs", "loanIssuance") + .downloadStub("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer") + .withMappingsOutputFolder("target/outputmappingsforrule"); @BeforeAll @AfterAll @@ -64,12 +64,12 @@ class StubRunnerJUnit5ExtensionTests { @Test void should_start_WireMock_servers() { assertThat(stubRunnerExtension.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")) - .isNotNull(); + .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(); + .findStubUrl("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")).isNotNull(); } @Test 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 7becd25503..561ac4963a 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 @@ -39,10 +39,10 @@ class StubRunnerJUnit5MethodExtensionTests { // 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") - .withMappingsOutputFolder("target/outputmappingsforrule"); + .stubsMode(StubRunnerProperties.StubsMode.REMOTE) + .downloadStub("org.springframework.cloud.contract.verifier.stubs", "loanIssuance") + .downloadStub("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer") + .withMappingsOutputFolder("target/outputmappingsforrule"); @BeforeEach @AfterEach @@ -64,12 +64,12 @@ class StubRunnerJUnit5MethodExtensionTests { @Test void should_start_WireMock_servers() { assertThat(stubRunnerExtension.findStubUrl("org.springframework.cloud.contract.verifier.stubs", "loanIssuance")) - .isNotNull(); + .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(); + .findStubUrl("org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer")).isNotNull(); } @Test 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 ecb35bc633..65808534a7 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,8 +30,8 @@ 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() { 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 ec7ca2bac4..f756eae290 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 @@ -79,9 +79,13 @@ public class RecursiveFilesConverter { } public void processFiles() { - ContractFileScanner scanner = ContractFileScanner.builder().baseDir(contractsDslDir) - .excluded(new HashSet<>(excludedFiles)).ignored(new HashSet<>()).included(new HashSet<>()) - .includeMatcher(includedContracts).build(); + ContractFileScanner scanner = ContractFileScanner.builder() + .baseDir(contractsDslDir) + .excluded(new HashSet<>(excludedFiles)) + .ignored(new HashSet<>()) + .included(new HashSet<>()) + .includeMatcher(includedContracts) + .build(); MultiValueMap contracts = scanner.findContractsRecursively(); if (log.isDebugEnabled()) { log.debug("Found the following contracts " + contracts); @@ -115,7 +119,7 @@ public class RecursiveFilesConverter { for (StubGenerator stubGenerator : stubGenerators) { Map convertedContent = stubGenerator - .convertContents(last(entryKey).toString(), contract); + .convertContents(last(entryKey).toString(), contract); if (convertedContent == null || convertedContent.isEmpty()) { continue; } 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 7ab7e37c72..6b42d1757e 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,9 @@ 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/wiremock/DefaultWireMockStubPostProcessor.java b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/DefaultWireMockStubPostProcessor.java index c7a646d4c9..975bd2d2ed 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 @@ -158,7 +158,7 @@ class DefaultWireMockStubPostProcessor implements WireMockStubPostProcessor { } Object stubMapping = WireMockMetaData.fromMetadata(contract.getMetadata()).getStubMapping(); return WireMockMetaData.APPLICABLE_CLASSES.stream() - .anyMatch(aClass -> aClass.isAssignableFrom(stubMapping.getClass())); + .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 32ec854aed..799a2efd26 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 @@ -78,8 +78,10 @@ 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, 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 c21c1012d0..1457c4f9de 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 @@ -65,8 +65,9 @@ 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() + "`") - .collect(Collectors.toList()) + + 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 8aeb142ec9..da59150bc8 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 @@ -202,17 +202,27 @@ 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) - .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() - .ifPresent(b -> requestBody.append("body $(consumer(regex('") - .append(escapeJava(b.getValue().asText())).append("')), producer('") - .append(new Xeger(escapeJava(b.getValue().asText())).generate()).append("'))")); + 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() + .ifPresent(b -> requestBody.append("body $(consumer(regex('") + .append(escapeJava(b.getValue().asText())) + .append("')), producer('") + .append(new Xeger(escapeJava(b.getValue().asText())).generate()) + .append("'))")); } return requestBody.toString(); } @@ -250,9 +260,8 @@ public class WireMockToDslConverter { Object intermediateObjectForPrettyPrinting = OBJECT_MAPPER.reader().readValue(textNode, Object.class); DefaultIndenter customIndenter = new DefaultIndenter(" ", "\n"); return OBJECT_MAPPER - .writer(new PrivatePrettyPrinter().withArrayIndenter(customIndenter) - .withObjectIndenter(customIndenter)) - .writeValueAsString(intermediateObjectForPrettyPrinting); + .writer(new PrivatePrettyPrinter().withArrayIndenter(customIndenter).withObjectIndenter(customIndenter)) + .writeValueAsString(intermediateObjectForPrettyPrinting); } catch (IOException e) { throw new RuntimeException("WireMock response body could not be pretty printed"); @@ -267,8 +276,12 @@ public class WireMockToDslConverter { 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")); + fields.forEachRemaining(c -> responseHeadersBuilder.append("header('") + .append(c.getKey()) + .append("',") + .append("'") + .append(c.getValue().asText()) + .append("')\n")); responseHeadersBuilder.append("}"); } return responseHeadersBuilder.toString(); 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 cbf006e6e2..cff225ed51 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 @@ -153,10 +153,12 @@ class DefaultWireMockStubPostProcessorTests { then(result.getResponse().getStatus()).isEqualTo(200); then(result.getResponse().getBody()).isEqualTo("pong"); then(result.getPostServeActions().stream().map(a -> a.getName()).collect(Collectors.toList())) - .contains("webhook"); - PostServeActionDefinition definition = result.getPostServeActions().stream() - .filter(a -> a.getName().equals("webhook")).findFirst() - .orElseThrow(() -> new AssertionError("No webhook action found")); + .contains("webhook"); + PostServeActionDefinition definition = result.getPostServeActions() + .stream() + .filter(a -> a.getName().equals("webhook")) + .findFirst() + .orElseThrow(() -> new AssertionError("No webhook action found")); then(definition.getParameters().getString("method")).isEqualTo("POST"); } 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 1c3615fd57..7973212973 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 @@ -246,7 +246,7 @@ public class ConvertMojo extends AbstractMojo { throws MojoExecutionException { File outputFolderWithOriginals = new File(this.stubsDirectory, rootPath + ORIGINAL_PATH); new CopyContracts(this.project, this.mavenSession, this.mavenResourcesFiltering, config) - .copy(contractsDirectory, outputFolderWithOriginals); + .copy(contractsDirectory, outputFolderWithOriginals); return outputFolderWithOriginals; } @@ -255,7 +255,7 @@ public class ConvertMojo extends AbstractMojo { 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); + .copy(contractsDirectory, outputFolderWithContracts); return outputFolderWithContracts; } @@ -285,7 +285,7 @@ public class ConvertMojo extends AbstractMojo { this.contractsRepositoryUrl, this.contractsMode, getLog(), this.contractsRepositoryUsername, this.contractsRepositoryPassword, this.contractsRepositoryProxyHost, this.contractsRepositoryProxyPort, this.deleteStubsAfterTest, this.contractsProperties, this.failOnNoContracts) - .downloadAndUnpackContractsIfRequired(config, this.contractsDirectory); + .downloadAndUnpackContractsIfRequired(config, this.contractsDirectory); } private File stubsOutputDir(String rootPath) { 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 868a952269..0ea975d363 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 @@ -254,8 +254,8 @@ public class GenerateTestsMojo extends AbstractMojo { + this.skip); } if (this.mavenTestSkip) { - getLog().info( - "Skipping Spring Cloud Contract Verifier execution: maven.test.skip=" + this.mavenTestSkip); + getLog() + .info("Skipping Spring Cloud Contract Verifier execution: maven.test.skip=" + this.mavenTestSkip); } return; } @@ -267,7 +267,8 @@ public class GenerateTestsMojo extends AbstractMojo { 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); + this.failOnNoContracts) + .downloadAndUnpackContractsIfRequired(config, this.contractsDirectory); getLog().info("Directory with contract is present at [" + contractsDirectory + "]"); throwExceptionWhenFailOnNoContracts(contractsDirectory, this.contractsRepositoryUrl); @@ -307,8 +308,8 @@ public class GenerateTestsMojo extends AbstractMojo { throws MojoExecutionException { if (StringUtils.hasText(contractsRepository)) { if (getLog().isDebugEnabled()) { - getLog().debug( - "Contracts repository is set, will not throw an exception that the contracts are not found"); + getLog() + .debug("Contracts repository is set, will not throw an exception that the contracts are not found"); } return; } 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 140183bc60..fff621d35f 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 @@ -46,13 +46,13 @@ class LeftOverPrevention { this.generatedDirectory = generatedDirectory; this.incrementalBuildHelper = new IncrementalBuildHelper(mojoExecution, session); this.incrementalBuildHelper - .beforeRebuildExecution(new IncrementalBuildHelperRequest().outputDirectory(generatedDirectory)); + .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/MavenContractsDownloader.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/MavenContractsDownloader.java index e0eecb5626..9467234db4 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 @@ -101,7 +101,7 @@ class MavenContractsDownloader { this.log.info("Another mojo has downloaded the contracts - will reuse them from [" + downloadedContractsDir + "]"); final ContractDownloader.InclusionProperties inclusionProperties = contractDownloader() - .createNewInclusionProperties(downloadedContractsDir); + .createNewInclusionProperties(downloadedContractsDir); config.setIncludedContracts(inclusionProperties.getIncludedContracts()); config.setIncludedRootFolderAntPattern(inclusionProperties.getIncludedRootFolderAntPattern()); return downloadedContractsDir; @@ -111,7 +111,7 @@ class MavenContractsDownloader { final ContractDownloader contractDownloader = contractDownloader(); final File downloadedContracts = contractDownloader.unpackAndDownloadContracts(); final ContractDownloader.InclusionProperties inclusionProperties = contractDownloader - .createNewInclusionProperties(downloadedContracts); + .createNewInclusionProperties(downloadedContracts); config.setIncludedContracts(inclusionProperties.getIncludedContracts()); config.setIncludedRootFolderAntPattern(inclusionProperties.getIncludedRootFolderAntPattern()); this.project.getProperties().setProperty(directoryProperty(), downloadedContracts.getAbsolutePath()); @@ -147,10 +147,13 @@ 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) - .withFailOnNoStubs(this.failOnNoStubs); + .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 95037a097b..61965b5db0 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 @@ -122,10 +122,13 @@ public class PushStubsToScmMojo extends AbstractMojo { StubRunnerOptions buildOptions() { StubRunnerOptionsBuilder builder = new StubRunnerOptionsBuilder() - .withOptions(StubRunnerOptions.fromSystemProps()).withStubRepositoryRoot(this.contractsRepositoryUrl) - .withStubsMode(this.contractsMode).withUsername(this.contractsRepositoryUsername) - .withPassword(this.contractsRepositoryPassword).withDeleteStubsAfterTest(this.deleteStubsAfterTest) - .withProperties(this.contractsProperties); + .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 879ff584af..db8a739062 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 @@ -132,15 +132,17 @@ public class RunMojo extends AbstractMojo { } BatchStubRunner batchStubRunner = null; StubRunnerOptionsBuilder optionsBuilder = new StubRunnerOptionsBuilder() - .withStubsClassifier(this.stubsClassifier); + .withStubsClassifier(this.stubsClassifier); if (!StringUtils.hasText(this.stubs)) { 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) - .withServerId(this.serverId).build(); + StubRunnerOptions options = optionsBuilder.withStubs(this.stubs) + .withMinMaxPort(this.minPort, this.maxPort) + .withServerId(this.serverId) + .build(); batchStubRunner = this.remoteStubRunner.run(options, this.repoSession); } pressAnyKeyToContinue(); diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/MavenContractsDownloaderTests.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/MavenContractsDownloaderTests.java index 6159455f97..79428724c8 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/MavenContractsDownloaderTests.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/MavenContractsDownloaderTests.java @@ -50,23 +50,27 @@ class MavenContractsDownloaderTests { MavenContractsDownloader mavenContractsDownloader = contractsDownloader(mavenProject, one, this.fileForDependencyOne); File dependencyOneFile = mavenContractsDownloader - .downloadAndUnpackContractsIfRequired(new ContractVerifierConfigProperties(), this.defaultFolder); - BDDAssertions.then(dependencyOneFile).as("Location for dependency 1 should be computed since it's not cached") - .isEqualTo(this.fileForDependencyOne); + .downloadAndUnpackContractsIfRequired(new ContractVerifierConfigProperties(), this.defaultFolder); + BDDAssertions.then(dependencyOneFile) + .as("Location for dependency 1 should be computed since it's not cached") + .isEqualTo(this.fileForDependencyOne); mavenContractsDownloader = contractsDownloader(mavenProject, one, this.fileForDependencyOne); File fileForDependencyOneAgain = mavenContractsDownloader - .downloadAndUnpackContractsIfRequired(new ContractVerifierConfigProperties(), this.defaultFolder); - BDDAssertions.then(dependencyOneFile).as("Location for dependency 1 should be taken from cache") - .isEqualTo(fileForDependencyOneAgain); + .downloadAndUnpackContractsIfRequired(new ContractVerifierConfigProperties(), this.defaultFolder); + BDDAssertions.then(dependencyOneFile) + .as("Location for dependency 1 should be taken from cache") + .isEqualTo(fileForDependencyOneAgain); Dependency two = dependency(2); mavenContractsDownloader = contractsDownloader(mavenProject, two, this.fileForDependencyTwo); File dependencyTwoFile = mavenContractsDownloader - .downloadAndUnpackContractsIfRequired(new ContractVerifierConfigProperties(), this.defaultFolder); + .downloadAndUnpackContractsIfRequired(new ContractVerifierConfigProperties(), this.defaultFolder); - BDDAssertions.then(dependencyTwoFile).as("Location for dependency 2 should be computed again") - .isNotEqualTo(dependencyOneFile).isEqualTo(this.fileForDependencyTwo); + BDDAssertions.then(dependencyTwoFile) + .as("Location for dependency 2 should be computed again") + .isNotEqualTo(dependencyOneFile) + .isEqualTo(this.fileForDependencyTwo); } private MavenContractsDownloader contractsDownloader(MavenProject mavenProject, Dependency one, File file) { 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 171197af0b..a2b556b7e0 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 @@ -38,10 +38,10 @@ public class PluginUnitTest extends AbstractMojoTest { executeMojo(basedir, "convert"); assertFilesPresent(basedir, "target/stubs/META-INF/org.springframework.cloud.verifier.sample/sample-project/0.1/mappings/Sample.json" - .replace("/", File.separator)); + .replace("/", File.separator)); assertFilesNotPresent(basedir, "target/stubs/META-INF/org.springframework.cloud.verifier.sample/sample-project/0.1/mappings/Messaging.json" - .replace("/", File.separator)); + .replace("/", File.separator)); } private Xpp3Dom defaultPackageForTests() { @@ -54,7 +54,7 @@ public class PluginUnitTest extends AbstractMojoTest { 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)); + .replace("/", File.separator)); } @Test @@ -63,10 +63,10 @@ public class PluginUnitTest extends AbstractMojoTest { executeMojo(basedir, "convert"); assertFilesPresent(basedir, "target/stubs/META-INF/org.springframework.cloud.verifier.sample/sample-project/0.1/contracts/Sample.groovy" - .replace("/", File.separator)); + .replace("/", File.separator)); assertFilesPresent(basedir, "target/stubs/META-INF/org.springframework.cloud.verifier.sample/sample-project/0.1/contracts/Messaging.groovy" - .replace("/", File.separator)); + .replace("/", File.separator)); } @Test @@ -150,8 +150,12 @@ 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"); } @@ -159,8 +163,12 @@ public class PluginUnitTest extends AbstractMojoTest { @Test 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, @@ -189,8 +197,11 @@ 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"); } @@ -199,8 +210,11 @@ public class PluginUnitTest extends AbstractMojoTest { 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, @@ -218,7 +232,7 @@ public class PluginUnitTest extends AbstractMojoTest { assertFilesPresent(basedir, path); File test = new File(basedir, path); then(readFileToString(test, defaultCharset())).contains("extends HelloV1Base") - .contains("import hello.HelloV1Base"); + .contains("import hello.HelloV1Base"); } @Test @@ -231,7 +245,7 @@ public class PluginUnitTest extends AbstractMojoTest { assertFilesPresent(basedir, path); File test = new File(basedir, path); then(readFileToString(test, defaultCharset())).contains("extends HelloV1Base") - .contains("import hello.HelloV1Base"); + .contains("import hello.HelloV1Base"); } @Test @@ -244,7 +258,7 @@ public class PluginUnitTest extends AbstractMojoTest { assertFilesPresent(basedir, path); File test = new File(basedir, path); then(readFileToString(test, defaultCharset())).contains("extends TestBase") - .contains("import com.example.TestBase"); + .contains("import com.example.TestBase"); } @Test @@ -257,7 +271,7 @@ public class PluginUnitTest extends AbstractMojoTest { assertFilesPresent(basedir, path); File test = new File(basedir, path); then(readFileToString(test, defaultCharset())).contains("extends TestBase") - .contains("import com.example.TestBase"); + .contains("import com.example.TestBase"); } @Test @@ -270,8 +284,8 @@ public class PluginUnitTest extends AbstractMojoTest { assertFilesPresent(basedir, path); File test = new File(basedir, path); then(readFileToString(test, defaultCharset())) - .contains("public void validate_should_post_a_user() throws Exception {") - .contains("public void validate_withList_1() throws Exception {"); + .contains("public void validate_should_post_a_user() throws Exception {") + .contains("public void validate_withList_1() throws Exception {"); } @Test @@ -322,8 +336,11 @@ 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-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 45082ebe64..e4d1d4e95f 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 @@ -84,10 +84,14 @@ public class TestGenerator { public TestGenerator(ContractVerifierConfigProperties configProperties, SingleTestGenerator generator, FileSaver saver) { - this(configProperties, generator, saver, ContractFileScanner.builder() - .baseDir(configProperties.getContractsDslDir()).excluded(toSet(configProperties.getExcludedFiles())) - .ignored(toSet(configProperties.getIgnoredFiles())).included(toSet(configProperties.getIncludedFiles())) - .includeMatcher(configProperties.getIncludedContracts()).build()); + this(configProperties, generator, saver, + ContractFileScanner.builder() + .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) { @@ -133,8 +137,10 @@ public class TestGenerator { Set>> inProgress = inProgress(contracts); if (!inProgress.isEmpty() && configProperties.isFailOnInProgress()) { - String inProgressContractsPaths = inProgress.stream().map(Map.Entry::getKey).map(Path::toString) - .collect(Collectors.joining(",")); + 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]."); } @@ -142,14 +148,17 @@ public class TestGenerator { } private Set>> inProgress(MultiValueMap contracts) { - return contracts.entrySet().stream() - .filter(entry -> entry.getValue().stream().anyMatch(ContractMetadata::anyInProgress)) - .collect(Collectors.toSet()); + return contracts.entrySet() + .stream() + .filter(entry -> entry.getValue().stream().anyMatch(ContractMetadata::anyInProgress)) + .collect(Collectors.toSet()); } void processAll(MultiValueMap contracts, final String basePackageName) { - contracts.entrySet().stream().forEach( - entry -> processIncludedDirectory(relativizeContractPath(entry), entry.getValue(), basePackageName)); + contracts.entrySet() + .stream() + .forEach(entry -> processIncludedDirectory(relativizeContractPath(entry), entry.getValue(), + basePackageName)); } private String relativizeContractPath(Map.Entry> entry) { @@ -169,9 +178,9 @@ public class TestGenerator { convertIllegalPackageChars(includedDirectoryRelativePath)); Path classPath = saver.pathToClass(dir, convertedClassName); byte[] classBytes = generator - .buildClass(configProperties, contracts, includedDirectoryRelativePath, - new SingleTestGenerator.GeneratedClassData(convertedClassName, packageName, classPath)) - .getBytes(StandardCharsets.UTF_8); + .buildClass(configProperties, contracts, includedDirectoryRelativePath, + new SingleTestGenerator.GeneratedClassData(convertedClassName, packageName, classPath)) + .getBytes(StandardCharsets.UTF_8); saver.saveClassFile(classPath, classBytes); counter.incrementAndGet(); } 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 d45d36bd25..d80e3d0275 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 @@ -64,8 +64,9 @@ interface BodyMethodVisitor { */ default List filterVisitors(List methodVisitors, SingleContractMetadata singleContractMetadata) { - return methodVisitors.stream().filter(given -> given.accept(singleContractMetadata)) - .collect(Collectors.toList()); + return methodVisitors.stream() + .filter(given -> given.accept(singleContractMetadata)) + .collect(Collectors.toList()); } /** 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 20f9f7cb95..d04afc8d1c 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 @@ -101,8 +101,9 @@ interface BodyParser extends BodyThen { else if (bodyValue instanceof List) { // ["a=3", "b=4"] == "a=3&b=4" return ((List) bodyValue).stream() - .map(o -> convertUnicodeEscapesIfRequired(MapConverter.getTestSideValuesForText(o).toString())) - .collect(Collectors.joining("&")).toString(); + .map(o -> convertUnicodeEscapesIfRequired(MapConverter.getTestSideValuesForText(o).toString())) + .collect(Collectors.joining("&")) + .toString(); } else if (bodyValue instanceof String) { return (String) bodyValue; 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 1072373b26..e33ced95fe 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 @@ -54,7 +54,7 @@ interface CookieElementProcessor { if (value instanceof NotToEscapePattern) { verifyCookieNotNull(property); return comparisonBuilder().assertThat(cookieValue(property)) + comparisonBuilder() - .matches(((NotToEscapePattern) value).getServerValue().pattern().replace("\\", "\\\\")); + .matches(((NotToEscapePattern) value).getServerValue().pattern().replace("\\", "\\\\")); } else if (value instanceof String || value instanceof Pattern) { verifyCookieNotNull(property); diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeGiven.java index da720b7748..bcc5e00f0f 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeGiven.java @@ -37,7 +37,7 @@ class CustomModeGiven implements Given, BodyMethodVisitor, CustomModeAcceptor { this.blockBuilder = blockBuilder; this.generatedClassMetaData = generatedClassMetaData; this.requestGivens - .addAll(Collections.singletonList(new CustomModeRequestGiven(blockBuilder, generatedClassMetaData))); + .addAll(Collections.singletonList(new CustomModeRequestGiven(blockBuilder, generatedClassMetaData))); this.bodyGivens.addAll(Arrays.asList(new CustomModeMethodWithUrlGiven(blockBuilder, bodyParser), new CustomModeQueryParamsGiven(blockBuilder, bodyParser), new CustomModeSchemeProtocolGiven(blockBuilder), new CustomModeHeadersGiven(blockBuilder), @@ -56,10 +56,12 @@ class CustomModeGiven implements Given, BodyMethodVisitor, CustomModeAcceptor { } private void addRequestGivenLine(SingleContractMetadata singleContractMetadata) { - this.requestGivens.stream().filter(given -> given.accept(singleContractMetadata)).findFirst() - .orElseThrow(() -> new IllegalStateException( - "No matching request building Given implementation for a custom test mode")) - .apply(singleContractMetadata); + this.requestGivens.stream() + .filter(given -> given.accept(singleContractMetadata)) + .findFirst() + .orElseThrow(() -> new IllegalStateException( + "No matching request building Given implementation for a custom test mode")) + .apply(singleContractMetadata); } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeHeadersGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeHeadersGiven.java index 85095daf34..2e53d1680b 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeHeadersGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeHeadersGiven.java @@ -58,7 +58,7 @@ class CustomModeHeadersGiven implements Given { private String string(Header header) { return ".header(" + ContentHelper.getTestSideForNonBodyValue(header.getName()) + ", " + ContentHelper - .getTestSideForNonBodyValue(MapConverter.getTestSideValuesForNonBody(header.getServerValue())) + .getTestSideForNonBodyValue(MapConverter.getTestSideValuesForNonBody(header.getServerValue())) + ")"; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeQueryParamsGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeQueryParamsGiven.java index f86210fb49..d3719c75b4 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeQueryParamsGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeQueryParamsGiven.java @@ -57,8 +57,11 @@ class CustomModeQueryParamsGiven implements Given, CustomModeAcceptor, QueryPara } 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(); @@ -84,7 +87,7 @@ class CustomModeQueryParamsGiven implements Given, CustomModeAcceptor, QueryPara private String addQueryParameter(QueryParameter queryParam) { return "." + "queryParam(" + this.bodyParser.quotedLongText(queryParam.getName()) + "," + this.bodyParser - .quotedLongText(resolveParamValue(MapConverter.getTestSideValuesForNonBody(queryParam))) + ")"; + .quotedLongText(resolveParamValue(MapConverter.getTestSideValuesForNonBody(queryParam))) + ")"; } @Override diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeStatusCodeThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeStatusCodeThen.java index b71189da76..e570980a37 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeStatusCodeThen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeStatusCodeThen.java @@ -33,9 +33,10 @@ class CustomModeStatusCodeThen implements Then { @Override public MethodVisitor apply(SingleContractMetadata metadata) { Response response = metadata.getContract().getResponse(); - this.blockBuilder.addIndented( - this.comparisonBuilder.assertThat("response.statusCode()", response.getStatus().getServerValue())) - .addEndingIfNotPresent(); + 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/CustomModeWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeWhen.java index 910ce758b3..4945203dee 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeWhen.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/CustomModeWhen.java @@ -45,9 +45,12 @@ class CustomModeWhen implements When, BodyMethodVisitor, CustomModeAcceptor { } 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")) - .apply(singleContractMetadata); + this.responseWhens.stream() + .filter(when -> when.accept(singleContractMetadata)) + .findFirst() + .orElseThrow(() -> new IllegalStateException( + "No matching request building When implementation for Rest Assured")) + .apply(singleContractMetadata); } @Override 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 cd87ba8303..11ec8779f3 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 @@ -41,8 +41,10 @@ class DefaultJsonStaticImports implements Imports { @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/GeneratedClassMetaData.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/GeneratedClassMetaData.java index d10efbdab5..a6b14a53fd 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 @@ -49,8 +49,9 @@ class GeneratedClassMetaData { } Collection toSingleContractMetadata() { - return this.listOfFiles.stream().flatMap(metadata -> metadata.getConvertedContractWithMetadata().stream()) - .collect(Collectors.toList()); + return this.listOfFiles.stream() + .flatMap(metadata -> metadata.getConvertedContractWithMetadata().stream()) + .collect(Collectors.toList()); } boolean isAnyJson() { 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 9aef2d4702..d907aca107 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 @@ -126,11 +126,14 @@ 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.setupLineEnding().setupLabelPrefix() - // package com.example - .packageDefinition(); + 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(); // \n this.blockBuilder.addEmptyLine(); // import ... \n 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 41207d5a00..976333159c 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 @@ -42,11 +42,11 @@ class GenericHttpBodyThen implements Then, BodyMethodVisitor { 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 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 04b399bd72..f628f0f38d 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 @@ -39,8 +39,9 @@ class JUnit4IgnoreImports implements Imports { public boolean accept() { return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT && this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(metadata -> metadata.isIgnored() || metadata.getConvertedContractWithMetadata() - .stream().anyMatch(m -> m.isIgnored() || m.isInProgress())); + .anyMatch(metadata -> metadata.isIgnored() || metadata.getConvertedContractWithMetadata() + .stream() + .anyMatch(m -> m.isIgnored() || m.isInProgress())); } } 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 901bfba735..81e50f5074 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 @@ -39,8 +39,9 @@ class JUnit5IgnoreImports implements Imports { public boolean accept() { return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.JUNIT5 && this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(metadata -> metadata.isIgnored() || metadata.getConvertedContractWithMetadata() - .stream().anyMatch(m -> m.isIgnored() || m.isInProgress())); + .anyMatch(metadata -> metadata.isIgnored() || metadata.getConvertedContractWithMetadata() + .stream() + .anyMatch(m -> m.isIgnored() || m.isInProgress())); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaMultipartGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaMultipartGiven.java index 9595ccb61d..5d505a2043 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaMultipartGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JavaMultipartGiven.java @@ -47,7 +47,7 @@ class JavaMultipartGiven implements Given, RestAssuredAcceptor { @Override public MethodVisitor apply(SingleContractMetadata metadata) { getMultipartParameters(metadata).entrySet() - .forEach(entry -> this.blockBuilder.addLine(getMultipartParameterLine(metadata, entry))); + .forEach(entry -> this.blockBuilder.addLine(getMultipartParameterLine(metadata, entry))); return this; } 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 aaa4b54ff9..6b67c63ed6 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 @@ -43,8 +43,11 @@ class JaxRsRequestCookiesWhen implements When { } private void appendCookies(Request request) { - Iterator iterator = request.getCookies().getEntries().stream() - .filter(cookie -> !cookieOfAbsentType(cookie)).iterator(); + Iterator iterator = request.getCookies() + .getEntries() + .stream() + .filter(cookie -> !cookieOfAbsentType(cookie)) + .iterator(); while (iterator.hasNext()) { Cookie cookie = iterator.next(); String value = ".cookie(" + this.bodyParser.quotedShortText(cookie.getKey()) + ", " 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 98b478d313..9b23d2844d 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,8 +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) + ")"; 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 0951472e8d..b7d935f4e6 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,8 +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 ""; } 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 6d5c8e6759..921cccdae6 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,10 @@ 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())) - .addEndingIfNotPresent(); + 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/JaxRsUrlPathWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/JaxRsUrlPathWhen.java index c0d6268190..602ab83580 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 @@ -71,8 +71,10 @@ 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 queryParamValue = getQueryParamValue(param); 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 eb844faff9..f813b35309 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 @@ -37,12 +37,12 @@ class JaxRsWhen implements When, BodyMethodVisitor, JaxRsAcceptor { this.generatedClassMetaData = generatedClassMetaData; this.bodyParser = bodyParser; this.whens - .addAll(Arrays.asList(new JaxRsUrlPathWhen(this.blockBuilder, this.generatedClassMetaData, bodyParser), - new JaxRsRequestWhen(this.blockBuilder, this.generatedClassMetaData), - new JaxRsRequestHeadersWhen(this.blockBuilder, bodyParser), - new JaxRsRequestCookiesWhen(this.blockBuilder, bodyParser), - new JaxRsRequestMethodWhen(this.blockBuilder, this.generatedClassMetaData), - new JaxRsRequestInvokerWhen(this.blockBuilder))); + .addAll(Arrays.asList(new JaxRsUrlPathWhen(this.blockBuilder, this.generatedClassMetaData, bodyParser), + new JaxRsRequestWhen(this.blockBuilder, this.generatedClassMetaData), + new JaxRsRequestHeadersWhen(this.blockBuilder, bodyParser), + new JaxRsRequestCookiesWhen(this.blockBuilder, bodyParser), + new JaxRsRequestMethodWhen(this.blockBuilder, this.generatedClassMetaData), + new JaxRsRequestInvokerWhen(this.blockBuilder))); } @Override 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 1868fb4858..af1663a871 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 @@ -110,7 +110,7 @@ class JsonBodyVerificationBuilder implements BodyMethodGeneration, ClassVerifier convertedResponseBody = MapConverter.transformValues(convertedResponseBody, returnReferencedEntries(templateModel), parsingFunction); JsonPaths jsonPaths = new JsonToJsonPathsConverter(assertJsonSize) - .transformToJsonPathWithTestsSideValues(convertedResponseBody, parsingFunction, includeEmptyCheck); + .transformToJsonPathWithTestsSideValues(convertedResponseBody, parsingFunction, includeEmptyCheck); DocumentContext finalParsedRequestBody = parsedRequestBody; jsonPaths.forEach(it -> { @@ -214,12 +214,10 @@ class JsonBodyVerificationBuilder implements BodyMethodGeneration, ClassVerifier Object object = parsedRequestBody.read(jsonPathEntry); if (!(object instanceof String)) { return method - .replace('"' + contractTemplate.escapedOpeningTemplate(), - contractTemplate.escapedOpeningTemplate()) - .replace(contractTemplate.escapedClosingTemplate() + '"', - contractTemplate.escapedClosingTemplate()) - .replace('"' + contractTemplate.openingTemplate(), contractTemplate.openingTemplate()) - .replace(contractTemplate.closingTemplate() + '"', contractTemplate.closingTemplate()); + .replace('"' + contractTemplate.escapedOpeningTemplate(), contractTemplate.escapedOpeningTemplate()) + .replace(contractTemplate.escapedClosingTemplate() + '"', contractTemplate.escapedClosingTemplate()) + .replace('"' + contractTemplate.openingTemplate(), contractTemplate.openingTemplate()) + .replace(contractTemplate.closingTemplate() + '"', contractTemplate.closingTemplate()); } } return method; 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 f506dcc4cf..f8c8a6e22d 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 @@ -41,8 +41,10 @@ class JsonPathImports implements Imports { @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 942eb36598..77e52b396a 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 @@ -29,7 +29,7 @@ class MessagingAssertThatThen implements Then { @Override public MethodVisitor apply(SingleContractMetadata metadata) { this.blockBuilder - .addLineWithEnding(metadata.getContract().getOutputMessage().getAssertThat().getExecutionCommand()); + .addLineWithEnding(metadata.getContract().getOutputMessage().getAssertThat().getExecutionCommand()); return this; } 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 e0f1cc4a39..c3ec397689 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 @@ -50,8 +50,9 @@ class MessagingBodyThen implements Then, BodyMethodVisitor { public MethodVisitor apply(SingleContractMetadata singleContractMetadata) { endBodyBlock(this.blockBuilder); startBodyBlock(this.blockBuilder, "and:"); - this.thens.stream().filter(then -> then.accept(singleContractMetadata)) - .forEach(then -> then.apply(singleContractMetadata)); + this.thens.stream() + .filter(then -> then.accept(singleContractMetadata)) + .forEach(then -> then.apply(singleContractMetadata)); 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 80013ec133..a7fcab1baa 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 @@ -42,8 +42,10 @@ 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/MessagingHeadersThen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/MessagingHeadersThen.java index 0c88cf5f7b..6a5a847ae4 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 @@ -52,8 +52,8 @@ class MessagingHeadersThen implements Then, BodyMethodVisitor { } 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) { @@ -79,8 +79,8 @@ class MessagingHeadersThen implements Then, BodyMethodVisitor { 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) { 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 7c90afcc6f..fae3d9654d 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 @@ -44,8 +44,10 @@ class MessagingImports implements Imports { @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 b982c01f86..4dfc72285e 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 @@ -43,11 +43,14 @@ class MessagingReceiveMessageThen implements Then, BodyMethodVisitor { OutputMessage outputMessage = singleContractMetadata.getContract().getOutputMessage(); this.bodyReader.storeContractAsYaml(singleContractMetadata); this.blockBuilder - .addIndented("ContractVerifierMessage response = contractVerifierMessaging.receive(" - + sentToValue(outputMessage.getSentTo().getServerValue()) + ",") - .addEmptyLine().indent() - .addIndented("contract(this, \"" + singleContractMetadata.methodName() + ".yml\"))").unindent() - .addEndingIfNotPresent().addEmptyLine(); + .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")); return this; } 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 2f7cfe419a..2a64c1ab06 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 @@ -43,8 +43,10 @@ class MessagingStaticImports implements Imports { @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 0bcebc5bbb..166b2c5765 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 @@ -29,7 +29,7 @@ class MessagingTriggeredByWhen implements When { @Override public MethodVisitor apply(SingleContractMetadata metadata) { this.blockBuilder.addIndented(metadata.getContract().getInput().getTriggeredBy().getExecutionCommand()) - .addEndingIfNotPresent(); + .addEndingIfNotPresent(); return this; } 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 194a4e8d53..d484257041 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 @@ -58,7 +58,7 @@ class MockMvcHeadersGiven implements Given { private String string(Header header) { return ".header(" + ContentHelper.getTestSideForNonBodyValue(header.getName()) + ", " + ContentHelper - .getTestSideForNonBodyValue(MapConverter.getTestSideValuesForNonBody(header.getServerValue())) + .getTestSideForNonBodyValue(MapConverter.getTestSideValuesForNonBody(header.getServerValue())) + ")"; } 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 9439ec07bf..5a6ff231d2 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 @@ -60,8 +60,11 @@ 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(); 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 84e15323ba..e29e948657 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 @@ -40,12 +40,12 @@ class RestAssuredGiven implements Given, BodyMethodVisitor, RestAssuredAcceptor 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 JavaMultipartGiven(blockBuilder, generatedClassMetaData, bodyParser), - new SpockMockMvcMultipartGiven(blockBuilder, generatedClassMetaData, bodyParser), - new SpockExplicitMultipartGiven(blockBuilder, generatedClassMetaData, bodyParser), - new SpockWebTestClientMultipartGiven(blockBuilder, generatedClassMetaData, bodyParser))); + .addAll(Arrays.asList(new MockMvcHeadersGiven(blockBuilder), new MockMvcCookiesGiven(blockBuilder), + new MockMvcBodyGiven(blockBuilder, generatedClassMetaData, bodyParser), + new JavaMultipartGiven(blockBuilder, generatedClassMetaData, bodyParser), + new SpockMockMvcMultipartGiven(blockBuilder, generatedClassMetaData, bodyParser), + new SpockExplicitMultipartGiven(blockBuilder, generatedClassMetaData, bodyParser), + new SpockWebTestClientMultipartGiven(blockBuilder, generatedClassMetaData, bodyParser))); } @Override @@ -58,9 +58,12 @@ class RestAssuredGiven implements Given, BodyMethodVisitor, RestAssuredAcceptor } 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")) - .apply(singleContractMetadata); + this.requestGivens.stream() + .filter(given -> given.accept(singleContractMetadata)) + .findFirst() + .orElseThrow(() -> new IllegalStateException( + "No matching request building Given implementation for Rest Assured")) + .apply(singleContractMetadata); } @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 0bf1be99c2..5bdf2a7ca0 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 @@ -33,9 +33,10 @@ 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())) - .addEndingIfNotPresent(); + 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/RestAssuredWhen.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/RestAssuredWhen.java index 84dc095783..85af11c803 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 @@ -54,9 +54,12 @@ class RestAssuredWhen implements When, BodyMethodVisitor, RestAssuredAcceptor { } 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")) - .apply(singleContractMetadata); + this.responseWhens.stream() + .filter(when -> when.accept(singleContractMetadata)) + .findFirst() + .orElseThrow(() -> new IllegalStateException( + "No matching request building When implementation for Rest Assured")) + .apply(singleContractMetadata); } @Override 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 bd23b0d0a4..29f1616c79 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 @@ -90,29 +90,29 @@ class SingleMethodBuilder { SingleMethodBuilder restAssured() { return given(new JavaRestAssuredGiven(this.blockBuilder, this.generatedClassMetaData)) - .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)); + .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 customMode() { return given(new CustomModeGiven(this.blockBuilder, this.generatedClassMetaData, CustomModeBodyParser.INSTANCE)) - .when(new CustomModeWhen(this.blockBuilder, this.generatedClassMetaData)) - .then(new CustomModeThen(this.blockBuilder, this.generatedClassMetaData, CustomModeBodyParser.INSTANCE, - ComparisonBuilder.JAVA_HTTP_INSTANCE)) - .methodPostProcessor(new TemplateUpdatingMethodPostProcessor(this.blockBuilder)); + .when(new CustomModeWhen(this.blockBuilder, this.generatedClassMetaData)) + .then(new CustomModeThen(this.blockBuilder, this.generatedClassMetaData, CustomModeBodyParser.INSTANCE, + ComparisonBuilder.JAVA_HTTP_INSTANCE)) + .methodPostProcessor(new TemplateUpdatingMethodPostProcessor(this.blockBuilder)); } SingleMethodBuilder jaxRs() { return given(new JaxRsGiven(this.generatedClassMetaData)) - .when(new JavaJaxRsWhen(this.blockBuilder, this.generatedClassMetaData)) - .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)); + .when(new JavaJaxRsWhen(this.blockBuilder, this.generatedClassMetaData)) + .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)); } SingleMethodBuilder messaging() { @@ -205,14 +205,17 @@ 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")); + return this.methodMetadata.stream() + .filter(Acceptor::accept) + .findFirst() + .orElseThrow(() -> new IllegalStateException("No matching method metadata found")); } private boolean visit(List list, SingleContractMetadata metaData) { @@ -220,8 +223,9 @@ class SingleMethodBuilder { } private boolean visit(List list, SingleContractMetadata metaData, boolean addLineEnding) { - List visitors = list.stream().filter(o -> o.accept(metaData)) - .collect(Collectors.toList()); + 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/SpockExplicitMultipartGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockExplicitMultipartGiven.java index ba341ed66c..229baec1bb 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockExplicitMultipartGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockExplicitMultipartGiven.java @@ -30,7 +30,7 @@ class SpockExplicitMultipartGiven implements Given, ExplicitAcceptor { @Override public MethodVisitor apply(SingleContractMetadata metadata) { getMultipartParameters(metadata).entrySet() - .forEach(entry -> this.blockBuilder.addLine(getMultipartParameterLine(metadata, entry))); + .forEach(entry -> this.blockBuilder.addLine(getMultipartParameterLine(metadata, entry))); return this; } 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 e1afb5d80c..2582a3eddd 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 @@ -39,8 +39,9 @@ class SpockIgnoreImports implements Imports { public boolean accept() { return this.generatedClassMetaData.configProperties.getTestFramework() == TestFramework.SPOCK && this.generatedClassMetaData.listOfFiles.stream() - .anyMatch(metadata -> metadata.isIgnored() || metadata.getConvertedContractWithMetadata() - .stream().anyMatch(m -> m.isIgnored() || m.isInProgress())); + .anyMatch(metadata -> metadata.isIgnored() || metadata.getConvertedContractWithMetadata() + .stream() + .anyMatch(m -> m.isIgnored() || m.isInProgress())); } } 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 68effa8986..f8f002e526 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 @@ -46,7 +46,7 @@ class SpockMockMvcMultipartGiven implements Given, MockMvcAcceptor { @Override public MethodVisitor apply(SingleContractMetadata metadata) { getMultipartParameters(metadata).entrySet() - .forEach(entry -> this.blockBuilder.addLine(getMultipartParameterLine(metadata, entry))); + .forEach(entry -> this.blockBuilder.addLine(getMultipartParameterLine(metadata, entry))); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockWebTestClientMultipartGiven.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockWebTestClientMultipartGiven.java index c7f754bcc2..90baf61f5a 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockWebTestClientMultipartGiven.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/SpockWebTestClientMultipartGiven.java @@ -30,7 +30,7 @@ public class SpockWebTestClientMultipartGiven implements Given, WebTestClientAcc @Override public MethodVisitor apply(SingleContractMetadata metadata) { getMultipartParameters(metadata).entrySet() - .forEach(entry -> this.blockBuilder.addLine(getMultipartParameterLine(metadata, entry))); + .forEach(entry -> this.blockBuilder.addLine(getMultipartParameterLine(metadata, entry))); return this; } 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 b8423cb3cf..5fc19f87cc 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 @@ -133,19 +133,22 @@ public class TestSideRequestTemplateModel { if (!headersEntriesPresent) { return new HashMap<>(); } - return new HashMap<>(request.getHeaders().getEntries().stream() - .collect(Collectors.groupingBy(Header::getName, - Collectors.mapping((Function) o -> MapConverter.getTestSideValues(o).toString(), - Collectors.toList())))); + return new HashMap<>(request.getHeaders() + .getEntries() + .stream() + .collect(Collectors.groupingBy(Header::getName, + Collectors.mapping((Function) o -> MapConverter.getTestSideValues(o).toString(), + Collectors.toList())))); } 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("&"))) - .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; } @@ -153,8 +156,10 @@ public class TestSideRequestTemplateModel { if (queryParameters == null) { return new HashMap<>(); } - return new HashMap<>(queryParameters.getParameters().stream().collect(Collectors.groupingBy( - QueryParameter::getName, Collectors.mapping(MapConverter::getTestSideValues, Collectors.toList())))); + return new HashMap<>(queryParameters.getParameters() + .stream() + .collect(Collectors.groupingBy(QueryParameter::getName, + Collectors.mapping(MapConverter::getTestSideValues, Collectors.toList())))); } private static List buildPathsFromUrl(String url) { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/UserImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/UserImports.java index 476ba9ef9a..e7f5e22533 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/UserImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/UserImports.java @@ -32,7 +32,7 @@ class UserImports implements Imports { @Override public Imports call() { Arrays.stream(this.generatedClassMetaData.configProperties.getImports()) - .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); + .forEach(s -> this.blockBuilder.addLineWithEnding("import " + s)); return this; } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/UserStaticImports.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/UserStaticImports.java index 964ffd2b31..7ddeb7f9ab 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/UserStaticImports.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/UserStaticImports.java @@ -32,7 +32,7 @@ class UserStaticImports implements Imports { @Override public Imports call() { Arrays.stream(this.generatedClassMetaData.configProperties.getStaticImports()) - .forEach(s -> this.blockBuilder.addLineWithEnding("import static " + s)); + .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/XmlBodyVerificationBuilder.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/XmlBodyVerificationBuilder.java index 82149eca2c..17f0d16eb8 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 @@ -39,14 +39,16 @@ class XmlBodyVerificationBuilder implements BodyMethodGeneration { } 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 + ")))") - .forEach(it -> { - blockBuilder.addLine(it); - addColonIfRequired(lineSuffix, blockBuilder); - }); + Arrays + .asList("DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance()", + "builderFactory.setNamespaceAware(true)", + "DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder()", + "Document parsedXml = documentBuilder.parse(new InputSource(new StringReader(" + responseString + + ")))") + .forEach(it -> { + blockBuilder.addLine(it); + addColonIfRequired(lineSuffix, blockBuilder); + }); } @Override 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 95e161cf24..31333abc2b 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 @@ -43,8 +43,10 @@ class XmlImports implements Imports { @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/config/TestFramework.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/TestFramework.java index d1b9590b3e..cbe99e3197 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 @@ -28,7 +28,6 @@ import org.springframework.cloud.contract.verifier.config.framework.TestNGDefini * * @author Jakub Kubrynski, codearte.io * @author Olga Maciaszek-Sharma - * * @since 1.0.0 */ public enum TestFramework { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/TestMode.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/TestMode.java index 6cb03a421f..6cdb8fc9e0 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/TestMode.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/config/TestMode.java @@ -22,7 +22,6 @@ import org.springframework.cloud.contract.verifier.http.HttpVerifier; * Provides different testing modes. * * @author Jakub Kubrynski, codearte.io - * * @since 1.0.0 */ public enum TestMode { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/ContractsToYaml.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/ContractsToYaml.java index 3b4499d40c..699132c332 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/ContractsToYaml.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/ContractsToYaml.java @@ -148,11 +148,14 @@ class ContractsToYaml { map.forEach((key, value) -> { if (value instanceof NamedProperty) { Object fileName = Optional.ofNullable(((NamedProperty) value).getName()) - .map(DslProperty::getClientValue).orElse(null); + .map(DslProperty::getClientValue) + .orElse(null); Object fileContent = Optional.ofNullable(((NamedProperty) value).getValue()) - .map(DslProperty::getClientValue).orElse(null); + .map(DslProperty::getClientValue) + .orElse(null); Object contentType = Optional.ofNullable(((NamedProperty) value).getContentType()) - .map(DslProperty::getClientValue).orElse(null); + .map(DslProperty::getClientValue) + .orElse(null); if (fileName instanceof RegexProperty || fileContent instanceof RegexProperty || contentType instanceof RegexProperty) { YamlContract.MultipartNamedStubMatcher multipartNamedStubMatcher = new YamlContract.MultipartNamedStubMatcher(); @@ -176,8 +179,9 @@ class ContractsToYaml { } private void mapRequestMatchersUrl(YamlContract.Request yamlContractRequest, Request request) { - Object url = Optional.ofNullable(request.getUrl()).map(Url::getClientValue) - .orElse(Optional.ofNullable(request.getUrlPath()).map(Url::getClientValue).orElse(null)); + Object url = Optional.ofNullable(request.getUrl()) + .map(Url::getClientValue) + .orElse(Optional.ofNullable(request.getUrlPath()).map(Url::getClientValue).orElse(null)); YamlContract.KeyValueMatcher keyValueMatcher = new YamlContract.KeyValueMatcher(); if (url instanceof RegexProperty) { keyValueMatcher.regex = ((RegexProperty) url).pattern(); @@ -197,16 +201,17 @@ class ContractsToYaml { } private void mapRequestMatchersBody(YamlContract.Request yamlContractRequest, Request request) { - Optional.ofNullable(request.getBodyMatchers()).map(BodyMatchers::matchers) - .ifPresent(bodyMatchers -> bodyMatchers.forEach(bodyMatcher -> { - YamlContract.BodyStubMatcher bodyStubMatcher = new YamlContract.BodyStubMatcher(); - bodyStubMatcher.path = bodyMatcher.path(); - bodyStubMatcher.type = stubMatcherType(bodyMatcher.matchingType()); - bodyStubMatcher.value = Optional.ofNullable(bodyMatcher.value()).map(Object::toString).orElse(null); - bodyStubMatcher.minOccurrence = bodyMatcher.minTypeOccurrence(); - bodyStubMatcher.maxOccurrence = bodyMatcher.maxTypeOccurrence(); - yamlContractRequest.matchers.body.add(bodyStubMatcher); - })); + Optional.ofNullable(request.getBodyMatchers()) + .map(BodyMatchers::matchers) + .ifPresent(bodyMatchers -> bodyMatchers.forEach(bodyMatcher -> { + YamlContract.BodyStubMatcher bodyStubMatcher = new YamlContract.BodyStubMatcher(); + bodyStubMatcher.path = bodyMatcher.path(); + bodyStubMatcher.type = stubMatcherType(bodyMatcher.matchingType()); + bodyStubMatcher.value = Optional.ofNullable(bodyMatcher.value()).map(Object::toString).orElse(null); + bodyStubMatcher.minOccurrence = bodyMatcher.minTypeOccurrence(); + bodyStubMatcher.maxOccurrence = bodyMatcher.maxTypeOccurrence(); + yamlContractRequest.matchers.body.add(bodyStubMatcher); + })); } private void mapRequestMultipart(YamlContract.Request yamlContractRequest, Request request) { @@ -217,22 +222,29 @@ class ContractsToYaml { map.forEach((key, value) -> { if (value instanceof NamedProperty) { Object fileName = Optional.ofNullable(((NamedProperty) value).getName()) - .map(DslProperty::getServerValue).orElse(null); + .map(DslProperty::getServerValue) + .orElse(null); Object contentType = Optional.ofNullable(((NamedProperty) value).getContentType()) - .map(DslProperty::getServerValue).orElse(null); + .map(DslProperty::getServerValue) + .orElse(null); Object fileContent = Optional.ofNullable(((NamedProperty) value).getValue()) - .map(DslProperty::getServerValue).orElse(null); + .map(DslProperty::getServerValue) + .orElse(null); YamlContract.Named named = new YamlContract.Named(); named.paramName = key; named.fileName = fileName instanceof String ? Optional.ofNullable(((NamedProperty) value).getName()) - .map(DslProperty::getServerValue).map(Object::toString).orElse(null) : null; - named.fileContent = (String) Optional.ofNullable(fileContent).filter(f -> f instanceof String) - .orElse(null); + .map(DslProperty::getServerValue) + .map(Object::toString) + .orElse(null) : null; + named.fileContent = (String) Optional.ofNullable(fileContent) + .filter(f -> f instanceof String) + .orElse(null); named.fileContentAsBytes = fileContent instanceof FromFileProperty ? new String(((FromFileProperty) fileContent).asBytes()) : null; named.fileContentFromFileAsBytes = resolveFileNameAsBytes(fileContent); - named.contentType = (String) Optional.ofNullable(contentType).filter(f -> f instanceof String) - .orElse(null); + named.contentType = (String) Optional.ofNullable(contentType) + .filter(f -> f instanceof String) + .orElse(null); named.fileNameCommand = fileName instanceof ExecutionProperty ? fileName.toString() : null; named.fileContentCommand = fileContent instanceof ExecutionProperty ? fileContent.toString() : null; named.contentTypeCommand = contentType instanceof ExecutionProperty ? contentType.toString() : null; @@ -262,8 +274,9 @@ class ContractsToYaml { } private void mapRequestCookies(YamlContract.Request yamlContractRequest, Request request) { - yamlContractRequest.cookies = Optional.ofNullable(request.getCookies()).map(Cookies::asTestSideMap) - .orElse(null); + yamlContractRequest.cookies = Optional.ofNullable(request.getCookies()) + .map(Cookies::asTestSideMap) + .orElse(null); } private void mapRequestHeaders(YamlContract.Request yamlContractRequest, Request request) { @@ -278,32 +291,34 @@ class ContractsToYaml { private void mapRequestMatchersQueryParameters(YamlContract.Request yamlContractRequest, Url requestUrl) { yamlContractRequest.matchers.queryParameters - .addAll(requestUrl.getQueryParameters().getParameters().stream().map(parameter -> { - Object stubSide = parameter.getClientValue(); - if (stubSide instanceof RegexProperty || stubSide instanceof Pattern) { - YamlContract.QueryParameterMatcher queryParameterMatcher = new YamlContract.QueryParameterMatcher(); - queryParameterMatcher.key = parameter.getName(); - queryParameterMatcher.type = YamlContract.MatchingType.matching; - queryParameterMatcher.value = new RegexProperty(stubSide).pattern(); - return queryParameterMatcher; - } - else if (stubSide instanceof MatchingStrategy) { - YamlContract.QueryParameterMatcher queryParameterMatcher = new YamlContract.QueryParameterMatcher(); - queryParameterMatcher.key = parameter.getName(); - queryParameterMatcher.type = YamlContract.MatchingType - .from(((MatchingStrategy) stubSide).getType().getName()); - queryParameterMatcher.value = MapConverter.getStubSideValuesForNonBody(stubSide); - return queryParameterMatcher; - } - else { - return null; - } - }).filter(Objects::nonNull).collect(Collectors.toList())); + .addAll(requestUrl.getQueryParameters().getParameters().stream().map(parameter -> { + Object stubSide = parameter.getClientValue(); + if (stubSide instanceof RegexProperty || stubSide instanceof Pattern) { + YamlContract.QueryParameterMatcher queryParameterMatcher = new YamlContract.QueryParameterMatcher(); + queryParameterMatcher.key = parameter.getName(); + queryParameterMatcher.type = YamlContract.MatchingType.matching; + queryParameterMatcher.value = new RegexProperty(stubSide).pattern(); + return queryParameterMatcher; + } + else if (stubSide instanceof MatchingStrategy) { + YamlContract.QueryParameterMatcher queryParameterMatcher = new YamlContract.QueryParameterMatcher(); + queryParameterMatcher.key = parameter.getName(); + queryParameterMatcher.type = YamlContract.MatchingType + .from(((MatchingStrategy) stubSide).getType().getName()); + queryParameterMatcher.value = MapConverter.getStubSideValuesForNonBody(stubSide); + return queryParameterMatcher; + } + else { + return null; + } + }).filter(Objects::nonNull).collect(Collectors.toList())); } private void mapRequestQueryParameters(YamlContract.Request yamlContractRequest, Url requestUrl) { - yamlContractRequest.queryParameters = requestUrl.getQueryParameters().getParameters().stream() - .collect(Collectors.toMap(QueryParameter::getName, MapConverter::getTestSideValuesForNonBody)); + yamlContractRequest.queryParameters = requestUrl.getQueryParameters() + .getParameters() + .stream() + .collect(Collectors.toMap(QueryParameter::getName, MapConverter::getTestSideValuesForNonBody)); } private void mapRequestMatchers(YamlContract.Request yamlContractRequest) { @@ -311,18 +326,21 @@ class ContractsToYaml { } private void mapRequestUrlPath(YamlContract.Request yamlContractRequest, Request request) { - yamlContractRequest.urlPath = Optional.ofNullable(request.getUrlPath()).map(m -> m.getServerValue().toString()) - .orElse(null); + yamlContractRequest.urlPath = Optional.ofNullable(request.getUrlPath()) + .map(m -> m.getServerValue().toString()) + .orElse(null); } private void mapRequestUrl(YamlContract.Request yamlContractRequest, Request request) { - yamlContractRequest.url = Optional.ofNullable(request.getUrl()).map(m -> m.getServerValue().toString()) - .orElse(null); + yamlContractRequest.url = Optional.ofNullable(request.getUrl()) + .map(m -> m.getServerValue().toString()) + .orElse(null); } private void mapRequestMethod(YamlContract.Request yamlContractRequest, Request request) { - yamlContractRequest.method = Optional.ofNullable(request.getMethod()).map(m -> m.getServerValue().toString()) - .orElse(null); + yamlContractRequest.method = Optional.ofNullable(request.getMethod()) + .map(m -> m.getServerValue().toString()) + .orElse(null); } protected void output(Contract contract, YamlContract yamlContract) { @@ -335,20 +353,21 @@ class ContractsToYaml { yamlContract.outputMessage = new YamlContract.OutputMessage(); yamlContract.outputMessage.sentTo = MapConverter.getStubSideValues(outputMessage.getSentTo()).toString(); yamlContract.outputMessage.headers = Optional.ofNullable(outputMessage.getHeaders()) - .map(Headers::asStubSideMap).orElse(null); + .map(Headers::asStubSideMap) + .orElse(null); yamlContract.outputMessage.body = MapConverter.getStubSideValues(outputMessage.getBody()); - Optional.ofNullable(outputMessage.getBodyMatchers()).map(BodyMatchers::matchers) - .ifPresent(bodyMatchers -> bodyMatchers.forEach(bodyMatcher -> { - YamlContract.BodyTestMatcher bodyTestMatcher = new YamlContract.BodyTestMatcher(); - bodyTestMatcher.path = bodyMatcher.path(); - bodyTestMatcher.type = testMatcherType(bodyMatcher.matchingType()); - bodyTestMatcher.value = Optional.ofNullable(bodyMatcher.value()).map(Object::toString) - .orElse(null); - bodyTestMatcher.minOccurrence = bodyMatcher.minTypeOccurrence(); - bodyTestMatcher.maxOccurrence = bodyMatcher.maxTypeOccurrence(); - yamlContract.outputMessage.matchers.body.add(bodyTestMatcher); + Optional.ofNullable(outputMessage.getBodyMatchers()) + .map(BodyMatchers::matchers) + .ifPresent(bodyMatchers -> bodyMatchers.forEach(bodyMatcher -> { + YamlContract.BodyTestMatcher bodyTestMatcher = new YamlContract.BodyTestMatcher(); + bodyTestMatcher.path = bodyMatcher.path(); + bodyTestMatcher.type = testMatcherType(bodyMatcher.matchingType()); + bodyTestMatcher.value = Optional.ofNullable(bodyMatcher.value()).map(Object::toString).orElse(null); + bodyTestMatcher.minOccurrence = bodyMatcher.minTypeOccurrence(); + bodyTestMatcher.maxOccurrence = bodyMatcher.maxTypeOccurrence(); + yamlContract.outputMessage.matchers.body.add(bodyTestMatcher); - })); + })); if (XML != contentType) { setOutputBodyMatchers(outputMessage.getBody(), yamlContract.outputMessage.matchers.body); } @@ -361,13 +380,15 @@ class ContractsToYaml { if (input != null) { yamlContract.input = new YamlContract.Input(); yamlContract.input.assertThat = Optional.ofNullable(input.getAssertThat()) - .map(assertThat -> MapConverter - .getTestSideValues(assertThat.toString(), MapConverter.JSON_PARSING_FUNCTION).toString()) - .orElse(null); + .map(assertThat -> MapConverter + .getTestSideValues(assertThat.toString(), MapConverter.JSON_PARSING_FUNCTION) + .toString()) + .orElse(null); yamlContract.input.triggeredBy = Optional.ofNullable(input.getTriggeredBy()) - .map(triggeredBy -> MapConverter - .getTestSideValues(triggeredBy.toString(), MapConverter.JSON_PARSING_FUNCTION).toString()) - .orElse(null); + .map(triggeredBy -> MapConverter + .getTestSideValues(triggeredBy.toString(), MapConverter.JSON_PARSING_FUNCTION) + .toString()) + .orElse(null); } } @@ -380,12 +401,15 @@ class ContractsToYaml { } protected YamlContract.ValueMatcher valueMatcher(Object o) { - return Optional.ofNullable(o).filter(object -> object instanceof RegexProperty) - .map(object -> (RegexProperty) object).map(regexProperty -> { - YamlContract.ValueMatcher valueMatcher = new YamlContract.ValueMatcher(); - valueMatcher.regex = regexProperty.pattern(); - return valueMatcher; - }).orElse(null); + return Optional.ofNullable(o) + .filter(object -> object instanceof RegexProperty) + .map(object -> (RegexProperty) object) + .map(regexProperty -> { + YamlContract.ValueMatcher valueMatcher = new YamlContract.ValueMatcher(); + valueMatcher.regex = regexProperty.pattern(); + return valueMatcher; + }) + .orElse(null); } protected void setInputBodyMatchers(DslProperty body, List bodyMatchers) { @@ -432,16 +456,17 @@ class ContractsToYaml { } private void mapResponseBodyMatchers(Response contractResponse, YamlContract.Response response) { - Optional.ofNullable(contractResponse.getBodyMatchers()).map(BodyMatchers::matchers) - .ifPresent(bodyMatchers -> bodyMatchers.forEach((bodyMatcher) -> { - YamlContract.BodyTestMatcher bodyTestMatcher = new YamlContract.BodyTestMatcher(); - bodyTestMatcher.path = bodyMatcher.path(); - bodyTestMatcher.type = testMatcherType(bodyMatcher.matchingType()); - bodyTestMatcher.value = Optional.ofNullable(bodyMatcher.value()).map(Object::toString).orElse(null); - bodyTestMatcher.minOccurrence = bodyMatcher.minTypeOccurrence(); - bodyTestMatcher.maxOccurrence = bodyMatcher.maxTypeOccurrence(); - response.matchers.body.add(bodyTestMatcher); - })); + Optional.ofNullable(contractResponse.getBodyMatchers()) + .map(BodyMatchers::matchers) + .ifPresent(bodyMatchers -> bodyMatchers.forEach((bodyMatcher) -> { + YamlContract.BodyTestMatcher bodyTestMatcher = new YamlContract.BodyTestMatcher(); + bodyTestMatcher.path = bodyMatcher.path(); + bodyTestMatcher.type = testMatcherType(bodyMatcher.matchingType()); + bodyTestMatcher.value = Optional.ofNullable(bodyMatcher.value()).map(Object::toString).orElse(null); + bodyTestMatcher.minOccurrence = bodyMatcher.minTypeOccurrence(); + bodyTestMatcher.maxOccurrence = bodyMatcher.maxTypeOccurrence(); + response.matchers.body.add(bodyTestMatcher); + })); } private void mapResponseBody(Response contractResponse, YamlContract.Response response) { @@ -465,18 +490,21 @@ class ContractsToYaml { private void mapResponseHeaders(Response contractResponse, YamlContract.Response response) { response.headers = Optional.ofNullable(contractResponse.getHeaders()) - .map(headers -> headers.asMap((headerName, dslProperty) -> MapConverter.getStubSideValues(dslProperty))) - .orElse(null); + .map(headers -> headers.asMap((headerName, dslProperty) -> MapConverter.getStubSideValues(dslProperty))) + .orElse(null); } private void mapResponseStatus(Response contractResponse, YamlContract.Response response) { - response.status = Optional.ofNullable(contractResponse.getStatus()).map(DslProperty::getClientValue) - .map(clientValue -> (Integer) clientValue).orElse(null); + response.status = Optional.ofNullable(contractResponse.getStatus()) + .map(DslProperty::getClientValue) + .map(clientValue -> (Integer) clientValue) + .orElse(null); } private void mapResponseFixedDelayMilliseconds(Response contractResponse, YamlContract.Response response) { response.fixedDelayMilliseconds = (Integer) Optional.ofNullable(contractResponse.getDelay()) - .map(DslProperty::getClientValue).orElse(null); + .map(DslProperty::getClientValue) + .orElse(null); } private void mapResponseAsync(Response contractResponse, YamlContract.Response response) { @@ -504,43 +532,45 @@ class ContractsToYaml { } protected void setInputHeadersMatchers(Headers headers, List headerMatchers) { - Optional.ofNullable(headers).map(Headers::asStubSideMap) - .ifPresent(stubSideMap -> stubSideMap.forEach((key, value) -> { - if (value instanceof RegexProperty || value instanceof Pattern) { - RegexProperty property = new RegexProperty(value); - YamlContract.KeyValueMatcher keyValueMatcher = new YamlContract.KeyValueMatcher(); - keyValueMatcher.key = key; - keyValueMatcher.regex = property.pattern(); - keyValueMatcher.regexType = regexType(property.clazz()); - headerMatchers.add(keyValueMatcher); - } - })); + Optional.ofNullable(headers) + .map(Headers::asStubSideMap) + .ifPresent(stubSideMap -> stubSideMap.forEach((key, value) -> { + if (value instanceof RegexProperty || value instanceof Pattern) { + RegexProperty property = new RegexProperty(value); + YamlContract.KeyValueMatcher keyValueMatcher = new YamlContract.KeyValueMatcher(); + keyValueMatcher.key = key; + keyValueMatcher.regex = property.pattern(); + keyValueMatcher.regexType = regexType(property.clazz()); + headerMatchers.add(keyValueMatcher); + } + })); } protected void setOutputHeadersMatchers(Headers headers, List headerMatchers) { - Optional.ofNullable(headers).map(Headers::asTestSideMap) - .ifPresent(testSideMap -> testSideMap.forEach((key, value) -> { - if (value instanceof RegexProperty || value instanceof Pattern) { - RegexProperty property = new RegexProperty(value); - YamlContract.TestHeaderMatcher testHeaderMatcher = new YamlContract.TestHeaderMatcher(); - testHeaderMatcher.key = key; - testHeaderMatcher.regex = property.pattern(); - testHeaderMatcher.regexType = regexType(property.clazz()); - headerMatchers.add(testHeaderMatcher); - } - else if (value instanceof ExecutionProperty) { - YamlContract.TestHeaderMatcher testHeaderMatcher = new YamlContract.TestHeaderMatcher(); - testHeaderMatcher.key = key; - testHeaderMatcher.command = ((ExecutionProperty) value).getExecutionCommand(); - headerMatchers.add(testHeaderMatcher); - } - else if (value instanceof NotToEscapePattern) { - YamlContract.TestHeaderMatcher testHeaderMatcher = new YamlContract.TestHeaderMatcher(); - testHeaderMatcher.key = key; - testHeaderMatcher.regex = (((NotToEscapePattern) value).getServerValue()).pattern(); - headerMatchers.add(testHeaderMatcher); - } - })); + Optional.ofNullable(headers) + .map(Headers::asTestSideMap) + .ifPresent(testSideMap -> testSideMap.forEach((key, value) -> { + if (value instanceof RegexProperty || value instanceof Pattern) { + RegexProperty property = new RegexProperty(value); + YamlContract.TestHeaderMatcher testHeaderMatcher = new YamlContract.TestHeaderMatcher(); + testHeaderMatcher.key = key; + testHeaderMatcher.regex = property.pattern(); + testHeaderMatcher.regexType = regexType(property.clazz()); + headerMatchers.add(testHeaderMatcher); + } + else if (value instanceof ExecutionProperty) { + YamlContract.TestHeaderMatcher testHeaderMatcher = new YamlContract.TestHeaderMatcher(); + testHeaderMatcher.key = key; + testHeaderMatcher.command = ((ExecutionProperty) value).getExecutionCommand(); + headerMatchers.add(testHeaderMatcher); + } + else if (value instanceof NotToEscapePattern) { + YamlContract.TestHeaderMatcher testHeaderMatcher = new YamlContract.TestHeaderMatcher(); + testHeaderMatcher.key = key; + testHeaderMatcher.regex = (((NotToEscapePattern) value).getServerValue()).pattern(); + headerMatchers.add(testHeaderMatcher); + } + })); } protected YamlContract.TestMatcherType testMatcherType(MatchingType matchingType) { 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 501d57173a..8a8adbb3b5 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 @@ -95,9 +95,12 @@ 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))); + Files.walk(baseDir.toPath()) + .map(Path::toFile) + .forEach(file -> CONTRACT_CONVERTERS.stream() + .filter(converter -> converter.isAccepted(file)) + .findFirst() + .ifPresent(converter -> doReplaceContractWithYaml(converter, file))); } catch (IOException e) { throw new RuntimeException(e); 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 2887575051..2fa273c4a1 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 @@ -270,8 +270,12 @@ 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); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/YamlToContracts.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/YamlToContracts.java index 65e1ce3c33..64b0ddfbdf 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/YamlToContracts.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/converter/YamlToContracts.java @@ -192,7 +192,9 @@ class YamlToContracts { String yamlContractRequestUrl = yamlContract.request.url; if (yamlContractRequestUrl != null) { YamlContract.KeyValueMatcher yamlContractRequestMatchersUrl = Optional - .ofNullable(yamlContract.request.matchers).map(matchers -> matchers.url).orElse(null); + .ofNullable(yamlContract.request.matchers) + .map(matchers -> matchers.url) + .orElse(null); dslContractRequest.url(urlValue(yamlContractRequestUrl, yamlContractRequestMatchersUrl), url -> handleQueryParameters(yamlContract, url)); } @@ -202,7 +204,9 @@ class YamlToContracts { String yamlContractRequestUrlPath = yamlContract.request.urlPath; if (yamlContractRequestUrlPath != null) { YamlContract.KeyValueMatcher yamlContractRequestMatchersUrl = Optional - .ofNullable(yamlContract.request.matchers).map(matchers -> matchers.url).orElse(null); + .ofNullable(yamlContract.request.matchers) + .map(matchers -> matchers.url) + .orElse(null); dslContractRequest.urlPath(urlValue(yamlContractRequestUrlPath, yamlContractRequestMatchersUrl), urlPath -> handleQueryParameters(yamlContract, urlPath)); } @@ -213,7 +217,7 @@ class YamlToContracts { url.queryParameters((queryParameters -> yamlContract.request.queryParameters.forEach((key, value) -> { if (value instanceof List) { ((List) value) - .forEach(v -> queryParameters.parameter(key, queryParamValue(yamlContract, key, v))); + .forEach(v -> queryParameters.parameter(key, queryParamValue(yamlContract, key, v))); } else { queryParameters.parameter(key, queryParamValue(yamlContract, key, value)); @@ -227,11 +231,12 @@ class YamlToContracts { if (MapUtils.isNotEmpty(yamlContractRequestHeaders)) { dslContractRequest.headers((headers) -> yamlContractRequestHeaders.forEach((key, value) -> { List matchers = yamlContractRequest.matchers.headers.stream() - .filter((header) -> header.key.equals(key)).collect(Collectors.toList()); + .filter((header) -> header.key.equals(key)) + .collect(Collectors.toList()); matchers.forEach(matcher -> { if (value instanceof List) { ((List) value) - .forEach(v -> headers.header(key, clientValue(v, matcher, key).getClientValue())); + .forEach(v -> headers.header(key, clientValue(v, matcher, key).getClientValue())); } else { headers.header(key, new DslProperty<>(clientValue(value, matcher, key).getClientValue(), @@ -250,7 +255,9 @@ class YamlToContracts { if (MapUtils.isNotEmpty(yamlContractRequestCookies)) { dslContractRequest.cookies((cookies) -> yamlContractRequestCookies.forEach((key, value) -> { YamlContract.KeyValueMatcher matcher = yamlContractRequest.matchers.cookies.stream() - .filter(cookie -> cookie.key.equals(key)).findFirst().orElse(null); + .filter(cookie -> cookie.key.equals(key)) + .findFirst() + .orElse(null); cookies.cookie(key, clientValue(value, matcher, key)); })); } @@ -273,7 +280,9 @@ class YamlToContracts { Map multipartMap = new HashMap<>(); yamlContractRequest.multipart.params.forEach((paramKey, paramValue) -> { YamlContract.KeyValueMatcher matcher = yamlContractRequest.matchers.multipart.params.stream() - .filter((param) -> param.key.equals(paramKey)).findFirst().orElse(null); + .filter((param) -> param.key.equals(paramKey)) + .findFirst() + .orElse(null); Object value = paramValue; if (matcher != null) { value = matcher.regex != null ? Pattern.compile(matcher.regex) @@ -283,8 +292,9 @@ class YamlToContracts { }); yamlContractRequest.multipart.named.forEach(namedParam -> { YamlContract.MultipartNamedStubMatcher matcher = yamlContractRequest.matchers.multipart.named.stream() - .filter((stubMatcher) -> stubMatcher.paramName.equals(namedParam.paramName)).findFirst() - .orElse(null); + .filter((stubMatcher) -> stubMatcher.paramName.equals(namedParam.paramName)) + .findFirst() + .orElse(null); Object fileNameValue = namedParam.fileName; Object fileContentValue = namedParam.fileContent; String fileContentAsBytes = namedParam.fileContentAsBytes; @@ -324,58 +334,59 @@ class YamlToContracts { private void mapRequestBodyMatchers(YamlContract.Request yamlContractRequest, Request dslContractRequest) { dslContractRequest.bodyMatchers((bodyMatchers) -> Optional.ofNullable(yamlContractRequest.matchers) - .map(stubMatchers -> stubMatchers.body).ifPresent(stubMatchers -> stubMatchers.forEach(stubMatcher -> { - ContentType contentType = evaluateClientSideContentType( - yamlHeadersToContractHeaders( - Optional.ofNullable(yamlContractRequest.headers).orElse(new HashMap<>())), - Optional.ofNullable(yamlContractRequest.body).orElse(null)); - MatchingTypeValue value = null; - switch (stubMatcher.type) { - case by_date: - value = bodyMatchers.byDate(); - break; - case by_time: - value = bodyMatchers.byTime(); - break; - case by_timestamp: - value = bodyMatchers.byTimestamp(); - break; - case by_regex: - String regex = stubMatcher.value; - if (stubMatcher.predefined != null) { - regex = predefinedToPattern(stubMatcher.predefined).pattern(); + .map(stubMatchers -> stubMatchers.body) + .ifPresent(stubMatchers -> stubMatchers.forEach(stubMatcher -> { + ContentType contentType = evaluateClientSideContentType( + yamlHeadersToContractHeaders( + Optional.ofNullable(yamlContractRequest.headers).orElse(new HashMap<>())), + Optional.ofNullable(yamlContractRequest.body).orElse(null)); + MatchingTypeValue value = null; + switch (stubMatcher.type) { + case by_date: + value = bodyMatchers.byDate(); + break; + case by_time: + value = bodyMatchers.byTime(); + break; + case by_timestamp: + value = bodyMatchers.byTimestamp(); + break; + case by_regex: + String regex = stubMatcher.value; + if (stubMatcher.predefined != null) { + regex = predefinedToPattern(stubMatcher.predefined).pattern(); + } + value = bodyMatchers.byRegex(regex); + break; + case by_equality: + value = bodyMatchers.byEquality(); + break; + case by_type: + value = bodyMatchers.byType(matchingTypeValueHolder -> { + if (stubMatcher.minOccurrence != null) { + matchingTypeValueHolder.minOccurrence(stubMatcher.minOccurrence); } - value = bodyMatchers.byRegex(regex); - break; - case by_equality: - value = bodyMatchers.byEquality(); - break; - case by_type: - value = bodyMatchers.byType(matchingTypeValueHolder -> { - if (stubMatcher.minOccurrence != null) { - matchingTypeValueHolder.minOccurrence(stubMatcher.minOccurrence); - } - if (stubMatcher.maxOccurrence != null) { - matchingTypeValueHolder.maxOccurrence(stubMatcher.maxOccurrence); - } - }); - break; - case by_null: - // do nothing - break; - default: - throw new UnsupportedOperationException("The type [" + stubMatcher.type + "] is" - + " unsupported.Hint:If you 're using remember to pass "); + if (stubMatcher.maxOccurrence != null) { + matchingTypeValueHolder.maxOccurrence(stubMatcher.maxOccurrence); + } + }); + break; + case by_null: + // do nothing + break; + default: + throw new UnsupportedOperationException("The type [" + stubMatcher.type + "] is" + + " unsupported.Hint:If you 're using remember to pass "); + } + if (value != null) { + if (XML == contentType) { + bodyMatchers.xPath(stubMatcher.path, value); } - if (value != null) { - if (XML == contentType) { - bodyMatchers.xPath(stubMatcher.path, value); - } - else { - bodyMatchers.jsonPath(stubMatcher.path, value); - } + else { + bodyMatchers.jsonPath(stubMatcher.path, value); } - }))); + } + }))); } private void mapResponse(YamlContract yamlContract, Contract dslContract) { @@ -400,28 +411,32 @@ class YamlToContracts { private void mapResponseHeaders(YamlContract.Response yamlContractResponse, Response dslContractResponse) { dslContractResponse.headers(headers -> Optional.ofNullable(yamlContractResponse.headers) - .ifPresent(yamlContractResponseHeaders -> yamlContractResponseHeaders.forEach((key, value) -> { - YamlContract.TestHeaderMatcher matcher = yamlContractResponse.matchers.headers.stream() - .filter(h -> h.key.equals(key)).findFirst().orElse(null); + .ifPresent(yamlContractResponseHeaders -> yamlContractResponseHeaders.forEach((key, value) -> { + YamlContract.TestHeaderMatcher matcher = yamlContractResponse.matchers.headers.stream() + .filter(h -> h.key.equals(key)) + .findFirst() + .orElse(null); - if (value instanceof List) { - ((List) value).forEach(v -> { - Object serverValue = serverValue(v, matcher, key); - headers.header(key, new DslProperty<>(v, serverValue)); - }); - } - else { - Object serverValue = serverValue(value, matcher, key); - headers.header(key, new DslProperty<>(value, serverValue)); - } - }))); + if (value instanceof List) { + ((List) value).forEach(v -> { + Object serverValue = serverValue(v, matcher, key); + headers.header(key, new DslProperty<>(v, serverValue)); + }); + } + else { + Object serverValue = serverValue(value, matcher, key); + headers.header(key, new DslProperty<>(value, serverValue)); + } + }))); } private void mapResponseCookies(YamlContract.Response yamlContractResponse, Response dslContractResponse) { if (yamlContractResponse.cookies != null) { dslContractResponse.cookies(cookies -> yamlContractResponse.cookies.forEach((key, value) -> { YamlContract.TestCookieMatcher matcher = yamlContractResponse.matchers.cookies.stream() - .filter(testCookieMatcher -> testCookieMatcher.key.equals(key)).findFirst().orElse(null); + .filter(testCookieMatcher -> testCookieMatcher.key.equals(key)) + .findFirst() + .orElse(null); DslProperty cookieValue = serverCookieValue(value, matcher, key); cookies.cookie(key, cookieValue); })); @@ -431,13 +446,12 @@ class YamlToContracts { private void mapResponseBody(YamlContract.Response yamlContractResponse, Response dslContractResponse) { if (yamlContractResponse.body != null) { YamlContract.BodyTestMatcher bodyTestMatcher = Optional.ofNullable(yamlContractResponse.matchers) - .map(testMatchers -> testMatchers.body) - .flatMap( - bodyTestMatchers -> bodyTestMatchers.stream() - .filter(m -> m.path == null && (m.type == YamlContract.TestMatcherType.by_regex - || m.type == YamlContract.TestMatcherType.by_command)) - .findFirst()) - .orElse(null); + .map(testMatchers -> testMatchers.body) + .flatMap(bodyTestMatchers -> bodyTestMatchers.stream() + .filter(m -> m.path == null && (m.type == YamlContract.TestMatcherType.by_regex + || m.type == YamlContract.TestMatcherType.by_command)) + .findFirst()) + .orElse(null); if (bodyTestMatcher != null) { dslContractResponse.body(new DslProperty<>(yamlContractResponse.body, bodyTestMatcher.type == YamlContract.TestMatcherType.by_regex @@ -472,63 +486,62 @@ class YamlToContracts { private void mapResponseBodyMatchers(YamlContract.Response yamlContractResponse, Response dslContractResponse) { dslContractResponse.bodyMatchers(bodyMatchers -> Optional.ofNullable(yamlContractResponse.matchers) - .map(yamlContractResponseTestMatchers -> yamlContractResponseTestMatchers.body) - .ifPresent(yamlContractBodyTestMatchers -> yamlContractBodyTestMatchers - .forEach(yamlContractBodyTestMatcher -> { - ContentType contentType = evaluateClientSideContentType( - yamlHeadersToContractHeaders(yamlContractResponse.headers), - yamlContractResponse.body); - MatchingTypeValue value; - switch (yamlContractBodyTestMatcher.type) { - case by_date: - value = bodyMatchers.byDate(); - break; - case by_time: - value = bodyMatchers.byTime(); - break; - case by_timestamp: - value = bodyMatchers.byTimestamp(); - break; - case by_regex: - String regex = yamlContractBodyTestMatcher.value; - if (yamlContractBodyTestMatcher.predefined != null) { - regex = predefinedToPattern(yamlContractBodyTestMatcher.predefined).pattern(); - } - value = bodyMatchers.byRegex(regex); - break; - case by_equality: - value = bodyMatchers.byEquality(); - break; - case by_type: - value = bodyMatchers.byType(v -> { - if (yamlContractBodyTestMatcher.minOccurrence != null) { - v.minOccurrence(yamlContractBodyTestMatcher.minOccurrence); - } - if (yamlContractBodyTestMatcher.maxOccurrence != null) { - v.maxOccurrence(yamlContractBodyTestMatcher.maxOccurrence); - } - }); - break; - case by_command: - value = bodyMatchers.byCommand(yamlContractBodyTestMatcher.value); - break; - case by_null: - value = bodyMatchers.byNull(); - break; - default: - throw new UnsupportedOperationException("The type [" - + yamlContractBodyTestMatcher.type + "] is unsupported. " + .map(yamlContractResponseTestMatchers -> yamlContractResponseTestMatchers.body) + .ifPresent(yamlContractBodyTestMatchers -> yamlContractBodyTestMatchers + .forEach(yamlContractBodyTestMatcher -> { + ContentType contentType = evaluateClientSideContentType( + yamlHeadersToContractHeaders(yamlContractResponse.headers), yamlContractResponse.body); + MatchingTypeValue value; + switch (yamlContractBodyTestMatcher.type) { + case by_date: + value = bodyMatchers.byDate(); + break; + case by_time: + value = bodyMatchers.byTime(); + break; + case by_timestamp: + value = bodyMatchers.byTimestamp(); + break; + case by_regex: + String regex = yamlContractBodyTestMatcher.value; + if (yamlContractBodyTestMatcher.predefined != null) { + regex = predefinedToPattern(yamlContractBodyTestMatcher.predefined).pattern(); + } + value = bodyMatchers.byRegex(regex); + break; + case by_equality: + value = bodyMatchers.byEquality(); + break; + case by_type: + value = bodyMatchers.byType(v -> { + if (yamlContractBodyTestMatcher.minOccurrence != null) { + v.minOccurrence(yamlContractBodyTestMatcher.minOccurrence); + } + if (yamlContractBodyTestMatcher.maxOccurrence != null) { + v.maxOccurrence(yamlContractBodyTestMatcher.maxOccurrence); + } + }); + break; + case by_command: + value = bodyMatchers.byCommand(yamlContractBodyTestMatcher.value); + break; + case by_null: + value = bodyMatchers.byNull(); + break; + default: + throw new UnsupportedOperationException( + "The type [" + yamlContractBodyTestMatcher.type + "] is unsupported. " + "Hint: If you're using remember to pass < type:by_regex > "); - } - if (yamlContractBodyTestMatcher.path != null) { - if (XML == contentType) { - bodyMatchers.xPath(yamlContractBodyTestMatcher.path, value); - } - else { - bodyMatchers.jsonPath(yamlContractBodyTestMatcher.path, value); - } - } - }))); + } + if (yamlContractBodyTestMatcher.path != null) { + if (XML == contentType) { + bodyMatchers.xPath(yamlContractBodyTestMatcher.path, value); + } + else { + bodyMatchers.jsonPath(yamlContractBodyTestMatcher.path, value); + } + } + }))); } private void mapOutput(YamlContract yamlContract, Contract dslContract) { @@ -549,85 +562,81 @@ class YamlToContracts { if (yamlContractOutputMessage.matchers != null) { dslContractOutputMessage.bodyMatchers( dslContractOutputMessageBodyMatchers -> Optional.ofNullable(yamlContractOutputMessage.matchers.body) - .ifPresent(yamlContractBodyTestMatchers -> yamlContractBodyTestMatchers - .forEach(yamlContractBodyTestMatcher -> { - ContentType contentType = evaluateClientSideContentType( - yamlHeadersToContractHeaders(yamlContractOutputMessage.headers), - yamlContractOutputMessage.body); - MatchingTypeValue value; - switch (yamlContractBodyTestMatcher.type) { - case by_date: - value = dslContractOutputMessageBodyMatchers.byDate(); - break; - case by_time: - value = dslContractOutputMessageBodyMatchers.byTime(); - break; - case by_timestamp: - value = dslContractOutputMessageBodyMatchers.byTimestamp(); - break; - case by_regex: - String regex = yamlContractBodyTestMatcher.value; - if (yamlContractBodyTestMatcher.predefined != null) { - regex = predefinedToPattern(yamlContractBodyTestMatcher.predefined) - .pattern(); - } - value = dslContractOutputMessageBodyMatchers.byRegex(regex); - break; - case by_equality: - value = dslContractOutputMessageBodyMatchers.byEquality(); - break; - case by_type: - value = dslContractOutputMessageBodyMatchers.byType(v -> { - if (yamlContractBodyTestMatcher.minOccurrence != null) { - v.minOccurrence(yamlContractBodyTestMatcher.minOccurrence); - } - if (yamlContractBodyTestMatcher.maxOccurrence != null) { - v.maxOccurrence(yamlContractBodyTestMatcher.maxOccurrence); - } - }); - break; - case by_command: - value = dslContractOutputMessageBodyMatchers - .byCommand(yamlContractBodyTestMatcher.value); - break; - case by_null: - value = dslContractOutputMessageBodyMatchers.byNull(); - break; - default: - throw new UnsupportedOperationException("The type " + "[" - + yamlContractBodyTestMatcher.type - + "] is unsupported. Hint: If " - + "you're using remember to pass < type:by_regex > "); + .ifPresent(yamlContractBodyTestMatchers -> yamlContractBodyTestMatchers + .forEach(yamlContractBodyTestMatcher -> { + ContentType contentType = evaluateClientSideContentType( + yamlHeadersToContractHeaders(yamlContractOutputMessage.headers), + yamlContractOutputMessage.body); + MatchingTypeValue value; + switch (yamlContractBodyTestMatcher.type) { + case by_date: + value = dslContractOutputMessageBodyMatchers.byDate(); + break; + case by_time: + value = dslContractOutputMessageBodyMatchers.byTime(); + break; + case by_timestamp: + value = dslContractOutputMessageBodyMatchers.byTimestamp(); + break; + case by_regex: + String regex = yamlContractBodyTestMatcher.value; + if (yamlContractBodyTestMatcher.predefined != null) { + regex = predefinedToPattern(yamlContractBodyTestMatcher.predefined) + .pattern(); } - if (XML == contentType) { - dslContractOutputMessageBodyMatchers.xPath(yamlContractBodyTestMatcher.path, - value); - } - else { - dslContractOutputMessageBodyMatchers - .jsonPath(yamlContractBodyTestMatcher.path, value); - } - }))); + value = dslContractOutputMessageBodyMatchers.byRegex(regex); + break; + case by_equality: + value = dslContractOutputMessageBodyMatchers.byEquality(); + break; + case by_type: + value = dslContractOutputMessageBodyMatchers.byType(v -> { + if (yamlContractBodyTestMatcher.minOccurrence != null) { + v.minOccurrence(yamlContractBodyTestMatcher.minOccurrence); + } + if (yamlContractBodyTestMatcher.maxOccurrence != null) { + v.maxOccurrence(yamlContractBodyTestMatcher.maxOccurrence); + } + }); + break; + case by_command: + value = dslContractOutputMessageBodyMatchers + .byCommand(yamlContractBodyTestMatcher.value); + break; + case by_null: + value = dslContractOutputMessageBodyMatchers.byNull(); + break; + default: + throw new UnsupportedOperationException("The type " + "[" + + yamlContractBodyTestMatcher.type + "] is unsupported. Hint: If " + + "you're using remember to pass < type:by_regex > "); + } + if (XML == contentType) { + dslContractOutputMessageBodyMatchers.xPath(yamlContractBodyTestMatcher.path, value); + } + else { + dslContractOutputMessageBodyMatchers.jsonPath(yamlContractBodyTestMatcher.path, + value); + } + }))); } } private void mapOutputMessageHeaders(YamlContract.OutputMessage yamlContractOutputMessage, OutputMessage dslContractOutputMessage) { dslContractOutputMessage.headers(dslContractOutputMessageHeaders -> Optional - .ofNullable(yamlContractOutputMessage).map(yamlContractOutput -> yamlContractOutput.headers).ifPresent( - yamlContractOutputMessageHeaders -> yamlContractOutputMessageHeaders.forEach((key, value) -> { - YamlContract.TestHeaderMatcher matcher = Optional - .ofNullable(yamlContractOutputMessage.matchers) - .map(yamlContractOutputMatchers -> yamlContractOutputMatchers.headers) - .flatMap(yamlContractOutputMatchersHeaders -> yamlContractOutputMatchersHeaders - .stream() - .filter(yamlContractOutputMatchersHeader -> yamlContractOutputMatchersHeader.key - .equals(key)) - .findFirst()) - .orElse(null); - Object serverValue = serverValue(value, matcher, key); - dslContractOutputMessageHeaders.header(key, new DslProperty<>(value, serverValue)); - }))); + .ofNullable(yamlContractOutputMessage) + .map(yamlContractOutput -> yamlContractOutput.headers) + .ifPresent(yamlContractOutputMessageHeaders -> yamlContractOutputMessageHeaders.forEach((key, value) -> { + YamlContract.TestHeaderMatcher matcher = Optional.ofNullable(yamlContractOutputMessage.matchers) + .map(yamlContractOutputMatchers -> yamlContractOutputMatchers.headers) + .flatMap(yamlContractOutputMatchersHeaders -> yamlContractOutputMatchersHeaders.stream() + .filter(yamlContractOutputMatchersHeader -> yamlContractOutputMatchersHeader.key.equals(key)) + .findFirst()) + .orElse(null); + Object serverValue = serverValue(value, matcher, key); + dslContractOutputMessageHeaders.header(key, new DslProperty<>(value, serverValue)); + }))); } private void mapOutputBody(YamlContract.OutputMessage yamlContractOutputMessage, @@ -640,7 +649,7 @@ class YamlToContracts { } if (yamlContractOutputMessage.bodyFromFileAsBytes != null) { dslContractOutputMessage - .body(dslContractOutputMessage.fileAsBytes(yamlContractOutputMessage.bodyFromFileAsBytes)); + .body(dslContractOutputMessage.fileAsBytes(yamlContractOutputMessage.bodyFromFileAsBytes)); } } @@ -767,7 +776,9 @@ class YamlToContracts { protected Object queryParamValue(YamlContract yamlContract, String key, Object value) { Request request = new Request(); YamlContract.QueryParameterMatcher matcher = yamlContract.request.matchers.queryParameters.stream() - .filter(queryParameter -> queryParameter.key.equals(key)).findFirst().orElse(null); + .filter(queryParameter -> queryParameter.key.equals(key)) + .findFirst() + .orElse(null); if (matcher == null) { return value; } 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 1242a2b927..8b69bcf3ae 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 @@ -97,8 +97,10 @@ class RequestMatcherFactory { } RequestMatcher pick(String tool) { - return this.matchers.stream().filter(m -> m.isApplicable(tool)).findFirst() - .orElse(new NotMatchingRequestMatcher()); + return this.matchers.stream() + .filter(m -> m.isApplicable(tool)) + .findFirst() + .orElse(new NotMatchingRequestMatcher()); } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockRequestStubStrategy.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockRequestStubStrategy.java index a8f3f9ea5a..e7acde604a 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockRequestStubStrategy.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockRequestStubStrategy.java @@ -146,8 +146,8 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { if (request.getMethod() == null) { return null; } - RequestMethod requestMethod = RequestMethod.fromString( - Optional.ofNullable(request.getMethod().getClientValue()).map(c -> c.toString()).orElse(null)); + RequestMethod requestMethod = RequestMethod + .fromString(Optional.ofNullable(request.getMethod().getClientValue()).map(c -> c.toString()).orElse(null)); UrlPattern urlPattern = urlPattern(); return RequestPatternBuilder.newRequestPattern(requestMethod, urlPattern); } @@ -171,7 +171,7 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { else { Object body = JsonToJsonPathsConverter.removeMatchingJsonPaths(originalBody, request.getBodyMatchers()); JsonPaths values = JsonToJsonPathsConverter - .transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck(body); + .transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck(body); if ((values.isEmpty() && request.getBodyMatchers() != null && !request.getBodyMatchers().hasMatchers()) || onlySizeAssertionsArePresent(values)) { try { @@ -185,16 +185,19 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { } } else { - values.stream().filter(v -> !v.assertsSize()).forEach(it -> requestPattern + values.stream() + .filter(v -> !v.assertsSize()) + .forEach(it -> requestPattern .withRequestBody(WireMock.matchingJsonPath(it.jsonPath().replace("\\\\", "\\")))); } } - Optional.ofNullable(request.getBodyMatchers()).map(BodyMatchers::matchers) - .ifPresent(bodyMatchers -> bodyMatchers.forEach(bodyMatcher -> { - String newPath = JsonToJsonPathsConverter.convertJsonPathAndRegexToAJsonPath(bodyMatcher, - originalBody); - requestPattern.withRequestBody(WireMock.matchingJsonPath(newPath.replace("\\\\", "\\"))); - })); + Optional.ofNullable(request.getBodyMatchers()) + .map(BodyMatchers::matchers) + .ifPresent(bodyMatchers -> bodyMatchers.forEach(bodyMatcher -> { + String newPath = JsonToJsonPathsConverter.convertJsonPathAndRegexToAJsonPath(bodyMatcher, + originalBody); + requestPattern.withRequestBody(WireMock.matchingJsonPath(newPath.replace("\\\\", "\\"))); + })); } else if (contentType == ContentType.XML) { Object originalBody = Optional.ofNullable(matchingStrategy).map(DslProperty::getClientValue).orElse(null); @@ -204,12 +207,13 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { else { Object body = XmlToXPathsConverter.removeMatchingXPaths(originalBody, request.getBodyMatchers()); List byEqualityMatchersFromXml = XmlToXPathsConverter.mapToMatchers(body); - byEqualityMatchersFromXml.forEach( - bodyMatcher -> addWireMockStubMatchingSection(bodyMatcher, requestPattern, originalBody)); + byEqualityMatchersFromXml + .forEach(bodyMatcher -> addWireMockStubMatchingSection(bodyMatcher, requestPattern, originalBody)); } - Optional.ofNullable(request.getBodyMatchers()).map(BodyMatchers::matchers) - .ifPresent(bodyMatchers -> bodyMatchers.forEach( - bodyMatcher -> addWireMockStubMatchingSection(bodyMatcher, requestPattern, originalBody))); + Optional.ofNullable(request.getBodyMatchers()) + .map(BodyMatchers::matchers) + .ifPresent(bodyMatchers -> bodyMatchers + .forEach(bodyMatcher -> addWireMockStubMatchingSection(bodyMatcher, requestPattern, originalBody))); } else if (containsPattern(request.getBody())) { requestPattern.withRequestBody(convertToValuePattern(appendBodyRegexpMatchPattern(request.getBody()))); @@ -228,7 +232,7 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { private RequestPatternBuilder requestBodyGuessedFromMatchingStrategy(RequestPatternBuilder requestPattern) { return requestPattern - .withRequestBody(convertToValuePattern(getMatchingStrategy(request.getBody().getClientValue()))); + .withRequestBody(convertToValuePattern(getMatchingStrategy(request.getBody().getClientValue()))); } private static void addWireMockStubMatchingSection(BodyMatcher matcher, RequestPatternBuilder requestPattern, @@ -250,9 +254,9 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { } }); PathBodyMatcher pathMatcher = (PathBodyMatcher) matcher; - requestPattern.withRequestBody( - WireMock.matchingXPath(pathMatcher.path(), XPathBodyMatcherToWireMockValuePatternConverter - .mapToPattern(pathMatcher.matchingType(), String.valueOf(retrievedValue)))); + requestPattern + .withRequestBody(WireMock.matchingXPath(pathMatcher.path(), XPathBodyMatcherToWireMockValuePatternConverter + .mapToPattern(pathMatcher.matchingType(), String.valueOf(retrievedValue)))); } private boolean onlySizeAssertionsArePresent(JsonPaths values) { @@ -275,19 +279,18 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { return; } if (request.getMultipart().getClientValue() instanceof Map) { - List multipartPattern = ((Map) request.getMultipart() - .getClientValue()) - .entrySet().stream().map( - it -> it.getValue() instanceof NamedProperty - ? WireMock.matching(RegexPatterns.multipartFile(it.getKey(), - ((NamedProperty) it.getValue()).getName().getClientValue(), - ((NamedProperty) it.getValue()).getValue().getClientValue(), - Optional.ofNullable( - ((NamedProperty) it.getValue()).getContentType()) - .map(DslProperty::getClientValue).orElse(null))) - : WireMock.matching(RegexPatterns.multipartParam(it.getKey(), - MapConverter.getStubSideValuesForNonBody(it.getValue())))) - .collect(Collectors.toList()); + List multipartPattern = ((Map) request.getMultipart().getClientValue()).entrySet() + .stream() + .map(it -> it.getValue() instanceof NamedProperty + ? WireMock.matching(RegexPatterns.multipartFile(it.getKey(), + ((NamedProperty) it.getValue()).getName().getClientValue(), + ((NamedProperty) it.getValue()).getValue().getClientValue(), + Optional.ofNullable(((NamedProperty) it.getValue()).getContentType()) + .map(DslProperty::getClientValue) + .orElse(null))) + : WireMock.matching(RegexPatterns.multipartParam(it.getKey(), + MapConverter.getStubSideValuesForNonBody(it.getValue())))) + .collect(Collectors.toList()); multipartPattern.forEach(requestPattern::withRequestBody); } @@ -296,8 +299,10 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { private void appendHeaders(RequestPatternBuilder requestPattern) { if (request.getHeaders() != null) { - request.getHeaders().getEntries().forEach(header -> requestPattern.withHeader(header.getName(), - (StringValuePattern) convertToValuePattern(header.getClientValue()))); + request.getHeaders() + .getEntries() + .forEach(header -> requestPattern.withHeader(header.getName(), + (StringValuePattern) convertToValuePattern(header.getClientValue()))); } } @@ -305,8 +310,10 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { if (request.getCookies() == null) { return; } - request.getCookies().getEntries().forEach(cookie -> requestPattern.withCookie(cookie.getKey(), - (StringValuePattern) convertToValuePattern(cookie.getClientValue()))); + request.getCookies() + .getEntries() + .forEach(cookie -> requestPattern.withCookie(cookie.getKey(), + (StringValuePattern) convertToValuePattern(cookie.getClientValue()))); } private UrlPattern urlPattern() { @@ -330,10 +337,15 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { } private Object urlPathOrUrlIfQueryPresent() { - Object urlPath = Optional.ofNullable(request).map(Request::getUrlPath).map(DslProperty::getClientValue) - .orElse(null); - Object queryParamsFromUrl = Optional.ofNullable(request).map(Request::getUrl).map(Url::getQueryParameters) - .map(QueryParameters::getParameters).orElse(null); + Object urlPath = Optional.ofNullable(request) + .map(Request::getUrlPath) + .map(DslProperty::getClientValue) + .orElse(null); + Object queryParamsFromUrl = Optional.ofNullable(request) + .map(Request::getUrl) + .map(Url::getQueryParameters) + .map(QueryParameters::getParameters) + .orElse(null); if (urlPath != null) { return urlPath; } @@ -360,13 +372,16 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { } private void appendQueryParameters(RequestPatternBuilder requestPattern) { - QueryParameters queryParameters = Optional.ofNullable(request).map(Request::getUrlPath) - .map(Url::getQueryParameters).orElseGet(() -> Optional.ofNullable(request).map(Request::getUrl) - .map(Url::getQueryParameters).orElse(null)); + QueryParameters queryParameters = Optional.ofNullable(request) + .map(Request::getUrlPath) + .map(Url::getQueryParameters) + .orElseGet( + () -> Optional.ofNullable(request).map(Request::getUrl).map(Url::getQueryParameters).orElse(null)); - Optional.ofNullable(queryParameters).map(QueryParameters::getParameters).ifPresent( - parameters -> parameters.forEach(parameter -> requestPattern.withQueryParam(parameter.getName(), - (StringValuePattern) convertToValuePattern(parameter.getClientValue())))); + Optional.ofNullable(queryParameters) + .map(QueryParameters::getParameters) + .ifPresent(parameters -> parameters.forEach(parameter -> requestPattern.withQueryParam(parameter.getName(), + (StringValuePattern) convertToValuePattern(parameter.getClientValue())))); } protected ContentPattern convertToValuePattern(Object object) { @@ -412,14 +427,16 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { if (FORM == contentType) { if (bodyValue instanceof Map) { // [a:3, b:4] == "a=3&b=4" - return ((Map) bodyValue).entrySet().stream() - .map(e -> StringEscapeUtils.unescapeEcmaScript(e.getKey().toString() + "=" + e.getValue())) - .collect(Collectors.joining("&")); + return ((Map) bodyValue).entrySet() + .stream() + .map(e -> StringEscapeUtils.unescapeEcmaScript(e.getKey().toString() + "=" + e.getValue())) + .collect(Collectors.joining("&")); } else if (bodyValue instanceof List) { // ["a=3", "b=4"] == "a=3&b=4" - return ((List) bodyValue).stream().map(it -> StringEscapeUtils.unescapeEcmaScript(it.toString())) - .collect(Collectors.joining("&")); + return ((List) bodyValue).stream() + .map(it -> StringEscapeUtils.unescapeEcmaScript(it.toString())) + .collect(Collectors.joining("&")); } } else if (bodyValue instanceof FromFileProperty) { @@ -530,8 +547,9 @@ class WireMockRequestStubStrategy extends BaseWireMockStubStrategy { return containsPattern(((Map) o).entrySet()); } else if (o instanceof Collection) { - List result = (List) ((Collection) o).stream().map(this::containsPattern) - .collect(Collectors.toList()); + List result = (List) ((Collection) o).stream() + .map(this::containsPattern) + .collect(Collectors.toList()); return result.stream().reduce(false, (a, b) -> a || b); } else if (o instanceof Object[]) { 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 2d803f769b..56b5ff3b67 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 @@ -71,7 +71,7 @@ class WireMockResponseStubStrategy extends BaseWireMockStubStrategy { return null; } ResponseDefinitionBuilder builder = new ResponseDefinitionBuilder() - .withStatus((Integer) MapConverter.getStubSideValues(response.getStatus())); + .withStatus((Integer) MapConverter.getStubSideValues(response.getStatus())); appendHeaders(builder); appendBody(builder); appendResponseDelayTime(builder); @@ -83,17 +83,22 @@ class WireMockResponseStubStrategy extends BaseWireMockStubStrategy { 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 }; } 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())) - .collect(collectingAndThen(toList(), HttpHeaders::new)); + 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); } } 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 075945412e..ed2545d420 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 @@ -77,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 81df9e6040..b0144d71a5 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 @@ -76,13 +76,17 @@ 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 4845c17da6..704b03a160 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 @@ -99,20 +99,28 @@ 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.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.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.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.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; @@ -120,8 +128,12 @@ public class SingleContractMetadata { } 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) { @@ -181,8 +193,10 @@ public class SingleContractMetadata { } private DslProperty inputBody(Contract contract) { - return Optional.ofNullable(contract.getRequest()).map(Request::getBody).map(DslProperty.class::cast) - .orElse(null); + return Optional.ofNullable(contract.getRequest()) + .map(Request::getBody) + .map(DslProperty.class::cast) + .orElse(null); } private Headers inputHeaders(Contract contract) { @@ -190,14 +204,17 @@ public class SingleContractMetadata { } 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() { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/http/OkHttpHttpVerifier.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/http/OkHttpHttpVerifier.java index bea1c0ca64..5e701ad220 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/http/OkHttpHttpVerifier.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/http/OkHttpHttpVerifier.java @@ -58,12 +58,17 @@ public class OkHttpHttpVerifier implements HttpVerifier { OkHttpClient client = new OkHttpClient.Builder().protocols(toProtocol(request.protocol().toString())).build(); Map headers = stringTyped(request.headers()); if (!request.cookies().isEmpty()) { - headers.put("Set-Cookie", request.cookies().entrySet().stream() - .map(e -> e.getKey() + "=" + e.getValue().toString()).collect(Collectors.joining(";"))); + headers.put("Set-Cookie", + request.cookies() + .entrySet() + .stream() + .map(e -> e.getKey() + "=" + e.getValue().toString()) + .collect(Collectors.joining(";"))); } okhttp3.Request req = new okhttp3.Request.Builder().url(url(request)) - .method(request.method().name(), requestBody(request, requestContentType)).headers(Headers.of(headers)) - .build(); + .method(request.method().name(), requestBody(request, requestContentType)) + .headers(Headers.of(headers)) + .build(); try (okhttp3.Response res = client.newCall(req).execute()) { return response(res); } @@ -76,8 +81,11 @@ public class OkHttpHttpVerifier implements HttpVerifier { String url = request.scheme().name().toLowerCase() + ":" + this.hostAndPort + (request.path().startsWith("/") ? request.path() : "/" + request.path()); if (!request.queryParams().isEmpty()) { - return url + "?" + request.queryParams().stream().map(e -> e.getKey() + "=" + e.getValue()) - .collect(Collectors.joining("&")); + return url + "?" + + request.queryParams() + .stream() + .map(e -> e.getKey() + "=" + e.getValue()) + .collect(Collectors.joining("&")); } return url; } @@ -104,14 +112,17 @@ public class OkHttpHttpVerifier implements HttpVerifier { private Response response(okhttp3.Response res) throws IOException { byte[] responseBody = responseBody(res); - return Response.builder().body(responseBody).statusCode(res.code()).headers(withSingleHeader(res)).cookies( - res.headers().values("Set-Cookie").stream().flatMap(s -> Arrays.stream(s.split(";"))).map(s -> { - String[] singleCookie = s.split("="); - return new AbstractMap.SimpleEntry<>(singleCookie[0], - singleCookie.length > 1 ? singleCookie[1] : ""); - }).collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue, + return Response.builder() + .body(responseBody) + .statusCode(res.code()) + .headers(withSingleHeader(res)) + .cookies(res.headers().values("Set-Cookie").stream().flatMap(s -> Arrays.stream(s.split(";"))).map(s -> { + String[] singleCookie = s.split("="); + return new AbstractMap.SimpleEntry<>(singleCookie[0], singleCookie.length > 1 ? singleCookie[1] : ""); + }) + .collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue, (a, b) -> a, HashMap::new))) - .build(); + .build(); } private RequestBody requestBody(Request request, String requestContentType) { @@ -127,8 +138,11 @@ public class OkHttpHttpVerifier implements HttpVerifier { } private Map withSingleHeader(okhttp3.Response res) { - return res.headers().toMultimap().entrySet().stream() - .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().get(0), (a, b) -> a, HashMap::new)); + return res.headers() + .toMultimap() + .entrySet() + .stream() + .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().get(0), (a, b) -> a, HashMap::new)); } private Map stringTyped(Map headers) { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/http/Request.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/http/Request.java index b193869e05..41e3bd4407 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/http/Request.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/http/Request.java @@ -67,8 +67,12 @@ public class Request { * @return content type from headers */ public String contentType() { - Object value = this.headers.entrySet().stream().filter(e -> e.getKey().toLowerCase().equals("content-type")) - .findFirst().orElse(new AbstractMap.SimpleEntry<>("", null)).getValue(); + Object value = this.headers.entrySet() + .stream() + .filter(e -> e.getKey().toLowerCase().equals("content-type")) + .findFirst() + .orElse(new AbstractMap.SimpleEntry<>("", null)) + .getValue(); if (value == null) { return null; } @@ -144,9 +148,13 @@ public class Request { * @return a builder with request data filled in */ public static Request.Builder from(Request request) { - return new MethodBuilder().method(request.method.getMethodName(), request.path).scheme(request.scheme) - .protocol(request.protocol).queryParams(request.queryParameters).headers(request.headers) - .cookies(request.cookies).body(request.body); + return new MethodBuilder().method(request.method.getMethodName(), request.path) + .scheme(request.scheme) + .protocol(request.protocol) + .queryParams(request.queryParameters) + .headers(request.headers) + .cookies(request.cookies) + .body(request.body); } /** diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/http/Response.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/http/Response.java index 923ee853f7..e090bf2116 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/http/Response.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/http/Response.java @@ -56,8 +56,12 @@ public class Response { * @return header value or null if not present */ public String header(String key) { - return this.headers.entrySet().stream().filter(e -> e.getKey().equalsIgnoreCase(key)).findFirst() - .map(e -> e.getValue().toString()).orElse(null); + return this.headers.entrySet() + .stream() + .filter(e -> e.getKey().equalsIgnoreCase(key)) + .findFirst() + .map(e -> e.getValue().toString()) + .orElse(null); } /** @@ -65,8 +69,12 @@ public class Response { * @return header value or null if not present */ public String cookie(String key) { - return this.cookies.entrySet().stream().filter(e -> e.getKey().equalsIgnoreCase(key)).findFirst() - .map(e -> e.getValue().toString()).orElse(null); + return this.cookies.entrySet() + .stream() + .filter(e -> e.getKey().equalsIgnoreCase(key)) + .findFirst() + .map(e -> e.getValue().toString()) + .orElse(null); } /** @@ -102,8 +110,10 @@ public class Response { * @return builder filled with response data */ public static Builder from(Response response) { - return new Builder().headers(response.headers).statusCode(response.statusCode).cookies(response.cookies) - .body(response.body); + return new Builder().headers(response.headers) + .statusCode(response.statusCode) + .cookies(response.cookies) + .body(response.body); } /** 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 5bfced70d7..52b363bab1 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 @@ -63,9 +63,9 @@ public class CamelStubMessages implements MessageVerifierSender, Messag Exchange exchange = new DefaultExchange(this.context); exchange.setIn(message); StandaloneMetadata standaloneMetadata = StandaloneMetadata - .fromMetadata(contract != null ? contract.metadata : null); + .fromMetadata(contract != null ? contract.metadata : null); ContractVerifierMessageMetadata verifierMessageMetadata = ContractVerifierMessageMetadata - .fromMetadata(contract != null ? contract.metadata : null); + .fromMetadata(contract != null ? contract.metadata : null); String finalDestination = finalDestination(destination, additionalOptions(verifierMessageMetadata, standaloneMetadata), verifierMessageMetadata); log.info("Will send a message to URI [" + finalDestination + "]"); @@ -105,9 +105,9 @@ public class CamelStubMessages implements MessageVerifierSender, Messag public Message receive(String destination, long timeout, TimeUnit timeUnit, YamlContract contract) { try { StandaloneMetadata standaloneMetadata = StandaloneMetadata - .fromMetadata(contract != null ? contract.metadata : null); + .fromMetadata(contract != null ? contract.metadata : null); ContractVerifierMessageMetadata verifierMessageMetadata = ContractVerifierMessageMetadata - .fromMetadata(contract != null ? contract.metadata : null); + .fromMetadata(contract != null ? contract.metadata : null); String finalDestination = finalDestination(destination, additionalOptions(verifierMessageMetadata, standaloneMetadata), verifierMessageMetadata); log.info("Will receive a message from URI [" + finalDestination + "]"); 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 ebd489f809..9344551fd3 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 @@ -40,10 +40,10 @@ class DestinationResolver { String resolvedDestination(String destination, DefaultChannels defaultChannel) { try { BindingServiceProperties channelBindingServiceProperties = this.context - .getBean(BindingServiceProperties.class); + .getBean(BindingServiceProperties.class); Map channels = new HashMap<>(); for (Map.Entry entry : channelBindingServiceProperties.getBindings() - .entrySet()) { + .entrySet()) { if (destination.equals(entry.getValue().getDestination())) { if (log.isDebugEnabled()) { log.debug("Found a channel named [" + entry.getKey() + "] with destination [" + destination 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 30b315db74..ad7a5b5326 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 @@ -43,10 +43,10 @@ import org.springframework.cloud.contract.verifier.builder.handlebars.Handlebars public class HandlebarsTemplateProcessor implements TemplateProcessor, ContractTemplate { private static final Pattern ESCAPED_LEGACY_JSON_PATH_PATTERN = Pattern - .compile("^.*\\{\\{\\{jsonpath this '(.*)'}}}.*$"); + .compile("^.*\\{\\{\\{jsonpath this '(.*)'}}}.*$"); private static final Pattern ESCAPED_JSON_PATH_PATTERN = Pattern - .compile("^.*\\{\\{\\{jsonPath request.body '(.*)'}}}.*$"); + .compile("^.*\\{\\{\\{jsonPath request.body '(.*)'}}}.*$"); private static final Pattern LEGACY_JSON_PATH_PATTERN = Pattern.compile("^.*\\{\\{jsonpath this '(.*)'}}.*$"); @@ -117,8 +117,9 @@ public class HandlebarsTemplateProcessor implements TemplateProcessor, ContractT 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)) - .forEach(helper -> handlebars.registerHelper(helper.name(), helper)); + Arrays.stream(WireMockHelpers.values()) + .filter(helper -> !helper.equals(WireMockHelpers.jsonPath)) + .forEach(helper -> handlebars.registerHelper(helper.name(), helper)); return handlebars.compileInline(content); } catch (IOException e) { 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 d321fab7ce..67d0842052 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 @@ -67,9 +67,13 @@ public final class ContractScanner { */ 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); @@ -92,8 +96,11 @@ public final class ContractScanner { } private static ContractConverter contractConverter(File file) { - return SpringFactoriesLoader.loadFactories(ContractConverter.class, null).stream() - .filter(converter -> converter.isAccepted(file)).findFirst().orElse(null); + return SpringFactoriesLoader.loadFactories(ContractConverter.class, null) + .stream() + .filter(converter -> converter.isAccepted(file)) + .findFirst() + .orElse(null); } private static boolean isContractDescriptor(File file) { diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/ContractVerifierDslConverter.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/ContractVerifierDslConverter.java index 856f03b931..f3b2f280cf 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/ContractVerifierDslConverter.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/ContractVerifierDslConverter.java @@ -125,8 +125,8 @@ public class ContractVerifierDslConverter implements ContractConverter "Error " + d.getMessage(Locale.getDefault()) + " on line " - + d.getLineNumber() + " in " + d.getSource()) - .collect(Collectors.joining("\n"))); + throw new IllegalStateException( + "Exceptions occurred while trying to compile the file \n" + diagnostics.getDiagnostics() + .stream() + .map(d -> "Error " + d.getMessage(Locale.getDefault()) + " on line " + d.getLineNumber() + + " in " + d.getSource()) + .collect(Collectors.joining("\n"))); } try { // Add the folder with compiled classes to the class loader diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/MapConverter.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/MapConverter.java index 147f7e1c0e..d7bdfd41ae 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/MapConverter.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/MapConverter.java @@ -126,8 +126,9 @@ public class MapConverter { return convert((Map) value, function, parsingFunction); } else if (value instanceof Collection) { - return ((Collection) value).stream().map((v) -> transformValues(v, function, parsingFunction)) - .collect(Collectors.toList()); + return ((Collection) value).stream() + .map((v) -> transformValues(v, function, parsingFunction)) + .collect(Collectors.toList()); } return transformValue(function, value, parsingFunction); } 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 3ab96a6fbc..39c5a3ef03 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 @@ -106,10 +106,12 @@ public final class MetadataUtil { yamlProcessor.setResources(new ByteArrayResource(bytes)); Properties properties = yamlProcessor.getObject(); T props = (T) new Binder( - new MapConfigurationPropertySource(properties.entrySet().stream() - .collect(Collectors.toMap(entry -> entry.getKey().toString(), - entry -> entry.getValue().toString())))).bind("", objectToMerge.getClass()) - .get(); + new MapConfigurationPropertySource(properties.entrySet() + .stream() + .collect(Collectors.toMap(entry -> entry.getKey().toString(), + entry -> entry.getValue().toString())))) + .bind("", objectToMerge.getClass()) + .get(); BeanUtils.copyProperties(props, objectToMerge); return objectToMerge; } @@ -212,9 +214,9 @@ class VerifierObjectMapper extends ObjectMapper { VerifierObjectMapper() { setDefaultPropertyInclusion(JsonInclude.Include.NON_NULL) - .setDefaultPropertyInclusion(JsonInclude.Include.NON_DEFAULT) - .setDefaultPropertyInclusion(JsonInclude.Include.NON_EMPTY) - .setDefaultPropertyInclusion(JsonInclude.Include.NON_ABSENT); + .setDefaultPropertyInclusion(JsonInclude.Include.NON_DEFAULT) + .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()); addMixIn(Object.class, PropertyFilterMixIn.class); 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 beda224d4d..2326db7679 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 @@ -145,8 +145,10 @@ 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"); } /** diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/RegexpBuilders.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/RegexpBuilders.java index e4190d1148..3967f57c1b 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/RegexpBuilders.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/util/RegexpBuilders.java @@ -70,10 +70,12 @@ public final class RegexpBuilders { */ static String buildGStringRegexpForStubSide(GString gString) { return new GStringImpl( - Stream.of(gString.getValues()).map(RegexpBuilders::buildGStringRegexpForStubSide).map(s -> (Object) s) - .toArray(), + Stream.of(gString.getValues()) + .map(RegexpBuilders::buildGStringRegexpForStubSide) + .map(s -> (Object) s) + .toArray(), Stream.of(gString.getStrings()).map(RegexpBuilders::escapeSpecialRegexChars).toArray(String[]::new)) - .toString(); + .toString(); } /** @@ -98,10 +100,12 @@ public final class RegexpBuilders { */ public static String buildGStringRegexpForTestSide(GString gString) { return new GStringImpl( - Stream.of(gString.getValues()).map(RegexpBuilders::buildGStringRegexpForTestSide).map(s -> (Object) s) - .toArray(), + Stream.of(gString.getValues()) + .map(RegexpBuilders::buildGStringRegexpForTestSide) + .map(s -> (Object) s) + .toArray(), Stream.of(gString.getStrings()).map(RegexpBuilders::escapeSpecialRegexChars).toArray(String[]::new)) - .toString(); + .toString(); } /** 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 a89743340d..8ed7bc9515 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 @@ -83,7 +83,7 @@ public final class ToFileContractsTransformer { log.info("Found [{}] contract definition", contracts.size()); Class name = Class.forName(fqn); ContractConverter contractConverter = (ContractConverter) name.getDeclaredConstructors()[0] - .newInstance(); + .newInstance(); Collection converted = contractConverter.convertTo(contracts); log.info("Successfully converted contracts definitions"); Map stored = contractConverter.store(converted); 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 29601be5e0..80e5c93b3f 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 @@ -111,7 +111,8 @@ public final class XmlAssertion { private XmlVerifiable root() { return new FieldAssertion(this.cachedObjects, this.xPathBuffer, this.specialCaseXPathBuffer, "", - this.xmlAsserterConfiguration).node(""); + this.xmlAsserterConfiguration) + .node(""); } } diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/BlockBuilderTests.java b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/BlockBuilderTests.java index 44fef4a7f6..eae249dadf 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/BlockBuilderTests.java +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/BlockBuilderTests.java @@ -38,9 +38,10 @@ public class BlockBuilderTests { blockBuilder.append( "DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.getPayload()))\n") - .addEndingIfNotPresent(); - BDDAssertions.then(blockBuilder.toString()).isEqualTo( - "DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.getPayload()));\n"); + .addEndingIfNotPresent(); + BDDAssertions.then(blockBuilder.toString()) + .isEqualTo( + "DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.getPayload()));\n"); } @Test 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 9d7f67de09..c299c5102e 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 @@ -94,8 +94,9 @@ 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) - .hasFlattenedSizeGreaterThanOrEqualTo(7); + SpringCloudContractAssertions.assertThat(collection) + .hasFlattenedSizeGreaterThanOrEqualTo(0) + .hasFlattenedSizeGreaterThanOrEqualTo(7); } @Test @@ -128,8 +129,9 @@ 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) - .hasFlattenedSizeLessThanOrEqualTo(7); + SpringCloudContractAssertions.assertThat(collection) + .hasFlattenedSizeLessThanOrEqualTo(8) + .hasFlattenedSizeLessThanOrEqualTo(7); } @Test @@ -162,8 +164,9 @@ 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 @@ -196,8 +199,9 @@ 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 @@ -289,7 +293,7 @@ public class CollectionAssertTests { } catch (AssertionError e) { Assertions.assertThat(e) - .hasMessageContaining("[for jsonpath x.y.z] The size <3> is not between <5> and <7>"); + .hasMessageContaining("[for jsonpath x.y.z] The size <3> is not between <5> and <7>"); } } 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 da1d5ab56b..5b48d0d6ab 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 @@ -24,9 +24,10 @@ public class XmlBodyVerificationBuilderTest { // Then String test = blockBuilder.toString(); 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("builderFactory.setNamespaceAware(true);") + .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 bd9b61f8b3..7f7174b441 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 @@ -33,11 +33,11 @@ class ContractVerifierMetadataTests { // @formatter:on ContractVerifierMetadata metadata = ContractVerifierMetadata - .fromMetadata(this.mapper.readerForMapOf(Object.class).readValue(yamlEntry)); + .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", "")); + .isEqualToNormalizingPunctuationAndWhitespace(yamlEntry.replace("verifier:\n", "")); } } diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/http/RequestTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/http/RequestTests.java index 486a630eda..16f0b516e3 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/http/RequestTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/http/RequestTests.java @@ -26,20 +26,28 @@ class RequestTests { @Test void should_override_entries_when_using_builder_from_request() { - Request request = Request.given().delete("/foo").header("header", "header-value") - .cookie("cookie", "cookie-value").queryParam("query", "param-value") - .protocol(ContractVerifierHttpMetaData.Protocol.HTTP_1_1) - .scheme(ContractVerifierHttpMetaData.Scheme.HTTPS).build(); + Request request = Request.given() + .delete("/foo") + .header("header", "header-value") + .cookie("cookie", "cookie-value") + .queryParam("query", "param-value") + .protocol(ContractVerifierHttpMetaData.Protocol.HTTP_1_1) + .scheme(ContractVerifierHttpMetaData.Scheme.HTTPS) + .build(); - Request changedRequest = Request.from(request).path("/bar").header("header-foo", "header-bar") - .cookie("cookie-foo", "cookie-bar").queryParam("query-foo", "query-bar").build(); + Request changedRequest = Request.from(request) + .path("/bar") + .header("header-foo", "header-bar") + .cookie("cookie-foo", "cookie-bar") + .queryParam("query-foo", "query-bar") + .build(); then(changedRequest.path()).isEqualTo("/bar"); then(changedRequest.method().name()).isEqualTo("DELETE"); - then(changedRequest.headers()).containsEntry("header-foo", "header-bar").containsEntry("header", - "header-value"); - then(changedRequest.cookies()).containsEntry("cookie-foo", "cookie-bar").containsEntry("cookie", - "cookie-value"); + then(changedRequest.headers()).containsEntry("header-foo", "header-bar") + .containsEntry("header", "header-value"); + then(changedRequest.cookies()).containsEntry("cookie-foo", "cookie-bar") + .containsEntry("cookie", "cookie-value"); then(changedRequest.queryParams()).contains(new AbstractMap.SimpleEntry<>("query", "param-value"), new AbstractMap.SimpleEntry<>("query-foo", "query-bar")); then(changedRequest.protocol()).isEqualTo(ContractVerifierHttpMetaData.Protocol.HTTP_1_1); diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/http/ResponseTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/http/ResponseTests.java index 42d1700e9d..3e2bb58ba0 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/http/ResponseTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/http/ResponseTests.java @@ -24,17 +24,22 @@ class ResponseTests { @Test void should_override_entries_when_using_builder_from_response() { - Response response = Response.builder().statusCode(200).header("header", "header-value") - .cookie("cookie", "cookie-value").build(); + Response response = Response.builder() + .statusCode(200) + .header("header", "header-value") + .cookie("cookie", "cookie-value") + .build(); - Response changedResponse = Response.from(response).header("header-foo", "header-bar") - .cookie("cookie-foo", "cookie-bar").build(); + Response changedResponse = Response.from(response) + .header("header-foo", "header-bar") + .cookie("cookie-foo", "cookie-bar") + .build(); then(changedResponse.statusCode()).isEqualTo(200); - then(changedResponse.headers()).containsEntry("header-foo", "header-bar").containsEntry("header", - "header-value"); - then(changedResponse.cookies()).containsEntry("cookie-foo", "cookie-bar").containsEntry("cookie", - "cookie-value"); + then(changedResponse.headers()).containsEntry("header-foo", "header-bar") + .containsEntry("header", "header-value"); + then(changedResponse.cookies()).containsEntry("cookie-foo", "cookie-bar") + .containsEntry("cookie", "cookie-value"); } } 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 a006b4d9dc..2970fa3d31 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 @@ -45,7 +45,7 @@ class AmqpMetadataTests { // @formatter:on AmqpMetadata metadata = AmqpMetadata - .fromMetadata(this.mapper.readerForMapOf(Object.class).readValue(yamlEntry)); + .fromMetadata(this.mapper.readerForMapOf(Object.class).readValue(yamlEntry)); then(metadata.getInput().getConnectToBroker().getAdditionalOptions()).isEqualTo("foo1"); then(metadata.getInput().getConnectToBroker().getDeclareQueueWithName()).isEqualTo("foo2"); 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 753e47b64c..21e04df6db 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 @@ -35,17 +35,18 @@ import static org.assertj.core.api.Assertions.assertThat; public class AutoConfigureMessageVerifierTests { private ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withUserConfiguration(Configuration.class); + .withUserConfiguration(Configuration.class); @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, Binder.class)) - .run((context) -> { - assertThat(context.getBeansOfType(MessageVerifierSender.class)).hasSize(1); - assertThat(context.getBeansOfType(NoOpStubMessages.class)).hasSize(1); - }); + this.contextRunner + .withClassLoader( + new FilteredClassLoader(org.apache.camel.Message.class, org.springframework.messaging.Message.class, + JmsTemplate.class, KafkaTemplate.class, RabbitTemplate.class, Binder.class)) + .run((context) -> { + assertThat(context.getBeansOfType(MessageVerifierSender.class)).hasSize(1); + assertThat(context.getBeansOfType(NoOpStubMessages.class)).hasSize(1); + }); } @AutoConfigureMessageVerifier 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 940662bcf5..af53c6dca8 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,7 +29,7 @@ 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() { 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 6087548369..181b753d58 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,7 +29,7 @@ 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() { 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 600d98ccaa..ca51c98fcb 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,7 +29,7 @@ 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() { diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/jms/JmsStubMessagesTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/jms/JmsStubMessagesTests.java index c965957f49..7ec7d93f83 100644 --- a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/jms/JmsStubMessagesTests.java +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/jms/JmsStubMessagesTests.java @@ -47,7 +47,7 @@ public class JmsStubMessagesTests { springJmsStubMessages.send(anyString(), null, anyString(), null); final ArgumentCaptor messageCreatorArgumentCaptor = ArgumentCaptor - .forClass(MessageCreator.class); + .forClass(MessageCreator.class); verify(jmsTemplate, times(1)).send(anyString(), messageCreatorArgumentCaptor.capture()); 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 727b7c98d5..2d1a91a630 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 @@ -38,7 +38,7 @@ class KafkaMetadataTests { // @formatter:on KafkaMetadata metadata = KafkaMetadata - .fromMetadata(this.mapper.readerForMapOf(Object.class).readValue(yamlEntry)); + .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", "")); 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 9983d55e35..1fb07938f0 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,7 +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 a7a90d68e0..3b4761223d 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,7 +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() { 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 86c7f805bb..6ffdd5dc10 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 @@ -54,21 +54,21 @@ class contract_docs_examples implements Supplier> { // end::http_dsl[] org.springframework.cloud.contract.spec.Contract methodDsl = org.springframework.cloud.contract.spec.Contract - .make(c -> { - c.request(r -> { - // tag::method[] - r.method(r.GET()); - // end::method[] - r.url("/foo"); - }); - - c.response(r -> { - r.status(200); - }); - - c.priority(1); + .make(c -> { + c.request(r -> { + // tag::method[] + r.method(r.GET()); + // end::method[] + r.url("/foo"); }); + c.response(r -> { + r.status(200); + }); + + c.priority(1); + }); + org.springframework.cloud.contract.spec.Contract request = // tag::request[] org.springframework.cloud.contract.spec.Contract.make(c -> { @@ -273,8 +273,9 @@ 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"); }); @@ -295,17 +296,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"))))); }); }); @@ -324,9 +325,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 668027be27..d7fc5056c6 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 @@ -49,14 +49,14 @@ class contract_multipart implements Supplier> { h.contentType("multipart/form-data;boundary=AaB03x"); }); 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"))) - // a named parameter (e.g. with `file` name) that represents file - // with - // `name` and `content`. You can also call `named("fileName", - // "fileContent")` - .entry("file", r.named(namedProps(r)))); + // 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"))) + // a named parameter (e.g. with `file` name) that represents file + // with + // `name` and `content`. You can also call `named("fileName", + // "fileContent")` + .entry("file", r.named(namedProps(r)))); }); c.response(r -> { r.status(r.OK()); 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 743d24cf2a..bc431b3d97 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,8 +63,9 @@ 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[] 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 e2549c30aa..ef18083f00 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 @@ -218,7 +218,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); } } 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 e56cfb481f..2098fc10aa 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 @@ -235,8 +235,9 @@ public final class WireMockRestServiceServer { } for (final ContentPattern pattern : request.getBodyPatterns()) { if (pattern instanceof MatchesJsonPathPattern) { - expect.andExpect(MockRestRequestMatchers - .jsonPath(((MatchesJsonPathPattern) pattern).getMatchesJsonPath()).exists()); + expect + .andExpect(MockRestRequestMatchers.jsonPath(((MatchesJsonPathPattern) pattern).getMatchesJsonPath()) + .exists()); } else if (pattern instanceof MatchesXPathPattern) { expect.andExpect(xpath((MatchesXPathPattern) pattern)); @@ -320,7 +321,8 @@ public final class WireMockRestServiceServer { private DefaultResponseCreator response(ResponseDefinition response) { return withStatus(HttpStatus.valueOf(response.getStatus())).body(body(response)) - .contentType(contentType(response)).headers(responseHeaders(response)); + .contentType(contentType(response)) + .headers(responseHeaders(response)); } private byte[] body(ResponseDefinition response) { @@ -371,7 +373,7 @@ public final class WireMockRestServiceServer { @Override public void describeTo(Description description) { description.appendText("should match header: " + header + " with ") - .appendText(pattern.getExpected()); + .appendText(pattern.getExpected()); } })); } 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 d0fcd12cd1..2873cb46e3 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 @@ -62,7 +62,7 @@ public class WireMockRestTemplateConfiguration { if (requestFactoryField != null) { requestFactoryField.setAccessible(true); ClientHttpRequestFactory requestFactory = (ClientHttpRequestFactory) ReflectionUtils - .getField(requestFactoryField, restTemplate); + .getField(requestFactoryField, restTemplate); if (requestFactory instanceof HttpComponentsClientHttpRequestFactory factory) { factory.setHttpClient(createSslHttpClient()); } @@ -74,13 +74,15 @@ public class WireMockRestTemplateConfiguration { try { SSLConnectionSocketFactoryBuilder sslConnectionSocketFactoryBuilder = SSLConnectionSocketFactoryBuilder - .create(); + .create(); sslConnectionSocketFactoryBuilder - .setSslContext(new SSLContextBuilder() - .loadTrustMaterial(null, TrustSelfSignedStrategy.INSTANCE).build()) - .setHostnameVerifier(INSTANCE); + .setSslContext(new SSLContextBuilder().loadTrustMaterial(null, TrustSelfSignedStrategy.INSTANCE) + .build()) + .setHostnameVerifier(INSTANCE); PoolingHttpClientConnectionManager connectionManager = PoolingHttpClientConnectionManagerBuilder - .create().setSSLSocketFactory(sslConnectionSocketFactoryBuilder.build()).build(); + .create() + .setSSLSocketFactory(sslConnectionSocketFactoryBuilder.build()) + .build(); return HttpClients.custom().setConnectionManager(connectionManager).build(); } catch (Exception 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 692aee10d4..25631b732d 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 @@ -51,7 +51,9 @@ public abstract class WireMockSpring { 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() + "]"); 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 92f3cbf062..27689c0fc5 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 @@ -85,7 +85,7 @@ public class ContractDslSnippet extends TemplatedSnippet { public void document(Operation operation) throws IOException { TemplateEngine templateEngine = (TemplateEngine) operation.getAttributes().get(TemplateEngine.class.getName()); String renderedContract = templateEngine.compileTemplate(getTemplate()) - .render(createModelForContract(operation)); + .render(createModelForContract(operation)); this.model.put("contract", renderedContract); storeDslContract(operation, renderedContract); super.document(operation); @@ -170,7 +170,7 @@ public class ContractDslSnippet extends TemplatedSnippet { private void storeDslContract(Operation operation, String content) throws IOException { RestDocumentationContext context = (RestDocumentationContext) operation.getAttributes() - .get(RestDocumentationContext.class.getName()); + .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"); 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 3dd7a49937..424bb00dd0 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 @@ -69,7 +69,8 @@ public class ContractExchangeHandler extends WireMockVerifyHelper result) { ResponseDefinitionBuilder definition = ResponseDefinitionBuilder.responseDefinition() - .withBody(result.getResponseBodyContent()).withStatus(result.getStatus().value()); + .withBody(result.getResponseBodyContent()) + .withStatus(result.getStatus().value()); addResponseHeaders(definition, result.getResponseHeaders()); return definition; } @@ -87,7 +88,7 @@ public class ContractExchangeHandler extends WireMockVerifyHelper map = (((Map>) ReflectionUtils.getField(field, null)) - .get(index)); + .get(index)); if (map == null) { return new HashMap<>(); } @@ -263,12 +264,15 @@ class WireMockHttpRequestAdapter implements Request { // TODO: Consider caching this private Collection getWireMockParts() { MockHttpServletRequest request = MockMvcRequestBuilders - .request(this.result.getMethod(), this.result.getUriTemplate()) - .contentType(this.result.getRequestHeaders().getContentType()) - .content(this.result.getRequestBodyContent()).buildRequest(new MockServletContext()); + .request(this.result.getMethod(), this.result.getUriTemplate()) + .contentType(this.result.getRequestHeaders().getContentType()) + .content(this.result.getRequestBodyContent()) + .buildRequest(new MockServletContext()); try { - return new StandardMultipartHttpServletRequest(request).getParts().stream() - .map(part -> partFromServletPart(part)).collect(Collectors.toList()); + return new StandardMultipartHttpServletRequest(request).getParts() + .stream() + .map(part -> partFromServletPart(part)) + .collect(Collectors.toList()); } catch (Exception e) { throw new IllegalStateException(e); 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 b8b5b5bfa1..91347e23d7 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 @@ -67,8 +67,9 @@ public class ContractResultHandler extends WireMockVerifyHelper responseBody = webTestClient.get().uri("find-all").exchange().expectStatus() - .is2xxSuccessful().expectBody(new ParameterizedTypeReference>() { - }).returnResult().getResponseBody(); + List responseBody = webTestClient.get() + .uri("find-all") + .exchange() + .expectStatus() + .is2xxSuccessful() + .expectBody(new ParameterizedTypeReference>() { + }) + .returnResult() + .getResponseBody(); // assert Assertions.assertThat(responseBody.get(0).getName()).isEqualTo("my-name"); @@ -115,9 +121,11 @@ class TestController { @GetMapping("find-all") public Mono> findAll() { System.out.println("Will send a request to [" + this.baseUrl + "] HASH [" + this.hashCode() + "]"); - return webClient.get().uri(baseUrl + "/find-all").retrieve() - .bodyToMono(new ParameterizedTypeReference>() { - }); + return webClient.get() + .uri(baseUrl + "/find-all") + .retrieve() + .bodyToMono(new ParameterizedTypeReference>() { + }); } } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockApplicationTests.java index f80a5f7128..6b38559557 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockApplicationTests.java @@ -58,10 +58,10 @@ public class AutoConfigureWireMockApplicationTests { @Test public void contextLoads() throws Exception { stubFor(get(urlEqualTo("/test")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); assertThat(this.service.go()).isEqualTo("Hello World!"); assertThat(this.output.getOut()).as("Must contain debug logging for WireMock") - .contains("Matched response definition:"); + .contains("Matched response definition:"); } @Test diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockCustomPortApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockCustomPortApplicationTests.java index 52b5f363c5..e28e37fcd1 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockCustomPortApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockCustomPortApplicationTests.java @@ -53,7 +53,7 @@ public class AutoConfigureWireMockCustomPortApplicationTests { WireMock.verify(0, RequestPatternBuilder.allRequests()); stubFor(get(urlEqualTo("/test")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); assertThat(this.service.go()).isEqualTo("Hello World!"); wireMockServer.verify(1, RequestPatternBuilder.allRequests()); diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockHttpsPortApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockHttpsPortApplicationTests.java index 65c14a4654..e07312c0af 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockHttpsPortApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockHttpsPortApplicationTests.java @@ -51,21 +51,21 @@ public class AutoConfigureWireMockHttpsPortApplicationTests { @Test public void contextLoads() throws Exception { stubFor(get(urlEqualTo("/test")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); assertThat(this.service.go()).isEqualTo("Hello World!"); } @Test public void contextLoadsWithApacheClient() throws Exception { stubFor(get(urlEqualTo("/test")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); assertThat(this.service.goWithApacheClient()).isEqualTo("Hello World!"); } @Test public void contextLoadsWithApacheClientAndAdditonalInterceptor() throws Exception { stubFor(get(urlEqualTo("/test")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); assertThat(this.service.goWithApacheClientAndAdditonalInterceptor()).isEqualTo("Hello World!"); } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockOnlyHttpsPortApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockOnlyHttpsPortApplicationTests.java index 2e26c2630f..aeaaf56a0f 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockOnlyHttpsPortApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockOnlyHttpsPortApplicationTests.java @@ -46,7 +46,7 @@ public class AutoConfigureWireMockOnlyHttpsPortApplicationTests { @Test public void contextLoads() throws Exception { stubFor(get(urlEqualTo("/test")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + .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/AutoConfigureWireMockOnlyRandomPortHttpsApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockOnlyRandomPortHttpsApplicationTests.java index 59bc6e52e5..5023c92e67 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockOnlyRandomPortHttpsApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockOnlyRandomPortHttpsApplicationTests.java @@ -46,7 +46,7 @@ public class AutoConfigureWireMockOnlyRandomPortHttpsApplicationTests { @Test public void contextLoads() throws Exception { stubFor(get(urlEqualTo("/test")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + .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/AutoConfigureWireMockPortApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockPortApplicationTests.java index b186e6f104..b5de035cf4 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockPortApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockPortApplicationTests.java @@ -42,7 +42,7 @@ public class AutoConfigureWireMockPortApplicationTests { @Test public void contextLoads() throws Exception { stubFor(get(urlEqualTo("/test")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + .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/AutoConfigureWireMockRandomPortApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockRandomPortApplicationTests.java index 199de62ea7..e691354d2a 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockRandomPortApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockRandomPortApplicationTests.java @@ -53,7 +53,7 @@ public class AutoConfigureWireMockRandomPortApplicationTests { WireMock.verify(0, RequestPatternBuilder.allRequests()); stubFor(get(urlEqualTo("/test")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); assertThat(this.service.go()).isEqualTo("Hello World!"); wireMockServer.verify(1, RequestPatternBuilder.allRequests()); diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockRandomPortHttpsApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockRandomPortHttpsApplicationTests.java index ca5d0193fd..b99e0f13ae 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockRandomPortHttpsApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockRandomPortHttpsApplicationTests.java @@ -46,7 +46,7 @@ public class AutoConfigureWireMockRandomPortHttpsApplicationTests { @Test public void contextLoads() throws Exception { stubFor(get(urlEqualTo("/test")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + .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/AutoConfigureWireMockSamePortApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockSamePortApplicationTests.java index 74f6469e22..a44e4f96a1 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockSamePortApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockSamePortApplicationTests.java @@ -43,7 +43,7 @@ public class AutoConfigureWireMockSamePortApplicationTests { @Test public void contextLoads() throws Exception { stubFor(get(urlEqualTo("/test2")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World2!"))); + .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World2!"))); assertThat(this.service.go2()).isEqualTo("Hello World2!"); } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockWithResetAfterEachTestApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockWithResetAfterEachTestApplicationTests.java index 455a47b556..5803840257 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockWithResetAfterEachTestApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockWithResetAfterEachTestApplicationTests.java @@ -49,7 +49,7 @@ public class AutoConfigureWireMockWithResetAfterEachTestApplicationTests { @Test public void _01_test() throws Exception { this.wireMockServer - .givenThat(WireMock.get("/should_register_mapping").willReturn(WireMock.aResponse().withBody("bar"))); + .givenThat(WireMock.get("/should_register_mapping").willReturn(WireMock.aResponse().withBody("bar"))); String result = new RestTemplate().getForObject("http://" + this.hostname + "/should_register_mapping", String.class); diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockWithResetAfterEachTestNestedApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockWithResetAfterEachTestNestedApplicationTests.java index affb0e853d..1c0ef54ac0 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockWithResetAfterEachTestNestedApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockWithResetAfterEachTestNestedApplicationTests.java @@ -50,7 +50,7 @@ class AutoConfigureWireMockWithResetAfterEachTestNestedApplicationTests { @Order(1) void outerTest() { this.wireMockServer - .givenThat(WireMock.get("/should_register_mapping").willReturn(WireMock.aResponse().withBody("bar"))); + .givenThat(WireMock.get("/should_register_mapping").willReturn(WireMock.aResponse().withBody("bar"))); String result = new RestTemplate().getForObject("http://" + this.hostname + "/should_register_mapping", String.class); @@ -74,8 +74,8 @@ class AutoConfigureWireMockWithResetAfterEachTestNestedApplicationTests { @Test @Order(3) void innerTwo() { - WireMock.givenThat( - WireMock.get("/should_register_mapping").willReturn(WireMock.aResponse().withBody("bar"))); + WireMock + .givenThat(WireMock.get("/should_register_mapping").willReturn(WireMock.aResponse().withBody("bar"))); String result = new RestTemplate().getForObject("http://" + hostname + "/should_register_mapping", String.class); diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/MetaAnnotationWithResetAfterEachTestApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/MetaAnnotationWithResetAfterEachTestApplicationTests.java index 8ed90b9463..1128a560b6 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/MetaAnnotationWithResetAfterEachTestApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/MetaAnnotationWithResetAfterEachTestApplicationTests.java @@ -57,7 +57,7 @@ public class MetaAnnotationWithResetAfterEachTestApplicationTests { @Test public void _01_test() throws Exception { this.wireMockServer - .givenThat(WireMock.get("/should_register_mapping").willReturn(WireMock.aResponse().withBody("bar"))); + .givenThat(WireMock.get("/should_register_mapping").willReturn(WireMock.aResponse().withBody("bar"))); String result = new RestTemplate().getForObject("http://" + this.hostname + "/should_register_mapping", String.class); diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/TestExecutionListenerAllowsOtherBeforeActionsTest.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/TestExecutionListenerAllowsOtherBeforeActionsTest.java index 1bbdcd2b32..41f7e75a07 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/TestExecutionListenerAllowsOtherBeforeActionsTest.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/TestExecutionListenerAllowsOtherBeforeActionsTest.java @@ -59,7 +59,7 @@ class TestExecutionListenerAllowsOtherBeforeActionsTest { assertThat(beforeAllRunSuccessful).isTrue(); // check that wiremock instance is running stubFor(get(urlEqualTo("/test")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + .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/WiremockHttpsServerApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockHttpsServerApplicationTests.java index 1a7b4d6a5d..d52d00ba10 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockHttpsServerApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockHttpsServerApplicationTests.java @@ -45,7 +45,7 @@ public class WiremockHttpsServerApplicationTests { @Test public void contextLoads() throws Exception { stubFor(get(urlEqualTo("/test")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + .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/WiremockMockServerApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockMockServerApplicationTests.java index 0acb663193..214a22bbe5 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockMockServerApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockMockServerApplicationTests.java @@ -39,20 +39,23 @@ public class WiremockMockServerApplicationTests { @Test public void simpleGet() throws Exception { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/resource.json").build(); + .baseUrl("https://example.org") // + .stubs("classpath:/mappings/resource.json") + .build(); assertThat(this.restTemplate.getForObject("https://example.org/resource", String.class)) - .isEqualTo("Hello World"); + .isEqualTo("Hello World"); server.verify(); } @Test public void simplePutShouldFail() throws Exception { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/resource.json").build(); + .baseUrl("https://example.org") // + .stubs("classpath:/mappings/resource.json") + .build(); RequestEntity postRequest = RequestEntity.post(URI.create("https://example.org/resource")) - .accept(MediaType.TEXT_PLAIN).build(); + .accept(MediaType.TEXT_PLAIN) + .build(); ResponseEntity response; try { response = this.restTemplate.exchange(postRequest, String.class); @@ -68,17 +71,20 @@ public class WiremockMockServerApplicationTests { @Test public void simpleGetWithBodyFile() throws Exception { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/resource-with-body-file.json").build(); + .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\"}"); + .isEqualToIgnoringWhitespace("{\"message\":\"Hello World\"}"); server.verify(); } @Test public void simpleGetWithJsonBody() throws Exception { - MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate).baseUrl("https://example.org") - .stubs("classpath:/mappings/resource-with-json-body.json").build(); + MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) + .baseUrl("https://example.org") + .stubs("classpath:/mappings/resource-with-json-body.json") + .build(); String response = this.restTemplate.getForObject("https://example.org/resource", String.class); @@ -88,8 +94,10 @@ public class WiremockMockServerApplicationTests { @Test public void simpleGetWithBase64Body() throws Exception { - MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate).baseUrl("https://example.org") - .stubs("classpath:/mappings/resource-with-base64-body.json").build(); + MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) + .baseUrl("https://example.org") + .stubs("classpath:/mappings/resource-with-base64-body.json") + .build(); String response = this.restTemplate.getForObject("https://example.org/resource", String.class); @@ -100,29 +108,33 @@ public class WiremockMockServerApplicationTests { @Test 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(); + .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\"}"); + .isEqualToIgnoringWhitespace("{\"message\":\"Hello Custom\"}"); server.verify(); } @Test 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(); + .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\"}"); + .isEqualToIgnoringWhitespace("{\"message\":\"Hello Custom\"}"); server.verify(); } @Test public void simpleGetWithEmptyPath() throws Exception { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/resource-with-empty-path.json").build(); + .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"); server.verify(); } @@ -130,136 +142,154 @@ public class WiremockMockServerApplicationTests { @Test public void simpleGetWithContentType() throws Exception { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/resource-with-content-type.json").build(); + .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"); + .isEqualTo("Hello World"); server.verify(); } @Test public void simpleGetWithoutContentType() throws Exception { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/resource-without-content-type.json").build(); + .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"); + .isEqualTo("Hello World"); server.verify(); } @Test public void simplePost() throws Exception { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/poster.json").build(); + .baseUrl("https://example.org") // + .stubs("classpath:/mappings/poster.json") + .build(); assertThat(this.restTemplate.postForObject("https://example.org/poster", "greeting", String.class)) - .isEqualTo("Hello World"); + .isEqualTo("Hello World"); server.verify(); } @Test 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"); + .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"); } @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"); + .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"); } @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"); + .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"); } @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") - .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"); + .baseUrl("https://example.org") // order determined by content... + .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"); } @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") - .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"); + .baseUrl("https://example.org") // order matters... + .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"); // The first one matches, not the most precise! } @Test public void getWithPriortyOrder() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/resource-with-low-priority.json", - "classpath:/mappings/resource-with-high-priority.json") - .build(); + .baseUrl("https://example.org") // + .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"); + .isEqualTo("Hello High"); } @Test public void simpleGetWithAllStubs() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings").build(); + .baseUrl("https://example.org") // + .stubs("classpath:/mappings") + .build(); assertThat(this.restTemplate.getForObject("https://example.org/resource", String.class)) - .isEqualTo("Hello World"); + .isEqualTo("Hello World"); } @Test public void simpleGetWithAllStubsInDirectoryWithPeriod() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/io.stubs/mappings").build(); + .baseUrl("https://example.org") // + .stubs("classpath:/io.stubs/mappings") + .build(); assertThat(this.restTemplate.getForObject("https://example.org/resource", String.class)) - .isEqualTo("Hello World"); + .isEqualTo("Hello World"); } // Issue #135 @Test public void postWithBodyMatchingJsonPaths() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/body-matches-jsonpath.json").build(); + .baseUrl("https://example.org") // + .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"); + .isEqualTo("Hello Body"); } @Test public void postWithRequestThatHasNonMatchingJsonPaths() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/body-matches-jsonpath.json").build(); + .baseUrl("https://example.org") // + .stubs("classpath:/mappings/body-matches-jsonpath.json") + .build(); String response; try { @@ -277,25 +307,29 @@ public class WiremockMockServerApplicationTests { @Test public void postWithBodyMatchingXPath() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/body-matches-xpath.json").build(); + .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"), - String.class).getBody()).isEqualTo("Hello Body"); + assertThat(this.restTemplate + .exchange(RequestEntity.post(URI.create("https://example.org/body")) + .contentType(MediaType.APPLICATION_XML) + .body("RequiredThing"), String.class) + .getBody()).isEqualTo("Hello Body"); } @Test public void postWithRequestThatHasNonMatchingXPaths() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/body-matches-xpath.json").build(); + .baseUrl("https://example.org") // + .stubs("classpath:/mappings/body-matches-xpath.json") + .build(); ResponseEntity response; try { response = this.restTemplate.exchange(RequestEntity.post(URI.create("https://example.org/body")) - .contentType(MediaType.APPLICATION_XML).body(""), String.class); + .contentType(MediaType.APPLICATION_XML) + .body(""), String.class); } catch (AssertionError e) { response = null; @@ -308,19 +342,21 @@ public class WiremockMockServerApplicationTests { @Test public void postWithBodyMatchingJson() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/body-matches-equaltojson.json").build(); + .baseUrl("https://example.org") // + .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"); + .isEqualTo("Hello Body"); } @Test public void postWithRequestThatHasNonMatchingJson() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/body-matches-equaltojson.json").build(); + .baseUrl("https://example.org") // + .stubs("classpath:/mappings/body-matches-equaltojson.json") + .build(); String response; try { @@ -338,27 +374,29 @@ public class WiremockMockServerApplicationTests { @Test public void postWithBodyMatchingXml() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/body-matches-equaltoxml.json").build(); + .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"), - String.class).getBody()).isEqualTo("Hello Body"); + assertThat(this.restTemplate + .exchange(RequestEntity.post(URI.create("https://example.org/body")) + .contentType(MediaType.APPLICATION_XML) + .body("RequiredThing"), String.class) + .getBody()).isEqualTo("Hello Body"); } @Test public void postWithRequestThatHasNonMatchingXml() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/body-matches-equaltoxml.json").build(); + .baseUrl("https://example.org") // + .stubs("classpath:/mappings/body-matches-equaltoxml.json") + .build(); ResponseEntity response; try { - response = this.restTemplate.exchange( - RequestEntity.post(URI.create("https://example.org/body")).contentType(MediaType.APPLICATION_XML) - .body("AbsentThing"), - String.class); + 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; @@ -371,27 +409,29 @@ public class WiremockMockServerApplicationTests { @Test public void postWithBodyMatchingRegex() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/body-matches-regex.json").build(); + .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"), - String.class).getBody()).isEqualTo("Hello Body"); + assertThat(this.restTemplate + .exchange(RequestEntity.post(URI.create("https://example.org/body")) + .contentType(MediaType.APPLICATION_XML) + .body("RequiredThing"), String.class) + .getBody()).isEqualTo("Hello Body"); } @Test public void postWithRequestThatHasNonMatchingRegex() throws Exception { WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/body-matches-regex.json").build(); + .baseUrl("https://example.org") // + .stubs("classpath:/mappings/body-matches-regex.json") + .build(); ResponseEntity response; try { - response = this.restTemplate.exchange( - RequestEntity.post(URI.create("https://example.org/body")).contentType(MediaType.APPLICATION_XML) - .body("AbsentThing"), - String.class); + 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; @@ -404,38 +444,44 @@ public class WiremockMockServerApplicationTests { @Test public void getWithUrlPathMatching() throws Exception { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/url-path-pattern.json").build(); + .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"); + .isEqualTo("Hello Url Path Matcher"); server.verify(); } @Test public void getWithSimpleUrlPathMatchingWithTrailingSlashInBaseUrl() throws Exception { - MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate).baseUrl("https://example.org/") - .stubs("classpath:/mappings/url-simple-path-pattern-without-leading-slash.json").build(); + MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) + .baseUrl("https://example.org/") + .stubs("classpath:/mappings/url-simple-path-pattern-without-leading-slash.json") + .build(); assertThat(this.restTemplate.getForObject("https://example.org/my/api", String.class)) - .isEqualTo("Hello Url Path Matcher"); + .isEqualTo("Hello Url Path Matcher"); server.verify(); } @Test public void getWithSimpleUrlPathMatchingWithLeadingSlashInPattern() throws Exception { - MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate).baseUrl("https://example.org") - .stubs("classpath:/mappings/url-simple-path-pattern-with-leading-slash.json").build(); + MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) + .baseUrl("https://example.org") + .stubs("classpath:/mappings/url-simple-path-pattern-with-leading-slash.json") + .build(); assertThat(this.restTemplate.getForObject("https://example.org/my/api", String.class)) - .isEqualTo("Hello Url Path Matcher"); + .isEqualTo("Hello Url Path Matcher"); server.verify(); } @Test public void getWithUrlMatching() throws Exception { MockRestServiceServer server = WireMockRestServiceServer.with(this.restTemplate) // - .baseUrl("https://example.org") // - .stubs("classpath:/mappings/url-matches.json").build(); + .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"); + .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 06bfbf1291..5a203754af 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 @@ -46,7 +46,7 @@ public class WiremockServerApplicationTests { @Test public void hello() throws Exception { stubFor(get(urlEqualTo("/test")) - .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); + .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/WiremockServerRestDocsApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestDocsApplicationTests.java index b27169e9b6..347dd241b8 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 @@ -63,38 +63,44 @@ 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")) - .andDo(document("query")); + .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(); BDDAssertions.then(queryParameters.get("callback").getValuePattern()) - .isEqualTo(WireMock.equalTo("a_function_name")); + .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")); } @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(); @@ -118,7 +124,7 @@ public class WiremockServerRestDocsApplicationTests { @RequestMapping("/link") public String link(HttpServletRequest request) { UriComponents uriComponents = UriComponentsBuilder.fromHttpRequest(new ServletServerHttpRequest(request)) - .build(); + .build(); return "link: " + uriComponents.toUriString(); } 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 31f88a262d..bfc7c9e929 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 @@ -56,8 +56,10 @@ 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(); @@ -74,7 +76,7 @@ public class WiremockServerRestDocsHypermediaApplicationTests { @RequestMapping("/link") public String resource(HttpServletRequest request) { UriComponents uriComponents = UriComponentsBuilder.fromHttpRequest(new ServletServerHttpRequest(request)) - .build(); + .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 43694659fc..a99f2080aa 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,11 +62,12 @@ 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)) - .andExpect(MockMvcResultMatchers.content().string("Hello World")) - .andDo(WireMockRestDocs.verify().wiremock(WireMock.post(WireMock.urlPathEqualTo("/resource")) - .withRequestBody(WireMock.matching("greeting.*")))) - .andDo(document("posted")); + .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(document("posted")); assertThat(new File("target/snippets/stubs/posted.json")).exists(); } @@ -75,11 +76,12 @@ 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)) - .andExpect(MockMvcResultMatchers.content().string("Hello World")) - .andDo(WireMockRestDocs.verify().wiremock(WireMock.post(WireMock.urlPathEqualTo("/resource")) - .withRequestBody(WireMock.matching("garbage.*")))) - .andDo(document("posted")); + .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(document("posted")); } @Configuration 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 7b2f6af413..b074b44c68 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,20 +57,34 @@ 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(); 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 759673f113..860b93adf5 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 @@ -66,7 +66,8 @@ public class WiremockTestsApplication { @Bean public RestTemplate apacheHttpClientWithInterceptor(RestTemplateBuilder builder) { return builder.requestFactory(() -> new HttpComponentsClientHttpRequestFactory()) - .additionalInterceptors(new BasicAuthenticationInterceptor("u", "p")).build(); + .additionalInterceptors(new BasicAuthenticationInterceptor("u", "p")) + .build(); } } @@ -120,13 +121,16 @@ class Service { 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(); + .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/file/ResourcesFileSourceTest.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSourceTest.java index 8b9c063802..45f3374c63 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSourceTest.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSourceTest.java @@ -79,7 +79,7 @@ class ResourcesFileSourceTest { when(classpathFileSource1.getUri()).thenReturn(new URI(bannerStubPathInJar)); when(classpathFileSource1.exists()).thenReturn(true); when(classpathFileSource1.getBinaryFileNamed(bannerStubFilename)) - .thenReturn(new BinaryFile(new URI(bannerStubPathInJar + "/response-bannerList-success.json"))); + .thenReturn(new BinaryFile(new URI(bannerStubPathInJar + "/response-bannerList-success.json"))); ResourcesFileSource resourcesFileSource = new ResourcesFileSource(classpathFileSource1); // when & then 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 b5ad43e760..eb25025194 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 @@ -54,7 +54,7 @@ public class FirstTests { @Test public void shouldBeRejectedDueToAbnormalLoanAmount() throws Exception { server.addStubMapping(StubMapping - .buildFrom(StreamUtils.copyToString(markClientAsFraud.getInputStream(), Charset.forName("UTF-8")))); + .buildFrom(StreamUtils.copyToString(markClientAsFraud.getInputStream(), Charset.forName("UTF-8")))); // given: LoanApplication loanApplication = new LoanApplication(new Client("1234567890"), 99999); 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 a1ca63cb60..b609b255b9 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 @@ -54,7 +54,7 @@ public class SecondTests { @Test public void shouldBeRejectedDueToAbnormalLoanAmount() throws Exception { server.addStubMapping(StubMapping - .buildFrom(StreamUtils.copyToString(markClientAsNotFraud.getInputStream(), Charset.forName("UTF-8")))); + .buildFrom(StreamUtils.copyToString(markClientAsNotFraud.getInputStream(), Charset.forName("UTF-8")))); // given: LoanApplication loanApplication = new LoanApplication(new Client("1234567890"), 123.123); 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 b60c22a059..013b666377 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 @@ -72,7 +72,7 @@ class WebClientTest { Stubber(WireMockServer wireMockServer) { log.info("Setting up GET"); wireMockServer - .stubFor(get(urlEqualTo("/resources")).willReturn(aResponse().withBody("Everything seems fine!"))); + .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 9867468d88..a93e3e929a 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 @@ -78,24 +78,28 @@ public class ContractDslSnippetTests { @Before public void setUp() { this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context) - .apply(documentationConfiguration(this.restDocumentation).snippets() - .withAdditionalDefaults(new WireMockSnippet())) - .build(); + .apply(documentationConfiguration(this.restDocumentation).snippets() + .withAdditionalDefaults(new WireMockSnippet())) + .build(); } @Test 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\" }")) - .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("index", SpringCloudContractRestDocs.dslContract(Maps.of("priority", 1)))); + .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("index", SpringCloudContractRestDocs.dslContract(Maps.of("priority", 1)))); // end::contract_snippet[] then(file("/contracts/index.groovy")).exists(); @@ -123,15 +127,19 @@ public class ContractDslSnippetTests { @Test 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\" }")) - .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())); + .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())); 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(); @@ -157,7 +165,8 @@ 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")) - .andExpect(status().isOk()).andDo(document("empty", dslContract())); + .andExpect(status().isOk()) + .andDo(document("empty", dslContract())); then(file("/contracts/empty.groovy")).exists(); then(file("/empty/dsl-contract.adoc")).exists(); @@ -181,8 +190,10 @@ 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 67e7619d63..368b242b1a 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 @@ -169,7 +169,7 @@ public class WireMockSnippetTests { 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"))))); + .containsOnly(Assertions.entry("myParam", MultiValuePattern.of(equalTo(("myValue"))))); } private Operation operation(OperationRequest request, OperationResponse response, 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 f910f6ea97..feb95f7b51 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 @@ -55,7 +55,7 @@ class Issue178ListenerConfiguration { System.out.println("received: " + message); try { String payload = new ObjectMapper() - .writeValueAsString(new MyPojo("992e46d8-ab05-4a26-a740-6ef7b0daeab3", "CREATED")); + .writeValueAsString(new MyPojo("992e46d8-ab05-4a26-a740-6ef7b0daeab3", "CREATED")); Message outputMessage = MessageBuilder.withBody(payload.getBytes()).build(); rabbitTemplate.send(issue178OutputExchange().getName(), "routingkey", outputMessage); } @@ -83,8 +83,9 @@ class Issue178ListenerConfiguration { @Bean Binding binding() { - return BindingBuilder.bind(issue178InputQueue()).to(issue178InputExchange()) - .with("rated-item-service.rated-item-event.exchange"); + return BindingBuilder.bind(issue178InputQueue()) + .to(issue178InputExchange()) + .with("rated-item-service.rated-item-event.exchange"); } static class MyPojo { 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 d01b279fd9..2a5d7b9c04 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 @@ -43,8 +43,12 @@ public class BookRouteConfiguration { component.setAddresses("localhost:" + port); // scenario 1 - from bean to output - from("direct:start").unmarshal().json(JsonLibrary.Jackson, BookReturned.class).bean(bookService) - .marshal().json(JsonLibrary.Jackson, BookReturned.class).to("rabbitmq:output?queue=output"); + from("direct:start").unmarshal() + .json(JsonLibrary.Jackson, BookReturned.class) + .bean(bookService) + .marshal() + .json(JsonLibrary.Jackson, BookReturned.class) + .to("rabbitmq:output?queue=output"); } }; 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 e9624e3dfd..d1d7b24cd1 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 @@ -44,7 +44,7 @@ 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()); + .send(MessageBuilder.withPayload(bookReturned).setHeader("BOOK-NAME", bookReturned.bookName).build()); } } 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 4240ee8d46..68c1d26b3d 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 @@ -77,8 +77,9 @@ 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[] 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 88db9a47b7..704fa7fcbc 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 @@ -37,16 +37,16 @@ public class FailFastLoanApplicationServiceTests { // When 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" })) - .run()); + .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" })) + .run()); // 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 @@ -54,15 +54,14 @@ public class FailFastLoanApplicationServiceTests { // When 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()); + .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) - .hasMessageContaining("No stubs were found on classpath "); + .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 9917072cfa..67b4f323b6 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 @@ -57,8 +57,8 @@ public class LoanApplicationServiceTests { @Before public void setPort() { - this.service.setFraudUrl( - this.stubFinder.findStubUrl("contextPathFraudDetectionServer").toString() + "/fraud-path/"); + this.service + .setFraudUrl(this.stubFinder.findStubUrl("contextPathFraudDetectionServer").toString() + "/fraud-path/"); } @Test @@ -89,7 +89,7 @@ public class LoanApplicationServiceTests { LoanApplicationResult loanApplication = this.service.loanApplication(application); // then: assertThat(loanApplication.getLoanApplicationStatus()) - .isEqualTo(LoanApplicationStatus.LOAN_APPLICATION_REJECTED); + .isEqualTo(LoanApplicationStatus.LOAN_APPLICATION_REJECTED); assertThat(loanApplication.getRejectionReason()).isEqualTo("Amount too high"); } // end::client_tdd[]