diff --git a/docker/spring-cloud-contract-docker/pom.xml b/docker/spring-cloud-contract-docker/pom.xml index 39d728f1bc..66b679029a 100644 --- a/docker/spring-cloud-contract-docker/pom.xml +++ b/docker/spring-cloud-contract-docker/pom.xml @@ -24,17 +24,17 @@ - org.codehaus.groovy + org.apache.groovy groovy compile - org.codehaus.groovy + org.apache.groovy groovy-ant compile - org.codehaus.groovy + org.apache.groovy groovy-groovydoc compile diff --git a/docs/pom.xml b/docs/pom.xml index ce6a64a45f..f808711300 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -22,7 +22,7 @@ - 2.5.14 + 4.0.0 diff --git a/docs/src/main/asciidoc/gradle-project.adoc b/docs/src/main/asciidoc/gradle-project.adoc index 036d2e0aff..d7f70f4fd5 100644 --- a/docs/src/main/asciidoc/gradle-project.adoc +++ b/docs/src/main/asciidoc/gradle-project.adoc @@ -52,7 +52,7 @@ dependencyManagement { } dependencies { - testImplementation "org.codehaus.groovy:groovy-all:${groovyVersion}" + testImplementation "org.apache.groovy:groovy-all:${groovyVersion}" // example with adding Spock core and Spock Spring testImplementation "org.spockframework:spock-core:${spockVersion}" testImplementation "org.spockframework:spock-spring:${spockVersion}" @@ -93,7 +93,7 @@ dependencyManagement { } dependencies { - testImplementation "org.codehaus.groovy:groovy-all:${groovyVersion}" + testImplementation "org.apache.groovy:groovy-all:${groovyVersion}" // example with adding Spock core and Spock Spring testImplementation "org.spockframework:spock-core:${spockVersion}" testImplementation "org.spockframework:spock-spring:${spockVersion}" @@ -127,7 +127,7 @@ dependencyManagement { } dependencies { - testImplementation "org.codehaus.groovy:groovy-all:${groovyVersion}" + testImplementation "org.apache.groovy:groovy-all:${groovyVersion}" // example with adding Spock core and Spock Spring testImplementation "org.spockframework:spock-core:${spockVersion}" testImplementation "org.spockframework:spock-spring:${spockVersion}" diff --git a/pom.xml b/pom.xml index 1c3cd11734..3ed6688dbf 100644 --- a/pom.xml +++ b/pom.xml @@ -35,20 +35,21 @@ 3.0.6.RELEASE 5.0.4 3.2.11 - 2.0-M5-groovy-3.0 + 2.2-M1-groovy-4.0 0.2.2 1.9 4.2.0 5.12.0.202106070339-r 1 2.27.0 + 5.0.0 5.7.2 5.7.2 1.13.0 - 3.0.9 + 4.0.0 3.6.3 1.6 @@ -168,11 +169,11 @@ ${spock-spring.version} - org.codehaus.groovy + org.apache.groovy groovy-all - org.codehaus.groovy + org.apache.groovy groovy @@ -183,11 +184,11 @@ ${spock-spring.version} - org.codehaus.groovy + org.apache.groovy groovy-all - org.codehaus.groovy + org.apache.groovy groovy @@ -213,11 +214,11 @@ ${pact.version} - org.codehaus.groovy + org.apache.groovy groovy-all - org.codehaus.groovy + org.apache.groovy groovy @@ -228,11 +229,11 @@ ${pact.version} - org.codehaus.groovy + org.apache.groovy groovy-all - org.codehaus.groovy + org.apache.groovy groovy @@ -306,92 +307,92 @@ - org.codehaus.groovy + org.apache.groovy groovy ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-ant ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-bsf ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-console ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-docgenerator ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-groovydoc ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-groovysh ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-jmx ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-json ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-jsr223 ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-nio ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-servlet ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-sql ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-swing ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-templates ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-test ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-testng ${groovy.version} - org.codehaus.groovy + org.apache.groovy groovy-xml ${groovy.version} @@ -460,6 +461,16 @@ kotlin-compiler-embeddable ${contract.kotlin.version} + + io.rest-assured + rest-assured + ${rest-assured.version} + + + io.rest-assured + spring-mock-mvc + ${rest-assured.version} + diff --git a/specs/spring-cloud-contract-spec-groovy/pom.xml b/specs/spring-cloud-contract-spec-groovy/pom.xml index e83ec06063..606e2eed9d 100644 --- a/specs/spring-cloud-contract-spec-groovy/pom.xml +++ b/specs/spring-cloud-contract-spec-groovy/pom.xml @@ -19,19 +19,19 @@ spring-cloud-contract-spec-java - org.codehaus.groovy + org.apache.groovy groovy - org.codehaus.groovy + org.apache.groovy groovy-nio - org.codehaus.groovy + org.apache.groovy groovy-json - org.codehaus.groovy + org.apache.groovy groovy-xml diff --git a/specs/spring-cloud-contract-spec-java/pom.xml b/specs/spring-cloud-contract-spec-java/pom.xml index ad75a49bc5..97001dae6d 100644 --- a/specs/spring-cloud-contract-spec-java/pom.xml +++ b/specs/spring-cloud-contract-spec-java/pom.xml @@ -21,7 +21,7 @@ - org.codehaus.groovy + org.apache.groovy groovy @@ -42,17 +42,17 @@ spring-jcl - org.codehaus.groovy + org.apache.groovy groovy-nio test - org.codehaus.groovy + org.apache.groovy groovy-json test - org.codehaus.groovy + org.apache.groovy groovy-xml test diff --git a/spring-cloud-contract-stub-runner/pom.xml b/spring-cloud-contract-stub-runner/pom.xml index 154b21a5c9..9f46fe8a0b 100644 --- a/spring-cloud-contract-stub-runner/pom.xml +++ b/spring-cloud-contract-stub-runner/pom.xml @@ -183,7 +183,7 @@ io.rest-assured spring-mock-mvc - 4.4.0 + ${rest-assured.version} 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 1c48f567cc..dde98593f5 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/pom.xml +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/pom.xml @@ -35,11 +35,11 @@ spring-boot-starter-logging - org.codehaus.groovy + org.apache.groovy groovy - org.codehaus.groovy + org.apache.groovy groovy-nio @@ -79,7 +79,7 @@ io.rest-assured rest-assured - 4.4.0 + ${rest-assured.version} 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 7f4412044a..bc8f0cdeb7 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 @@ -36,7 +36,6 @@ targetCompatibility = 17 repositories { mavenLocal() mavenCentral() - jcenter() maven { url "https://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/milestone" } maven { url "https://repo.spring.io/release" } @@ -75,9 +74,7 @@ dependencies { exclude(group: '*') } - testImplementation('org.spockframework:spock-core:2.0-M5-groovy-3.0') { // @releaser:version-check-off - exclude(group: 'org.codehaus.groovy') - } + testImplementation "org.springframework.boot:spring-boot-starter-test" testImplementation localGroovy() testImplementation gradleTestKit() } @@ -89,6 +86,7 @@ task libtest() { } test { + useJUnitPlatform() testLogging { exceptionFormat = 'full' } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierIntegrationSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierIntegrationTest.groovy similarity index 98% rename from spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierIntegrationSpec.groovy rename to spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierIntegrationTest.groovy index b1d7ca2633..51ec3c6c35 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierIntegrationSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierIntegrationTest.groovy @@ -28,11 +28,11 @@ import org.gradle.testkit.runner.BuildResult import org.gradle.testkit.runner.BuildTask import org.gradle.testkit.runner.GradleRunner import org.gradle.testkit.runner.TaskOutcome -import spock.lang.Specification +import org.junit.jupiter.api.BeforeEach import static java.nio.charset.StandardCharsets.UTF_8 -abstract class ContractVerifierIntegrationSpec extends Specification { +abstract class ContractVerifierIntegrationTest { public static final String SPOCK = "testFramework = 'Spock'" public static final String JUNIT = "testFramework = 'JUnit'" @@ -42,7 +42,8 @@ abstract class ContractVerifierIntegrationSpec extends Specification { File testProjectDir - def setup() { + @BeforeEach + void setup() { def dateString = new Date().format("yyyy-MM-dd_HH-mm-ss") def testFolder = new File("build/generated-tests/${getClass().simpleName}/${dateString}") testFolder.mkdirs() diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierKotlinIntegrationSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierKotlinIntegrationTest.groovy similarity index 93% rename from spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierKotlinIntegrationSpec.groovy rename to spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierKotlinIntegrationTest.groovy index 83e225e85c..e23cb69926 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierKotlinIntegrationSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierKotlinIntegrationTest.groovy @@ -21,7 +21,7 @@ import java.nio.file.Path import static java.nio.charset.StandardCharsets.UTF_8 -abstract class ContractVerifierKotlinIntegrationSpec extends ContractVerifierIntegrationSpec { +abstract class ContractVerifierKotlinIntegrationTest extends ContractVerifierIntegrationTest { public static final String SPOCK = "testFramework.set(TestFramework.SPOCK)" public static final String JUNIT = "testFramework.set(TestFramework.JUNIT)" diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierTest.groovy similarity index 51% rename from spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierSpec.groovy rename to spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierTest.groovy index e3c66b0744..77ff534603 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierTest.groovy @@ -16,7 +16,6 @@ package org.springframework.cloud.contract.verifier.plugin - import org.gradle.api.artifacts.Configuration import org.gradle.api.file.Directory import org.gradle.api.internal.project.DefaultProject @@ -28,13 +27,16 @@ import org.gradle.api.publish.PublishingExtension import org.gradle.api.publish.maven.plugins.MavenPublishPlugin import org.gradle.api.tasks.SourceSet import org.gradle.testfixtures.ProjectBuilder -import org.springframework.cloud.contract.verifier.config.TestFramework -import spock.lang.Specification +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test -class ContractVerifierSpec extends Specification { +import org.springframework.cloud.contract.verifier.config.TestFramework + +class ContractVerifierTest { DefaultProject project - def setup() { + @BeforeEach + void setup() { String dateString = new Date().format("yyyy-MM-dd_HH-mm-ss") File testFolder = new File("build/generated-tests/${getClass().simpleName}/${dateString}") testFolder.mkdirs() @@ -42,31 +44,35 @@ class ContractVerifierSpec extends Specification { project.plugins.apply(SpringCloudContractVerifierGradlePlugin) } - def "should apply java plugin"() { + @Test + void "should apply java plugin"() { expect: project.plugins.hasPlugin(JavaPlugin) } - def "should create contracts extension"() { + @Test + void "should create contracts extension"() { expect: - project.extensions.findByType(ContractVerifierExtension) != null + assert project.extensions.findByType(ContractVerifierExtension) != null } - def "should create a test sourceset with java sources"() { + @Test + void "should create a test sourceset with java sources"() { given: ContractVerifierExtension extension = project.extensions.getByType(ContractVerifierExtension) Directory projectDir = project.layout.projectDirectory SourceSet contractTest = project.convention.getPlugin(JavaPluginConvention).getSourceSets().getByName("contractTest") expect: - contractTest != null - contractTest.java.srcDirs.contains(projectDir.dir("src/contractTest/java").asFile) - contractTest.java.srcDirs.contains(extension.generatedTestJavaSourcesDir.get().asFile) - contractTest.resources.srcDirs.contains(projectDir.dir("src/contractTest/resources").asFile) - contractTest.resources.srcDirs.contains(extension.generatedTestResourcesDir.get().asFile) + assert contractTest != null + assert contractTest.java.srcDirs.contains(projectDir.dir("src/contractTest/java").asFile) + assert contractTest.java.srcDirs.contains(extension.generatedTestJavaSourcesDir.get().asFile) + assert contractTest.resources.srcDirs.contains(projectDir.dir("src/contractTest/resources").asFile) + assert contractTest.resources.srcDirs.contains(extension.generatedTestResourcesDir.get().asFile) } - def "should create a test sourceset with groovy sources, if the groovy plugin is present"() { + @Test + void "should create a test sourceset with groovy sources, if the groovy plugin is present"() { given: project.plugins.apply(GroovyPlugin) ContractVerifierExtension extension = project.extensions.getByType(ContractVerifierExtension) @@ -74,104 +80,116 @@ class ContractVerifierSpec extends Specification { SourceSet contractTest = project.convention.getPlugin(JavaPluginConvention).getSourceSets().getByName("contractTest") expect: - contractTest != null - contractTest.java.srcDirs.contains(projectDir.dir("src/contractTest/java").asFile) - contractTest.java.srcDirs.contains(extension.generatedTestJavaSourcesDir.get().asFile) - contractTest.groovy.srcDirs.contains(projectDir.dir('src/contractTest/groovy').asFile) - contractTest.groovy.srcDirs.contains(extension.generatedTestGroovySourcesDir.get().asFile) - contractTest.resources.srcDirs.contains(projectDir.dir("src/contractTest/resources").asFile) - contractTest.resources.srcDirs.contains(extension.generatedTestResourcesDir.get().asFile) + assert contractTest != null + assert contractTest.java.srcDirs.contains(projectDir.dir("src/contractTest/java").asFile) + assert contractTest.java.srcDirs.contains(extension.generatedTestJavaSourcesDir.get().asFile) + assert contractTest.groovy.srcDirs.contains(projectDir.dir('src/contractTest/groovy').asFile) + assert contractTest.groovy.srcDirs.contains(extension.generatedTestGroovySourcesDir.get().asFile) + assert contractTest.resources.srcDirs.contains(projectDir.dir("src/contractTest/resources").asFile) + assert contractTest.resources.srcDirs.contains(extension.generatedTestResourcesDir.get().asFile) } - def "should setup dependency configurations"() { + @Test + void "should setup dependency configurations"() { given: Configuration contractTestCompileOnly = project.configurations.contractTestCompileOnly Configuration contractTestImplementation = project.configurations.contractTestImplementation Configuration contractTestRuntimeOnly = project.configurations.contractTestRuntimeOnly expect: - contractTestCompileOnly != null - contractTestCompileOnly.extendsFrom.contains(project.configurations.testCompileOnly) - contractTestImplementation != null - contractTestImplementation.extendsFrom.contains(project.configurations.testImplementation) - contractTestRuntimeOnly != null - contractTestRuntimeOnly.extendsFrom.contains(project.configurations.testRuntimeOnly) + assert contractTestCompileOnly != null + assert contractTestCompileOnly.extendsFrom.contains(project.configurations.testCompileOnly) + assert contractTestImplementation != null + assert contractTestImplementation.extendsFrom.contains(project.configurations.testImplementation) + assert contractTestRuntimeOnly != null + assert contractTestRuntimeOnly.extendsFrom.contains(project.configurations.testRuntimeOnly) } - def "should create contract test task"() { + @Test + void "should create contract test task"() { expect: - project.tasks.named("contractTest").get() != null + assert project.tasks.named("contractTest").get() != null } - def "should create generateContractTests task"() { + @Test + void "should create generateContractTests task"() { expect: - project.tasks.named("generateContractTests").get() != null + assert project.tasks.named("generateContractTests").get() != null } - def "should configure generateContractTests task as a dependency of the compileContractTestJava task"() { + @Test + void "should configure generateContractTests task as a dependency of the compileContractTestJava task"() { expect: - project.tasks.compileContractTestJava.getDependsOn().contains(project.tasks.named("generateContractTests")) - project.tasks.findByName("compileContractTestGroovy") == null + assert project.tasks.compileContractTestJava.getDependsOn().contains(project.tasks.named("generateContractTests")) + assert project.tasks.findByName("compileContractTestGroovy") == null } - def "should configure generateContractTests task as a dependency of the compileContractTestGroovy task"() { + @Test + void "should configure generateContractTests task as a dependency of the compileContractTestGroovy task"() { given: project.plugins.apply(GroovyPlugin) expect: - project.tasks.compileContractTestJava.getDependsOn().contains(project.tasks.named("generateContractTests")) - project.tasks.compileContractTestGroovy.getDependsOn().contains(project.tasks.named("generateContractTests")) + assert project.tasks.compileContractTestJava.getDependsOn().contains(project.tasks.named("generateContractTests")) + assert project.tasks.compileContractTestGroovy.getDependsOn().contains(project.tasks.named("generateContractTests")) } - def "should configure generatedTestSourcesDir with the appropriate directories"() { + @Test + void "should configure generatedTestSourcesDir with the appropriate directories"() { when: ContractVerifierExtension extension = project.extensions.findByType(ContractVerifierExtension) GenerateServerTestsTask generateServerTestsTask = project.tasks.getByName("generateContractTests") as GenerateServerTestsTask then: - generateServerTestsTask.generatedTestSourcesDir.get().asFile == extension.generatedTestJavaSourcesDir.get().asFile + assert generateServerTestsTask.generatedTestSourcesDir.get().asFile == extension.generatedTestJavaSourcesDir.get().asFile and: extension.testFramework.set(TestFramework.SPOCK) then: - generateServerTestsTask.generatedTestSourcesDir.get().asFile == extension.generatedTestGroovySourcesDir.get().asFile + assert generateServerTestsTask.generatedTestSourcesDir.get().asFile == extension.generatedTestGroovySourcesDir.get().asFile and: extension.generatedTestSourcesDir.set(project.file("src/random")) then: - generateServerTestsTask.generatedTestSourcesDir.get().asFile == extension.generatedTestSourcesDir.get().asFile + assert generateServerTestsTask.generatedTestSourcesDir.get().asFile == extension.generatedTestSourcesDir.get().asFile } - def "should create generateClientStubs task"() { + @Test + void "should create generateClientStubs task"() { expect: - project.tasks.named("generateClientStubs").get() != null + assert project.tasks.named("generateClientStubs").get() != null } - def "should create verifierStubsJar task"() { + @Test + void "should create verifierStubsJar task"() { expect: - project.tasks.named("verifierStubsJar").get() != null + assert project.tasks.named("verifierStubsJar").get() != null } - def "should configure generateClientStubs task as a dependency of the verifierStubsJar task"() { + @Test + void "should configure generateClientStubs task as a dependency of the verifierStubsJar task"() { expect: project.tasks.verifierStubsJar.getDependsOn().contains(project.tasks.named("generateClientStubs")) } - def "should configure generateClientStubs task as a dependency of the publishStubsToScm task"() { + @Test + void "should configure generateClientStubs task as a dependency of the publishStubsToScm task"() { expect: - project.tasks.publishStubsToScm.getDependsOn().contains(project.tasks.named("generateClientStubs")) + assert project.tasks.publishStubsToScm.getDependsOn().contains(project.tasks.named("generateClientStubs")) } - def "should create copyContracts task"() { + @Test + void "should create copyContracts task"() { expect: - project.tasks.named("copyContracts").get() != null + assert project.tasks.named("copyContracts").get() != null } - def "should configure copyContracts task as a dependency of the verifierStubsJar task"() { + @Test + void "should configure copyContracts task as a dependency of the verifierStubsJar task"() { expect: - project.tasks.verifierStubsJar.getDependsOn().contains(project.tasks.named("generateClientStubs")) + assert project.tasks.verifierStubsJar.getDependsOn().contains(project.tasks.named("generateClientStubs")) } /** @@ -183,7 +201,8 @@ class ContractVerifierSpec extends Specification { * responsibility. */ @Deprecated - def "should configure maven-publish plugin, if enabled"() { + @Test + void "should configure maven-publish plugin, if enabled"() { given: project.plugins.apply(MavenPublishPlugin) project.plugins.apply(SpringCloudContractVerifierGradlePlugin) @@ -195,11 +214,12 @@ class ContractVerifierSpec extends Specification { expect: PublicationContainer publications = project.extensions.getByType(PublishingExtension).publications - publications.size() > 0 - publications.named("stubs") != null + assert publications.size() > 0 + assert publications.named("stubs") != null } - def "should compile"() { + @Test + void "should compile"() { given: project.plugins.apply(SpringCloudContractVerifierGradlePlugin) ContractVerifierExtension extension = project.getExtensions().findByType(ContractVerifierExtension) @@ -218,10 +238,11 @@ class ContractVerifierSpec extends Specification { // end::base_class_mappings[] } expect: - extension + assert extension } - def "should property merge scm repository settings for publishing stubs to scm"() { + @Test + void "should property merge scm repository settings for publishing stubs to scm"() { given: project.plugins.apply(SpringCloudContractVerifierGradlePlugin) ContractVerifierExtension extension = project.extensions.findByType(ContractVerifierExtension) @@ -237,11 +258,11 @@ class ContractVerifierSpec extends Specification { } then: - task.contractRepository.repositoryUrl.get() == "https://git.example.com" - task.contractRepository.username.get() == "username" - task.contractRepository.password.get() == "password" - task.contractRepository.proxyHost.get() == "host" - task.contractRepository.proxyPort.get() == 8080 + assert task.contractRepository.repositoryUrl.get() == "https://git.example.com" + assert task.contractRepository.username.get() == "username" + assert task.contractRepository.password.get() == "password" + assert task.contractRepository.proxyHost.get() == "host" + assert task.contractRepository.proxyPort.get() == 8080 and: extension.publishStubsToScm.contractRepository.with { @@ -253,10 +274,10 @@ class ContractVerifierSpec extends Specification { } then: - task.contractRepository.repositoryUrl.get() == "https://git2.example.com" - task.contractRepository.username.get() == "username2" - task.contractRepository.password.get() == "password2" - task.contractRepository.proxyHost.get() == "host2" - task.contractRepository.proxyPort.get() == 8081 + assert task.contractRepository.repositoryUrl.get() == "https://git2.example.com" + assert task.contractRepository.username.get() == "username2" + assert task.contractRepository.password.get() == "password2" + assert task.contractRepository.proxyHost.get() == "host2" + assert task.contractRepository.proxyPort.get() == 8081 } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ScenarioProjectKotlinSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ScenarioProjectKotlinSpec.groovy deleted file mode 100644 index a58c556b76..0000000000 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ScenarioProjectKotlinSpec.groovy +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2013-2020 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cloud.contract.verifier.plugin - -import org.gradle.testkit.runner.BuildResult -import org.gradle.testkit.runner.TaskOutcome -import spock.lang.Ignore -import spock.lang.Stepwise - -@Ignore -@Stepwise -class ScenarioProjectKotlinSpec extends ContractVerifierKotlinIntegrationSpec { - - def setup() { - setupForProject("functionalTest/scenarioProjectKotlin") - runTasksSuccessfully('clean') - //delete accidental output when previously importing SimpleBoot into Idea to tweak it - } - - def "should pass basic flow for Spock"() { - given: - assert fileExists('build.gradle.kts') - expect: - runTasksSuccessfully(checkAndPublishToMavenLocal()) - jarContainsContractVerifierContracts('fraudDetectionService/build/libs') - BuildResult result = run("check", "--info", "--stacktrace") - result.task(":fraudDetectionService:check").outcome == TaskOutcome.UP_TO_DATE - result.task(":loanApplicationService:check").outcome == TaskOutcome.UP_TO_DATE - } - - def "should pass basic flow for JUnit"() { - given: - assert fileExists('build.gradle.kts') - expect: - switchToJunitTestFramework() - runTasksSuccessfully(checkAndPublishToMavenLocal()) - jarContainsContractVerifierContracts('fraudDetectionService/build/libs') - BuildResult result = run("check", "--info", "--stacktrace") - result.task(":fraudDetectionService:check").outcome == TaskOutcome.UP_TO_DATE - result.task(":loanApplicationService:check").outcome == TaskOutcome.UP_TO_DATE - } - -} diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ScenarioProjectSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ScenarioProjectSpec.groovy deleted file mode 100755 index 0954bd224a..0000000000 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ScenarioProjectSpec.groovy +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2013-2020 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cloud.contract.verifier.plugin - -import org.gradle.testkit.runner.BuildResult -import org.gradle.testkit.runner.TaskOutcome -import spock.lang.Ignore -import spock.lang.Stepwise - -@Ignore -@Stepwise -class ScenarioProjectSpec extends ContractVerifierIntegrationSpec { - - def setup() { - setupForProject("functionalTest/scenarioProject") - runTasksSuccessfully('clean') - //delete accidental output when previously importing SimpleBoot into Idea to tweak it - } - - def "should pass basic flow for Spock"() { - given: - assert fileExists('build.gradle') - expect: - runTasksSuccessfully(checkAndPublishToMavenLocal()) - jarContainsContractVerifierContracts('fraudDetectionService/build/libs') - BuildResult result = run("check", "--info", "--stacktrace") - result.task(":fraudDetectionService:check").outcome == TaskOutcome.UP_TO_DATE - result.task(":loanApplicationService:check").outcome == TaskOutcome.UP_TO_DATE - } - - def "should pass basic flow for JUnit"() { - given: - assert fileExists('build.gradle') - expect: - switchToJunitTestFramework() - emptySourceSet() - runTasksSuccessfully(checkAndPublishToMavenLocal()) - jarContainsContractVerifierContracts('fraudDetectionService/build/libs') - BuildResult result = run("check", "--info", "--stacktrace") - result.task(":fraudDetectionService:check").outcome == TaskOutcome.UP_TO_DATE - result.task(":loanApplicationService:check").outcome == TaskOutcome.UP_TO_DATE - } - - def "should properly work with build cache"() { - given: - def gradleUserHomeDir = new File(testProjectDir, ".gradleUserHome") - gradleUserHomeDir.mkdirs() - String[] tasks = ["-g ${gradleUserHomeDir}", "clean", "check", "publishToMavenLocal", "--info", "--stacktrace", "--build-cache"] - assert fileExists("build.gradle") - - expect: - runTasksSuccessfully(tasks) - jarContainsContractVerifierContracts('fraudDetectionService/build/libs') - BuildResult result = run(tasks) - result.task(":fraudDetectionService:copyContracts").outcome == TaskOutcome.FROM_CACHE - result.task(":fraudDetectionService:generateContractTests").outcome == TaskOutcome.FROM_CACHE - result.task(":fraudDetectionService:contractTest").outcome == TaskOutcome.FROM_CACHE - result.task(":fraudDetectionService:generateClientStubs").outcome == TaskOutcome.FROM_CACHE - result.task(":loanApplicationService:check").outcome == TaskOutcome.UP_TO_DATE - } -} diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/build.gradle index 513f746016..d27deebff9 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/build.gradle +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/build.gradle @@ -33,13 +33,13 @@ repositories { dependencies { implementation "org.springframework:spring-web" implementation "org.springframework:spring-context-support" - implementation "org.codehaus.groovy:groovy-all:${groovyVersion}" + implementation "org.apache.groovy:groovy-all:${groovyVersion}" implementation 'com.jayway.jsonpath:json-path-assert:2.2.0' testImplementation "com.github.tomakehurst:wiremock:${wiremockVersion}" testImplementation "com.toomuchcoding.jsonassert:jsonassert:${jsonAssertVersion}" testImplementation("org.spockframework:spock-spring:1.0-groovy-2.4") { - exclude(group: 'org.codehaus.groovy') + exclude(group: 'org.apache.groovy') } testImplementation "io.restassured:rest-assured:$restAssuredVersion" testImplementation "io.restassured:spring-mock-mvc:$restAssuredVersion" diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle index dd0e94141e..2dd0fd6870 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle @@ -44,9 +44,9 @@ subprojects { } dependencies { - testImplementation "org.codehaus.groovy:groovy" + testImplementation "org.apache.groovy:groovy" testImplementation("org.spockframework:spock-core:$spockVersion") { - exclude(group: 'org.codehaus.groovy') + exclude(group: 'org.apache.groovy') } testImplementation "junit:junit:4.12" testImplementation "com.github.tomakehurst:wiremock:${wiremockVersion}" @@ -112,7 +112,7 @@ configure([project(':fraudDetectionService'), project(':loanApplicationService') implementation("org.springframework.boot:spring-boot-starter-actuator") testRuntime("org.spockframework:spock-spring:$spockVersion") { - exclude(group: 'org.codehaus.groovy') + exclude(group: 'org.apache.groovy') } testImplementation "org.mockito:mockito-core" testImplementation "org.springframework:spring-test" diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/build.gradle.kts b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/build.gradle.kts index 193986266d..16c6709a36 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/build.gradle.kts +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/build.gradle.kts @@ -53,7 +53,7 @@ subprojects { } dependencies { - testCompile("org.codehaus.groovy:groovy") + testCompile("org.apache.groovy:groovy") testCompile("org.spockframework:spock-core:$spockVersion") testCompile("junit:junit:4.12") testCompile("com.github.tomakehurst:wiremock:$wiremockVersion") @@ -95,7 +95,7 @@ configure(listOf(project(":fraudDetectionService"), project(":loanApplicationSer compile("org.springframework.boot:spring-boot-starter-actuator") testRuntime("org.spockframework:spock-spring:$spockVersion") { - exclude(group = "org.codehaus.groovy") + exclude(group = "org.apache.groovy") } testCompile("org.mockito:mockito-core") testCompile("org.springframework:spring-test") diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml index a1c7608d90..f827a29438 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml @@ -34,7 +34,7 @@ - org.codehaus.groovy + org.apache.groovy groovy 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 74d2a8c117..3e40bc8ebf 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-pact/pom.xml +++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/pom.xml @@ -31,11 +31,11 @@ spring-boot-starter-logging - org.codehaus.groovy + org.apache.groovy groovy - org.codehaus.groovy + org.apache.groovy groovy-nio diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy index 1b1e54aebf..0d0104196d 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy @@ -415,10 +415,10 @@ class PactContractConverterSpec extends Specification { Map> contracts = contractResources. collectEntries { [(it.filename): ContractVerifierDslConverter. - convertAsCollection(new File("/"), it.file)] + convertAsCollection(new File("/"), it.getFile())] } Map jsonPacts = pactResources. - collectEntries { [(it.filename): it.file.text] } + collectEntries { [(it.filename): it.getFile().text] } when: Map> pacts = contracts.entrySet(). collectEntries { [(it.key): converter.convertTo(it.value)] } diff --git a/spring-cloud-contract-verifier/pom.xml b/spring-cloud-contract-verifier/pom.xml index fcc60ce4e2..0924151d26 100644 --- a/spring-cloud-contract-verifier/pom.xml +++ b/spring-cloud-contract-verifier/pom.xml @@ -133,19 +133,19 @@ org.eclipse.wst.xml.xpath2.processor - org.codehaus.groovy + org.apache.groovy groovy - org.codehaus.groovy + org.apache.groovy groovy-nio - org.codehaus.groovy + org.apache.groovy groovy-json - org.codehaus.groovy + org.apache.groovy groovy-xml @@ -218,19 +218,19 @@ io.rest-assured rest-assured - 4.4.0 + ${rest-assured.version} test io.rest-assured spring-mock-mvc - 4.4.0 + ${rest-assured.version} test io.rest-assured spring-web-test-client - 4.4.0 + ${rest-assured.version} test @@ -243,7 +243,7 @@ junit-jupiter-api - org.codehaus.groovy + org.apache.groovy groovy-testng test diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/ContentUtils.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/ContentUtils.groovy index f1b0c532ff..9a95c501a3 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/ContentUtils.groovy +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/ContentUtils.groovy @@ -25,6 +25,7 @@ import groovy.json.JsonException import groovy.json.JsonOutput import groovy.json.JsonSlurper import groovy.transform.CompileStatic +import groovy.xml.XmlSlurper import org.apache.commons.logging.Log import org.apache.commons.logging.LogFactory import org.codehaus.groovy.runtime.GStringImpl diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/ContentUtilsSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/ContentUtilsSpec.groovy index aa14921fa8..045eac5f61 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/ContentUtilsSpec.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/ContentUtilsSpec.groovy @@ -20,6 +20,7 @@ package org.springframework.cloud.contract.verifier.util import org.springframework.cloud.contract.spec.internal.DslProperty import spock.lang.Specification import org.xml.sax.helpers.DefaultHandler +import groovy.xml.XmlSlurper /** * @author Marcin Grzejszczak diff --git a/spring-cloud-contract-wiremock/pom.xml b/spring-cloud-contract-wiremock/pom.xml index 8d929d1555..2803b51d96 100644 --- a/spring-cloud-contract-wiremock/pom.xml +++ b/spring-cloud-contract-wiremock/pom.xml @@ -84,7 +84,7 @@ io.rest-assured rest-assured - 4.4.0 + ${rest-assured.version} true 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 2ddd6a1ec4..be78fc7a9d 100644 --- a/tests/spring-cloud-contract-stub-runner-boot-zookeeper/pom.xml +++ b/tests/spring-cloud-contract-stub-runner-boot-zookeeper/pom.xml @@ -43,7 +43,7 @@ test - org.codehaus.groovy + org.apache.groovy groovy diff --git a/tests/spring-cloud-contract-stub-runner-camel/pom.xml b/tests/spring-cloud-contract-stub-runner-camel/pom.xml index b5daebf723..f3e0f9f240 100644 --- a/tests/spring-cloud-contract-stub-runner-camel/pom.xml +++ b/tests/spring-cloud-contract-stub-runner-camel/pom.xml @@ -37,7 +37,7 @@ test - org.codehaus.groovy + org.apache.groovy groovy diff --git a/tests/spring-cloud-contract-stub-runner-jms/pom.xml b/tests/spring-cloud-contract-stub-runner-jms/pom.xml index 625a3f31e1..fbc018143e 100644 --- a/tests/spring-cloud-contract-stub-runner-jms/pom.xml +++ b/tests/spring-cloud-contract-stub-runner-jms/pom.xml @@ -33,7 +33,7 @@ test - org.codehaus.groovy + org.apache.groovy groovy diff --git a/tests/spring-cloud-contract-stub-runner-kafka/pom.xml b/tests/spring-cloud-contract-stub-runner-kafka/pom.xml index c69fc0c0bc..e0a097cae3 100644 --- a/tests/spring-cloud-contract-stub-runner-kafka/pom.xml +++ b/tests/spring-cloud-contract-stub-runner-kafka/pom.xml @@ -48,7 +48,7 @@ test - org.codehaus.groovy + org.apache.groovy groovy