diff --git a/docker/spring-cloud-contract-docker/get_dependencies.sh b/docker/spring-cloud-contract-docker/get_dependencies.sh
index 1eabd3a1ea..08accea4e8 100755
--- a/docker/spring-cloud-contract-docker/get_dependencies.sh
+++ b/docker/spring-cloud-contract-docker/get_dependencies.sh
@@ -2,7 +2,7 @@
set -e
-WRAPPER_VERSION="6.4"
+WRAPPER_VERSION="7.0"
GRADLE_BIN_DIR="gradle-${WRAPPER_VERSION}-bin"
GRADLE_WRAPPER_DIR="${HOME}/.gradle/wrapper/dists/${GRADLE_BIN_DIR}"
CURRENT_DIR="$( pwd )"
diff --git a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar
index 62d4c05355..e708b1c023 100644
Binary files a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar and b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties
index 4c5803d13c..f371643eed 100644
--- a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties
+++ b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/docker/spring-cloud-contract-docker/project/gradlew b/docker/spring-cloud-contract-docker/project/gradlew
index fbd7c51583..4f906e0c81 100755
--- a/docker/spring-cloud-contract-docker/project/gradlew
+++ b/docker/spring-cloud-contract-docker/project/gradlew
@@ -130,7 +130,7 @@ fi
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
+
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
diff --git a/docker/spring-cloud-contract-docker/project/gradlew.bat b/docker/spring-cloud-contract-docker/project/gradlew.bat
index a9f778a7a9..ac1b06f938 100644
--- a/docker/spring-cloud-contract-docker/project/gradlew.bat
+++ b/docker/spring-cloud-contract-docker/project/gradlew.bat
@@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
+if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -54,7 +54,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-if exist "%JAVA_EXE%" goto init
+if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -64,21 +64,6 @@ echo location of your Java installation.
goto fail
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
:execute
@rem Setup the command line
@@ -86,7 +71,7 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
diff --git a/pom.xml b/pom.xml
index ed595ac7fc..f1a4c9c07b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,8 +37,7 @@
3.0.6.RELEASE
5.0.4
3.2.11
- 1.3-groovy-2.5
- 0.5.1
+ 2.0-M5-groovy-3.0
0.2.2
1.9
4.2.0
@@ -53,7 +52,7 @@
1.12.1
- 2.5.14
+ 3.0.8
3.6.3
@@ -196,9 +195,9 @@
- info.solidsoft.spock
- spock-global-unroll
- ${spock-global-unroll.version}
+ org.spockframework
+ spock-junit4
+ ${spock-spring.version}
io.specto
diff --git a/samples/standalone/dsl/http-client/gradle/wrapper/gradle-wrapper.properties b/samples/standalone/dsl/http-client/gradle/wrapper/gradle-wrapper.properties
index 4c5803d13c..f371643eed 100644
--- a/samples/standalone/dsl/http-client/gradle/wrapper/gradle-wrapper.properties
+++ b/samples/standalone/dsl/http-client/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/samples/standalone/dsl/http-server/gradle/wrapper/gradle-wrapper.properties b/samples/standalone/dsl/http-server/gradle/wrapper/gradle-wrapper.properties
index 4c5803d13c..f371643eed 100644
--- a/samples/standalone/dsl/http-server/gradle/wrapper/gradle-wrapper.properties
+++ b/samples/standalone/dsl/http-server/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/samples/standalone/restdocs/http-client/gradle/wrapper/gradle-wrapper.properties b/samples/standalone/restdocs/http-client/gradle/wrapper/gradle-wrapper.properties
index 4c5803d13c..f371643eed 100644
--- a/samples/standalone/restdocs/http-client/gradle/wrapper/gradle-wrapper.properties
+++ b/samples/standalone/restdocs/http-client/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/samples/standalone/restdocs/http-server/gradle/wrapper/gradle-wrapper.properties b/samples/standalone/restdocs/http-server/gradle/wrapper/gradle-wrapper.properties
index 4c5803d13c..f371643eed 100644
--- a/samples/standalone/restdocs/http-server/gradle/wrapper/gradle-wrapper.properties
+++ b/samples/standalone/restdocs/http-server/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/samples/standalone/webclient/http-client/gradle/wrapper/gradle-wrapper.properties b/samples/standalone/webclient/http-client/gradle/wrapper/gradle-wrapper.properties
index 4c5803d13c..f371643eed 100644
--- a/samples/standalone/webclient/http-client/gradle/wrapper/gradle-wrapper.properties
+++ b/samples/standalone/webclient/http-client/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/samples/standalone/webclient/http-server/build.gradle b/samples/standalone/webclient/http-server/build.gradle
index dab95ce0cc..5c2efeae1c 100644
--- a/samples/standalone/webclient/http-server/build.gradle
+++ b/samples/standalone/webclient/http-server/build.gradle
@@ -3,7 +3,6 @@ plugins {
id "org.springframework.boot"
id "io.spring.dependency-management"
id "maven-publish"
- id "maven"
/**
* While the SCC Gradle plugin is not strictly necessary for this project.
* It is included to ensure that if the contractDslDir does not exist, then
diff --git a/samples/standalone/webclient/http-server/gradle/wrapper/gradle-wrapper.properties b/samples/standalone/webclient/http-server/gradle/wrapper/gradle-wrapper.properties
index 4c5803d13c..f371643eed 100644
--- a/samples/standalone/webclient/http-server/gradle/wrapper/gradle-wrapper.properties
+++ b/samples/standalone/webclient/http-server/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/specs/spring-cloud-contract-spec-java/pom.xml b/specs/spring-cloud-contract-spec-java/pom.xml
index 41813c4edb..1eebc5bf6d 100644
--- a/specs/spring-cloud-contract-spec-java/pom.xml
+++ b/specs/spring-cloud-contract-spec-java/pom.xml
@@ -66,11 +66,6 @@
spring-boot-starter-test
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
diff --git a/specs/spring-cloud-contract-spec/pom.xml b/specs/spring-cloud-contract-spec/pom.xml
index 28eeff8d77..222cdbaad3 100644
--- a/specs/spring-cloud-contract-spec/pom.xml
+++ b/specs/spring-cloud-contract-spec/pom.xml
@@ -32,11 +32,6 @@
spring-boot-starter-test
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
diff --git a/spring-cloud-contract-stub-runner/pom.xml b/spring-cloud-contract-stub-runner/pom.xml
index 1e8b3a228e..8022acce99 100644
--- a/spring-cloud-contract-stub-runner/pom.xml
+++ b/spring-cloud-contract-stub-runner/pom.xml
@@ -175,11 +175,6 @@
spring-boot-starter-web
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
org.springframework.cloud
spring-cloud-starter-zookeeper-discovery
@@ -215,6 +210,11 @@
spring-boot-starter-webflux
test
+
+ org.spockframework
+ spock-junit4
+ test
+
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-converters/pom.xml
index 4d0113aff6..fbc449378f 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-converters/pom.xml
+++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/pom.xml
@@ -61,11 +61,6 @@
spring-boot-starter-test
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
org.springframework.cloud
spring-cloud-contract-wiremock
@@ -81,6 +76,11 @@
rest-assured
test
+
+ org.spockframework
+ spock-junit4
+ test
+
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/build.gradle
index 6c4955f501..f36d056fae 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/build.gradle
+++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/build.gradle
@@ -2,19 +2,11 @@ buildscript {
repositories {
mavenCentral()
mavenLocal()
- if (project.hasProperty('fatJar')) {
- jcenter()
- }
//For plugin-publish-plugin. Could be limited only to that dependency with Gradle 5.1+ - https://docs.gradle.org/5.1.1/release-notes.html#repository-to-dependency-matching
gradlePluginPortal()
}
dependencies {
- classpath "com.bmuschko:gradle-nexus-plugin:2.3"
- classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.5.3"
- classpath 'com.gradle.publish:plugin-publish-plugin:0.11.0'
- if (project.hasProperty('fatJar')) {
- classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
- }
+ classpath 'com.gradle.publish:plugin-publish-plugin:0.14.0'
}
}
@@ -47,8 +39,7 @@ repositories {
jcenter()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
- maven { url "https://repo.spring.io/libs-release-local" }
- maven { url "https://repo.spring.io/libs-staging-local/" }
+ maven { url "https://repo.spring.io/release" }
}
//Dependencies in all subprojects - https://solidsoft.wordpress.com/2014/11/13/gradle-tricks-display-dependencies-for-all-subprojects-in-multi-project-build/
@@ -70,9 +61,9 @@ dependencies {
implementation "org.apache.maven.resolver:maven-resolver-api:1.4.1"
implementation "org.eclipse.jgit:org.eclipse.jgit:5.5.1.201910021850-r"
implementation "com.jcraft:jsch.agentproxy.jsch:0.0.9"
- implementation "com.fasterxml.jackson.core:jackson-databind:2.11.3"
+ implementation "com.fasterxml.jackson.core:jackson-databind:2.11.4"
- implementation "org.springframework:spring-core:5.3.2"
+ implementation "org.springframework:spring-core:5.3.6"
implementation("org.springframework.cloud:spring-cloud-contract-shade:${project.version}")
api("org.springframework.cloud:spring-cloud-contract-stub-runner:${project.version}") {
exclude(group: '*')
@@ -81,10 +72,9 @@ dependencies {
exclude(group: '*')
}
- testImplementation('org.spockframework:spock-core:1.3-groovy-2.5') {
+ testImplementation('org.spockframework:spock-core:2.0-M5-groovy-3.0') { // @releaser:version-check-off
exclude(group: 'org.codehaus.groovy')
}
- testImplementation 'info.solidsoft.spock:spock-global-unroll:0.5.0'
testImplementation localGroovy()
testImplementation gradleTestKit()
}
@@ -112,16 +102,6 @@ dependencies {
jansi 'org.fusesource.jansi:jansi:1.11'
}
-/*jacoco {
- toolVersion = "0.7.7.201606060606"
-}
-
-jacocoTestReport {
- reports {
- xml.enabled true
- }
-}*/
-
jar {
manifest {
attributes 'Implementation-Version': project.version
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/gradle/release.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/gradle/release.gradle
index 10cf0db599..aa9fcdaaa3 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/gradle/release.gradle
+++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/gradle/release.gradle
@@ -1,10 +1,7 @@
// This setup seems to work. Let's not touch it.
-apply plugin: 'maven'
apply plugin: 'maven-publish'
-//apply plugin: 'signing'
-
-uploadArchives.dependsOn { [check] }
+//apply plugin: 'signing'
task sourcesJar(type: Jar) {
classifier 'sources'
@@ -82,63 +79,6 @@ if (isReleaseToCentral) {
}
}
-afterEvaluate {
- uploadArchives {
- repositories {
- mavenDeployer {
- // POM signature
- if (isReleaseVersion && isReleaseToCentral) {
- beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
- }
- // Target repository
- String repoUserName = isReleaseToCentral ? getProp("SONATYPE_USER") : repoUser
- String repoPass = isReleaseToCentral ? getProp("SONATYPE_PASSWORD") : repoPass
- repository(url: repoUrl) {
- authentication(userName: repoUserName, password: repoPass)
- }
- pom.project {
- name "$project.name"
- packaging 'jar'
- description 'Spring Cloud Contract Gradle Plugin'
- url 'https://github.com/spring-cloud/spring-cloud-contract'
- inceptionYear '2014'
-
- scm {
- connection 'scm:git:git@github.com:spring-cloud/spring-cloud-contract.git'
- developerConnection 'scm:git:git@github.com:spring-cloud/spring-cloud-contract.git'
- url 'https://github.com/spring-cloud/spring-cloud-contract'
- }
-
- licenses {
- license {
- name 'The Apache License, Version 2.0'
- url 'https://www.apache.org/licenses/LICENSE-2.0.txt'
- }
- }
-
- developers {
- developer {
- id 'jkubrynski'
- name 'Jakub Kubrynski'
- email 'jk ATT codearte DOTT io'
- }
- developer {
- id 'marcingrzejszczak'
- name 'Marcin Grzejszczak'
- email 'mgrzejszczak ATT pivotal DOTT io'
- }
- developer {
- id 'dsyer'
- name 'Dave Syer'
- email 'dsyer ATT pivotal DOTT io'
- }
- }
- }
- }
- }
- }
-}
-
String getProp(String propName) {
return hasProperty(propName) ?
(getProperty(propName) ?: System.properties[propName]) : System.properties[propName] ?:
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/gradle/wrapper/gradle-wrapper.properties b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/gradle/wrapper/gradle-wrapper.properties
index 4c5803d13c..f371643eed 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/gradle/wrapper/gradle-wrapper.properties
+++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-pact/pom.xml
index 5aa3f50265..f268268af0 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/pom.xml
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/pom.xml
@@ -61,11 +61,6 @@
spring-boot-starter-test
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
org.springframework.cloud
spring-cloud-contract-wiremock
diff --git a/spring-cloud-contract-verifier/pom.xml b/spring-cloud-contract-verifier/pom.xml
index 462aa4ca8c..ea86ab443c 100644
--- a/spring-cloud-contract-verifier/pom.xml
+++ b/spring-cloud-contract-verifier/pom.xml
@@ -178,11 +178,6 @@
spock-core
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
org.springframework.boot
spring-boot-starter-test
@@ -280,8 +275,8 @@
test
- org.junit.vintage
- junit-vintage-engine
+ org.spockframework
+ spock-junit4
test
diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/NameProvider.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/NameProvider.java
index 1dcfa55623..c242275197 100644
--- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/NameProvider.java
+++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/NameProvider.java
@@ -51,14 +51,14 @@ class NameProvider {
else if (contractMetadata.getConvertedContract().size() > 1) {
int index = findIndexOf(contractMetadata.getConvertedContract(), stubContent);
String name = camelCasedMethodFromFileName(stubsFile) + "_" + index;
- if (log.isDebugEnabled()) {
- log.debug("Scenario found. The method name will be [" + name + "]");
+ if (log.isTraceEnabled()) {
+ log.trace("Scenario found. The method name will be [" + name + "]");
}
return name;
}
String name = camelCasedMethodFromFileName(stubsFile);
- if (StringUtils.hasText(name) && log.isDebugEnabled()) {
- log.debug("The method name will be [" + name + "]");
+ if (StringUtils.hasText(name) && log.isTraceEnabled()) {
+ log.trace("The method name will be [" + name + "]");
}
return name;
}
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 038ec9133c..f96d6a7274 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
@@ -212,17 +212,17 @@ public class SingleContractMetadata {
private String calculateMethodName() {
if (!isEmpty(contract.getName())) {
String name = camelCase(convertIllegalPackageChars(contract.getName()));
- log.debug("Overriding the default test name with [{}]", name);
+ log.trace("Overriding the default test name with [{}]", name);
return name;
}
if (allContracts.size() > 1) {
int index = allContracts.indexOf(getContract());
String name = String.format("%s_%d", camelCasedMethodFromFileName(stubsPath), index);
- log.debug("Scenario found. The method name will be [{}]", name);
+ log.trace("Scenario found. The method name will be [{}]", name);
return name;
}
String name = camelCasedMethodFromFileName(stubsPath);
- log.debug("The method name will be [{}]", name);
+ log.trace("The method name will be [{}]", name);
return name;
}
diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/JaxRsClientMethodBuilderSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/JaxRsClientMethodBuilderSpec.groovy
index c496ef30c2..21297a4631 100644
--- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/JaxRsClientMethodBuilderSpec.groovy
+++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/JaxRsClientMethodBuilderSpec.groovy
@@ -484,7 +484,8 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
}
}
- def "should generate regex assertions for map objects in response body with #methodBodyName"() {
+ @Unroll
+ def "should generate regex assertions for map objects in response body with #methodBuilderName"() {
given:
Contract contractDsl = Contract.make {
request {
diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockResponseStubStrategySpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockResponseStubStrategySpec.groovy
index 1492e62527..22d490a2c7 100644
--- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockResponseStubStrategySpec.groovy
+++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockResponseStubStrategySpec.groovy
@@ -20,6 +20,7 @@ import java.util.function.Function
import groovy.json.JsonSlurper
import spock.lang.Issue
+import spock.lang.Shared
import spock.lang.Specification
import org.springframework.cloud.contract.spec.Contract
@@ -95,157 +96,157 @@ class WireMockResponseStubStrategySpec extends Specification {
assert body.get("double") instanceof BigDecimal
}
- def "should convert patterns to proper value"() {
- given:
- def contract = Contract.make {
- request {
- method(GET())
- urlPath(value(regex("/info/[0-9]"))) {
- queryParameters {
- parameter 'limit': $(consumer(equalTo('20')), producer(equalTo('10')))
- parameter 'offset': $(consumer(containing("20")), producer(equalTo('20')))
- parameter 'filter': 'email'
- parameter 'sort': equalTo("name")
- parameter 'age': $(consumer(notMatching("^\\w*\$")), producer('99'))
- parameter 'name': $(consumer(matching('John.*')), producer('John.Doe'))
- parameter 'email': 'bob@email.com'
- parameter 'hello': $(consumer(matching('John.*')), producer(absent()))
- parameter 'hello2': absent()
- }
- }
- headers {
- contentType(applicationJson())
- header([
- second: "value", third: $(anyAlphaNumeric())
- ])
- }
- body([
- foo1 : $(c(regex("[0-9]")), p(1)),
- foo2 : $(c(regex("[0-9]"))),
- foo3 : $(anyAlphaNumeric()),
- foo4 : value(regex(aDouble())),
- foo5 : value(anyDouble()),
- foo6 : "concrete",
- duck : 123,
- alpha : 'abc',
- number : 123,
- aBoolean : true,
- date : '2017-01-01',
- dateTime : '2017-01-01T01:23:45',
- time : '01:02:34',
- valueWithoutAMatcher: 'foo',
- valueWithTypeMatch : 'string',
- key : [
- 'complex.key': 'foo'
- ]
- ])
- bodyMatchers {
- jsonPath('$.duck', byRegex("[0-9]{3}"))
- jsonPath('$.duck', byEquality())
- jsonPath('$.alpha', byRegex(onlyAlphaUnicode()))
- jsonPath('$.alpha', byEquality())
- jsonPath('$.number', byRegex(number()))
- jsonPath('$.aBoolean', byRegex(anyBoolean()))
- jsonPath('$.date', byDate())
- jsonPath('$.dateTime', byTimestamp())
- jsonPath('$.time', byTime())
- jsonPath("\$.['key'].['complex.key']", byEquality())
- }
- }
- response {
- status(OK())
- headers {
- contentType(applicationJson())
- header([
- second: "value", third: $(anyAlphaNumeric())
- ])
- }
- body([
- foo1 : $(p(regex("[0-9]")), c(1)),
- foo2 : $(p(regex("[0-9]"))),
- foo3 : $(anyAlphaNumeric()),
- foo4 : value(regex(aDouble())),
- foo5 : value(anyDouble()),
- foo6 : "concrete",
- duck : 123,
- alpha : 'abc',
- number : 123,
- positiveInteger : 1234567890,
- negativeInteger : -1234567890,
- positiveDecimalNumber: 123.4567890,
- negativeDecimalNumber: -123.4567890,
- aBoolean : true,
- date : '2017-01-01',
- dateTime : '2017-01-01T01:23:45',
- time : "01:02:34",
- valueWithoutAMatcher : 'foo',
- valueWithTypeMatch : 'string',
- valueWithMin : [
- 1, 2, 3
- ],
- valueWithMax : [
- 1, 2, 3
- ],
- valueWithMinMax : [
- 1, 2, 3
- ],
- valueWithMinEmpty : [],
- valueWithMaxEmpty : [],
- key : [
- 'complex.key': 'foo'
- ],
- nullValue : null
- ])
- bodyMatchers {
- // asserts the jsonpath value against manual regex
- jsonPath('$.duck', byRegex("[0-9]{3}"))
- // asserts the jsonpath value against the provided value
- jsonPath('$.duck', byEquality())
- // asserts the jsonpath value against some default regex
- jsonPath('$.alpha', byRegex(onlyAlphaUnicode()))
- jsonPath('$.alpha', byEquality())
- jsonPath('$.number', byRegex(number()))
- jsonPath('$.positiveInteger', byRegex(anInteger()))
- jsonPath('$.negativeInteger', byRegex(anInteger()))
- jsonPath('$.positiveDecimalNumber', byRegex(aDouble()))
- jsonPath('$.negativeDecimalNumber', byRegex(aDouble()))
- jsonPath('$.aBoolean', byRegex(anyBoolean()))
- // asserts vs inbuilt time related regex
- jsonPath('$.date', byDate())
- jsonPath('$.dateTime', byTimestamp())
- jsonPath('$.time', byTime())
- // asserts that the resulting type is the same as in response body
- jsonPath('$.valueWithTypeMatch', byType())
- jsonPath('$.valueWithMin', byType {
- // results in verification of size of array (min 1)
- minOccurrence(1)
- })
- jsonPath('$.valueWithMax', byType {
- // results in verification of size of array (max 3)
- maxOccurrence(3)
- })
- jsonPath('$.valueWithMinMax', byType {
- // results in verification of size of array (min 1 & max 3)
- minOccurrence(1)
- maxOccurrence(3)
- })
- jsonPath('$.valueWithMinEmpty', byType {
- // results in verification of size of array (min 0)
- minOccurrence(0)
- })
- jsonPath('$.valueWithMaxEmpty', byType {
- // results in verification of size of array (max 0)
- maxOccurrence(0)
- })
- // will execute a method `assertThatValueIsANumber`
- jsonPath('$.duck', byCommand('assertThatValueIsANumber($it)'))
- jsonPath("\$.['key'].['complex.key']", byEquality())
- jsonPath('$.nullValue', byNull())
- }
+ @Shared def patternsContract = Contract.make {
+ request {
+ method(GET())
+ urlPath(value(regex("/info/[0-9]"))) {
+ queryParameters {
+ parameter 'limit': $(consumer(equalTo('20')), producer(equalTo('10')))
+ parameter 'offset': $(consumer(containing("20")), producer(equalTo('20')))
+ parameter 'filter': 'email'
+ parameter 'sort': equalTo("name")
+ parameter 'age': $(consumer(notMatching("^\\w*\$")), producer('99'))
+ parameter 'name': $(consumer(matching('John.*')), producer('John.Doe'))
+ parameter 'email': 'bob@email.com'
+ parameter 'hello': $(consumer(matching('John.*')), producer(absent()))
+ parameter 'hello2': absent()
}
}
+ headers {
+ contentType(applicationJson())
+ header([
+ second: "value", third: $(anyAlphaNumeric())
+ ])
+ }
+ body([
+ foo1 : $(c(regex("[0-9]")), p(1)),
+ foo2 : $(c(regex("[0-9]"))),
+ foo3 : $(anyAlphaNumeric()),
+ foo4 : value(regex(aDouble())),
+ foo5 : value(anyDouble()),
+ foo6 : "concrete",
+ duck : 123,
+ alpha : 'abc',
+ number : 123,
+ aBoolean : true,
+ date : '2017-01-01',
+ dateTime : '2017-01-01T01:23:45',
+ time : '01:02:34',
+ valueWithoutAMatcher: 'foo',
+ valueWithTypeMatch : 'string',
+ key : [
+ 'complex.key': 'foo'
+ ]
+ ])
+ bodyMatchers {
+ jsonPath('$.duck', byRegex("[0-9]{3}"))
+ jsonPath('$.duck', byEquality())
+ jsonPath('$.alpha', byRegex(onlyAlphaUnicode()))
+ jsonPath('$.alpha', byEquality())
+ jsonPath('$.number', byRegex(number()))
+ jsonPath('$.aBoolean', byRegex(anyBoolean()))
+ jsonPath('$.date', byDate())
+ jsonPath('$.dateTime', byTimestamp())
+ jsonPath('$.time', byTime())
+ jsonPath("\$.['key'].['complex.key']", byEquality())
+ }
+ }
+ response {
+ status(OK())
+ headers {
+ contentType(applicationJson())
+ header([
+ second: "value", third: $(anyAlphaNumeric())
+ ])
+ }
+ body([
+ foo1 : $(p(regex("[0-9]")), c(1)),
+ foo2 : $(p(regex("[0-9]"))),
+ foo3 : $(anyAlphaNumeric()),
+ foo4 : value(regex(aDouble())),
+ foo5 : value(anyDouble()),
+ foo6 : "concrete",
+ duck : 123,
+ alpha : 'abc',
+ number : 123,
+ positiveInteger : 1234567890,
+ negativeInteger : -1234567890,
+ positiveDecimalNumber: 123.4567890,
+ negativeDecimalNumber: -123.4567890,
+ aBoolean : true,
+ date : '2017-01-01',
+ dateTime : '2017-01-01T01:23:45',
+ time : "01:02:34",
+ valueWithoutAMatcher : 'foo',
+ valueWithTypeMatch : 'string',
+ valueWithMin : [
+ 1, 2, 3
+ ],
+ valueWithMax : [
+ 1, 2, 3
+ ],
+ valueWithMinMax : [
+ 1, 2, 3
+ ],
+ valueWithMinEmpty : [],
+ valueWithMaxEmpty : [],
+ key : [
+ 'complex.key': 'foo'
+ ],
+ nullValue : null
+ ])
+ bodyMatchers {
+ // asserts the jsonpath value against manual regex
+ jsonPath('$.duck', byRegex("[0-9]{3}"))
+ // asserts the jsonpath value against the provided value
+ jsonPath('$.duck', byEquality())
+ // asserts the jsonpath value against some default regex
+ jsonPath('$.alpha', byRegex(onlyAlphaUnicode()))
+ jsonPath('$.alpha', byEquality())
+ jsonPath('$.number', byRegex(number()))
+ jsonPath('$.positiveInteger', byRegex(anInteger()))
+ jsonPath('$.negativeInteger', byRegex(anInteger()))
+ jsonPath('$.positiveDecimalNumber', byRegex(aDouble()))
+ jsonPath('$.negativeDecimalNumber', byRegex(aDouble()))
+ jsonPath('$.aBoolean', byRegex(anyBoolean()))
+ // asserts vs inbuilt time related regex
+ jsonPath('$.date', byDate())
+ jsonPath('$.dateTime', byTimestamp())
+ jsonPath('$.time', byTime())
+ // asserts that the resulting type is the same as in response body
+ jsonPath('$.valueWithTypeMatch', byType())
+ jsonPath('$.valueWithMin', byType {
+ // results in verification of size of array (min 1)
+ minOccurrence(1)
+ })
+ jsonPath('$.valueWithMax', byType {
+ // results in verification of size of array (max 3)
+ maxOccurrence(3)
+ })
+ jsonPath('$.valueWithMinMax', byType {
+ // results in verification of size of array (min 1 & max 3)
+ minOccurrence(1)
+ maxOccurrence(3)
+ })
+ jsonPath('$.valueWithMinEmpty', byType {
+ // results in verification of size of array (min 0)
+ minOccurrence(0)
+ })
+ jsonPath('$.valueWithMaxEmpty', byType {
+ // results in verification of size of array (max 0)
+ maxOccurrence(0)
+ })
+ // will execute a method `assertThatValueIsANumber`
+ jsonPath('$.duck', byCommand('assertThatValueIsANumber($it)'))
+ jsonPath("\$.['key'].['complex.key']", byEquality())
+ jsonPath('$.nullValue', byNull())
+ }
+ }
+ }
+
+ def "should convert patterns to proper value"() {
when:
- def subject = new WireMockRequestStubStrategy(contract, null) {
+ def subject = new WireMockRequestStubStrategy(patternsContract, null) {
@Override
protected ContentType contentType(SingleContractMetadata singleContractMetadata) {
return ContentType.JSON
@@ -255,7 +256,7 @@ class WireMockResponseStubStrategySpec extends Specification {
then:
noExceptionThrown()
when:
- def response = new WireMockResponseStubStrategy(contract, null) {
+ def response = new WireMockResponseStubStrategy(patternsContract, null) {
@Override
protected ContentType contentType(SingleContractMetadata singleContractMetadata) {
return ContentType.JSON
diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/xml/XmlToXPathsConverterSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/xml/XmlToXPathsConverterSpec.groovy
index 73b579ba2b..7f2bf5eaa6 100644
--- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/xml/XmlToXPathsConverterSpec.groovy
+++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/xml/XmlToXPathsConverterSpec.groovy
@@ -75,7 +75,7 @@ class XmlToXPathsConverterSpec extends Specification {
}
@Unroll
- def "should remove elements to [#expectedValue] for xPath [#value]"() {
+ def "should remove elements to [#result] for xPath [#xpath]"() {
given:
BodyMatchers m = new BodyMatchers()
m.xPath(xpath, m.byEquality())
diff --git a/tests/samples-messaging-camel/pom.xml b/tests/samples-messaging-camel/pom.xml
index d8f1da6471..d2a1ae3f14 100644
--- a/tests/samples-messaging-camel/pom.xml
+++ b/tests/samples-messaging-camel/pom.xml
@@ -49,6 +49,11 @@
spring-boot-starter-test
test
+
+ org.spockframework
+ spock-junit4
+ test
+
diff --git a/tests/spring-cloud-contract-stub-runner-amqp/pom.xml b/tests/spring-cloud-contract-stub-runner-amqp/pom.xml
index bad725eb55..08ab0c9077 100644
--- a/tests/spring-cloud-contract-stub-runner-amqp/pom.xml
+++ b/tests/spring-cloud-contract-stub-runner-amqp/pom.xml
@@ -58,11 +58,6 @@
spring-boot-starter-web
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
diff --git a/tests/spring-cloud-contract-stub-runner-boot-eureka/pom.xml b/tests/spring-cloud-contract-stub-runner-boot-eureka/pom.xml
index 0ee4516451..d7658920fb 100644
--- a/tests/spring-cloud-contract-stub-runner-boot-eureka/pom.xml
+++ b/tests/spring-cloud-contract-stub-runner-boot-eureka/pom.xml
@@ -71,11 +71,6 @@
spring-boot-starter-web
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
org.springframework.boot
spring-boot-starter-webflux
diff --git a/tests/spring-cloud-contract-stub-runner-boot-zookeeper/pom.xml b/tests/spring-cloud-contract-stub-runner-boot-zookeeper/pom.xml
index 349ab99194..c1499d673c 100644
--- a/tests/spring-cloud-contract-stub-runner-boot-zookeeper/pom.xml
+++ b/tests/spring-cloud-contract-stub-runner-boot-zookeeper/pom.xml
@@ -57,11 +57,6 @@
spring-boot-starter-web
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
org.apache.curator
curator-test
diff --git a/tests/spring-cloud-contract-stub-runner-camel/pom.xml b/tests/spring-cloud-contract-stub-runner-camel/pom.xml
index 3efa603012..dd9f674605 100644
--- a/tests/spring-cloud-contract-stub-runner-camel/pom.xml
+++ b/tests/spring-cloud-contract-stub-runner-camel/pom.xml
@@ -70,11 +70,6 @@
spring-boot-starter-web
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
diff --git a/tests/spring-cloud-contract-stub-runner-integration/pom.xml b/tests/spring-cloud-contract-stub-runner-integration/pom.xml
index 3fe96f66da..eb38f9f845 100644
--- a/tests/spring-cloud-contract-stub-runner-integration/pom.xml
+++ b/tests/spring-cloud-contract-stub-runner-integration/pom.xml
@@ -59,11 +59,6 @@
spring-boot-starter-web
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
diff --git a/tests/spring-cloud-contract-stub-runner-jms/pom.xml b/tests/spring-cloud-contract-stub-runner-jms/pom.xml
index 176bdbb000..993aa6673b 100644
--- a/tests/spring-cloud-contract-stub-runner-jms/pom.xml
+++ b/tests/spring-cloud-contract-stub-runner-jms/pom.xml
@@ -56,11 +56,6 @@
spring-boot-starter-web
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
diff --git a/tests/spring-cloud-contract-stub-runner-kafka/pom.xml b/tests/spring-cloud-contract-stub-runner-kafka/pom.xml
index dc701384aa..f0adc01712 100644
--- a/tests/spring-cloud-contract-stub-runner-kafka/pom.xml
+++ b/tests/spring-cloud-contract-stub-runner-kafka/pom.xml
@@ -61,11 +61,6 @@
spring-boot-starter-web
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
diff --git a/tests/spring-cloud-contract-stub-runner-moco/pom.xml b/tests/spring-cloud-contract-stub-runner-moco/pom.xml
index 217d7e058b..95b99a04ec 100644
--- a/tests/spring-cloud-contract-stub-runner-moco/pom.xml
+++ b/tests/spring-cloud-contract-stub-runner-moco/pom.xml
@@ -62,11 +62,6 @@
spring-boot-starter-web
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-
diff --git a/tests/spring-cloud-contract-stub-runner-stream/pom.xml b/tests/spring-cloud-contract-stub-runner-stream/pom.xml
index b8c3f24441..4c897ea1cd 100644
--- a/tests/spring-cloud-contract-stub-runner-stream/pom.xml
+++ b/tests/spring-cloud-contract-stub-runner-stream/pom.xml
@@ -59,11 +59,6 @@
spring-boot-starter-test
test
-
- info.solidsoft.spock
- spock-global-unroll
- test
-