diff --git a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HandlebarsContractTemplate.java b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HandlebarsContractTemplate.java index c156db1fc6..b7a6c5901c 100644 --- a/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HandlebarsContractTemplate.java +++ b/specs/spring-cloud-contract-spec-java/src/main/java/org/springframework/cloud/contract/spec/internal/HandlebarsContractTemplate.java @@ -59,7 +59,7 @@ public class HandlebarsContractTemplate implements ContractTemplate { @Override public String query(String key, int index) { - return wrapped("request.query." + key + ".[" + String.valueOf(index) + "]"); + return wrapped("request.query." + key + ".[" + index + "]"); } @Override @@ -69,7 +69,7 @@ public class HandlebarsContractTemplate implements ContractTemplate { @Override public String path(int index) { - return wrapped("request.path.[" + String.valueOf(index) + "]"); + return wrapped("request.path.[" + index + "]"); } @Override @@ -79,7 +79,7 @@ public class HandlebarsContractTemplate implements ContractTemplate { @Override public String header(String key, int index) { - return wrapped("request.headers." + key + ".[" + String.valueOf(index) + "]"); + return wrapped("request.headers." + key + ".[" + index + "]"); } @Override @@ -94,7 +94,7 @@ public class HandlebarsContractTemplate implements ContractTemplate { @Override public String escapedBody() { - return escapedWrapped("request.body"); + return escapedWrapped("escapejsonbody"); } @Override @@ -119,7 +119,7 @@ public class HandlebarsContractTemplate implements ContractTemplate { @Override public String escapedQuery(String key, int index) { - return escapedWrapped("request.query." + key + ".[" + String.valueOf(index) + "]"); + return escapedWrapped("request.query." + key + ".[" + index + "]"); } @Override @@ -129,7 +129,7 @@ public class HandlebarsContractTemplate implements ContractTemplate { @Override public String escapedPath(int index) { - return escapedWrapped("request.path.[" + String.valueOf(index) + "]"); + return escapedWrapped("request.path.[" + index + "]"); } @Override @@ -139,7 +139,7 @@ public class HandlebarsContractTemplate implements ContractTemplate { @Override public String escapedHeader(String key, int index) { - return escapedWrapped("request.headers." + key + ".[" + String.valueOf(index) + "]"); + return escapedWrapped("request.headers." + key + ".[" + index + "]"); } @Override diff --git a/spring-cloud-contract-dependencies/pom.xml b/spring-cloud-contract-dependencies/pom.xml index a80b5dbf93..d24a7002b6 100644 --- a/spring-cloud-contract-dependencies/pom.xml +++ b/spring-cloud-contract-dependencies/pom.xml @@ -15,7 +15,7 @@ spring-cloud-contract-dependencies Spring Cloud Contract Dependencies - 2.33.0 + 2.33.2 0.6.1 diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/file/ContractFileScanner.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/file/ContractFileScanner.java index ac9b81e100..d73a377b95 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/file/ContractFileScanner.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/file/ContractFileScanner.java @@ -110,7 +110,7 @@ public class ContractFileScanner { private void appendRecursively(File baseDir, MultiValueMap result) { List converters = convertersWithYml(); if (LOG.isTraceEnabled()) { - LOG.trace("Found the following contract converters ${converters}"); + LOG.trace("Found the following contract converters " + converters); } File[] files = baseDir.listFiles(); if (files == null) { @@ -135,14 +135,14 @@ public class ContractFileScanner { else { appendRecursively(file, result); if (LOG.isDebugEnabled()) { - LOG.debug( - "File [$file] is ignored. Is a contract file? [$contractFile]. Should be included by pattern? [$included]"); + LOG.debug("File [" + file + "] is ignored. Is a contract file? [" + contractFile + + "]. Should be included by pattern? [" + included + "]"); } } } else { if (LOG.isDebugEnabled()) { - LOG.debug("File [$file] is ignored. Should be excluded? [$excluded]"); + LOG.debug("File [" + file + "] is ignored. Should be excluded? [" + excluded + "]"); } } } @@ -176,7 +176,8 @@ public class ContractFileScanner { appendRecursively(file, result); if (LOG.isDebugEnabled()) { LOG.debug( - "File [$file] wasn't ignored but no converter was applicable. The file is a directory [${file.isDirectory()}]"); + "File [" + file + "] wasn't ignored but no converter was applicable. The file is a directory [" + + file.isDirectory() + "]"); } } } @@ -219,7 +220,6 @@ public class ContractFileScanner { if (matcher.matches(file.toPath())) { return true; } - LOG.debug("Path [{}] doesn't match the pattern [{}]", file.toPath(), matcher); } return false; } 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 21a934276d..81df9e6040 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 @@ -117,4 +117,10 @@ public class ContractMetadata { return convertedContractWithMetadata; } + @Override + public String toString() { + return "ContractMetadata{" + "path=" + path + ", ignored=" + ignored + ", groupSize=" + groupSize + ", order=" + + order + '}'; + } + } diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/file/ContractFileScannerSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/file/ContractFileScannerSpec.groovy index ddc7670524..a6a7bac0ab 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/file/ContractFileScannerSpec.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/file/ContractFileScannerSpec.groovy @@ -22,11 +22,11 @@ import java.nio.file.Path import org.junit.Rule import org.junit.rules.TemporaryFolder import spock.lang.Specification -import wiremock.com.google.common.collect.ListMultimap import org.springframework.cloud.contract.spec.Contract import org.springframework.cloud.contract.spec.ContractConverter import org.springframework.util.FileSystemUtils +import org.springframework.util.MultiValueMap /** * @author Jakub Kubrynski, codearte.io @@ -52,7 +52,7 @@ class ContractFileScannerSpec extends Specification { Set ignored = ["other/different/**"] as Set ContractFileScanner scanner = new ContractFileScanner(baseDir, excluded, ignored, [] as Set, "") when: - ListMultimap result = scanner.findContracts() + MultiValueMap result = scanner.findContractsRecursively() then: result.keySet().size() == 3 result.get(baseDir.toPath().resolve("different")).size() == 1 @@ -70,9 +70,9 @@ class ContractFileScannerSpec extends Specification { Set ignored = ["bar/**"] as Set ContractFileScanner scanner = new ContractFileScanner(baseDir, excluded, ignored, [] as Set, "") when: - ListMultimap result = scanner.findContracts() + MultiValueMap result = scanner.findContractsRecursively() then: - result.entries().size() == 2 + result.entrySet().size() == 2 and: Collection ignoredSet = result.get(baseDir.toPath().resolve("bar")) ignoredSet.size() == 1 @@ -84,19 +84,19 @@ class ContractFileScannerSpec extends Specification { File baseDir = new File(this.getClass().getResource("/directory/with/scenario").toURI()) ContractFileScanner scanner = new ContractFileScanner(baseDir, [] as Set, [] as Set, [] as Set, "") when: - ListMultimap contracts = scanner.findContracts() + MultiValueMap contracts = scanner.findContractsRecursively() then: - contracts.values().size() == 3 - contracts.values().find { + contracts.values()[0].size() == 3 + contracts.values()[0].find { it.path.fileName.toString().startsWith('01') }.groupSize == 3 - contracts.values().find { + contracts.values()[0].find { it.path.fileName.toString().startsWith('01') }.order == 0 - contracts.values().find { + contracts.values()[0].find { it.path.fileName.toString().startsWith('02') }.order == 1 - contracts.values().find { + contracts.values()[0].find { it.path.fileName.toString().startsWith('03') }.order == 2 } @@ -126,7 +126,7 @@ class ContractFileScannerSpec extends Specification { } } when: - scanner.findContracts() + scanner.findContractsRecursively() then: IllegalStateException e = thrown(IllegalStateException) e.cause.message == "boom" @@ -165,10 +165,10 @@ class ContractFileScannerSpec extends Specification { } } when: - ListMultimap result = scanner.findContracts() + MultiValueMap result = scanner.findContractsRecursively() then: result.keySet().size() == 1 - result.entries().every { it.value.convertedContract } + result.entrySet().every { it.value.convertedContract } } def "should find contracts for include pattern"() { @@ -181,24 +181,24 @@ class ContractFileScannerSpec extends Specification { Set included = ["social-service/**", "**/coupon-collected/**/*V1*"] as Set ContractFileScanner scanner = new ContractFileScanner(baseDir, [] as Set, [] as Set, included, null) when: - ListMultimap result = scanner.findContracts() + MultiValueMap result = scanner.findContractsRecursively() then: result.keySet().size() == 3 - result.values().find { + result.values()[0].find { (it.path.fileName.toString() == 'couponCollectedEventV1.groovy') }.groupSize == 2 - result.values().find { + result.values()[0].find { (it.convertedContract.first().label == 'couponCollectedV1') } - result.values().findAll { + result.values()[0].findAll { (it.path.fileName.toString() == 'couponCollectedEventV2.groovy') }.isEmpty() - result.values().find { - (it.path.fileName.toString() == 'shouldUpdateUserInfo.groovy') - }.groupSize == 1 - result.values().find { - (it.path.fileName.toString() == 'shouldReturnEmptyFriendsWhenGetFriends.groovy') - }.groupSize == 1 + result.values().find { list -> + list.find { it.path.fileName.toString() == 'shouldUpdateUserInfo.groovy' } + }[0].groupSize == 1 + result.values().find { list -> + list.find { it.path.fileName.toString() == 'shouldReturnEmptyFriendsWhenGetFriends.groovy' } + }[0].groupSize == 1 result.get(baseDir.toPath().resolve("coupon-sent")) == null result.get(baseDir.toPath().resolve("reward-rules")) == null }