diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index 604cfd11a0..b358838079 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -87,13 +87,19 @@ dependencies {
implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.9.10'
implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1'
- testImplementation 'junit:junit:4.12'
+ testImplementation platform('org.junit:junit-bom:5.7.2')
+ testImplementation "org.junit.jupiter:junit-jupiter-api"
+ testImplementation "org.junit.jupiter:junit-jupiter-params"
+ testImplementation "org.junit.jupiter:junit-jupiter-engine"
testImplementation 'org.apache.commons:commons-io:1.3.2'
testImplementation 'org.assertj:assertj-core:3.13.2'
- testImplementation 'org.mockito:mockito-core:3.0.0'
- testImplementation 'org.spockframework:spock-core:1.3-groovy-2.5'
+ testImplementation 'org.mockito:mockito-core:3.11.2'
+ testImplementation 'org.mockito:mockito-junit-jupiter:3.11.2'
testImplementation "com.squareup.okhttp3:mockwebserver:3.14.9"
}
-test.onlyIf { !project.hasProperty("buildSrc.skipTests") }
+test {
+ onlyIf { !project.hasProperty("buildSrc.skipTests") }
+ useJUnitPlatform()
+}
diff --git a/buildSrc/src/test/groovy/io/spring/gradle/convention/DependencySetPluginITest.groovy b/buildSrc/src/test/groovy/io/spring/gradle/convention/DependencySetPluginITest.groovy
deleted file mode 100644
index 43efa0a2d0..0000000000
--- a/buildSrc/src/test/groovy/io/spring/gradle/convention/DependencySetPluginITest.groovy
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2002-2017 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 io.spring.gradle.convention
-
-import io.spring.gradle.testkit.junit.rules.TestKit
-import org.gradle.testkit.runner.BuildResult
-import org.junit.Rule
-import spock.lang.Specification
-
-import static org.gradle.testkit.runner.TaskOutcome.SUCCESS
-
-class DependencySetPluginITest extends Specification {
- @Rule final TestKit testKit = new TestKit()
-
- def "dependencies"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/dependencyset")
- .withArguments('dependencies')
- .build();
- then:
- result.task(":dependencies").outcome == SUCCESS
- !result.output.contains("FAILED")
- }
-}
diff --git a/buildSrc/src/test/groovy/io/spring/gradle/convention/DocsPluginITest.groovy b/buildSrc/src/test/groovy/io/spring/gradle/convention/DocsPluginITest.groovy
deleted file mode 100644
index 99ae2d6473..0000000000
--- a/buildSrc/src/test/groovy/io/spring/gradle/convention/DocsPluginITest.groovy
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright 2002-2017 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 io.spring.gradle.convention
-
-import io.spring.gradle.testkit.junit.rules.TestKit
-import org.gradle.testkit.runner.BuildResult
-import org.junit.Rule
-import spock.lang.Specification
-
-import java.util.zip.ZipFile
-
-import static org.gradle.testkit.runner.TaskOutcome.FAILED
-import static org.gradle.testkit.runner.TaskOutcome.SUCCESS
-
-class DocsPluginITest extends Specification {
- @Rule final TestKit testKit = new TestKit()
-
- def "build triggers docs"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/docs/simple/")
- .withArguments('build')
- .build();
- then:
- result.task(":build").outcome == SUCCESS
- and:
- result.task(":docs").outcome == SUCCESS
- and:
- result.task(":docsZip").outcome == SUCCESS
- and:
- def zip = new File(testKit.getRootDir(), 'build/distributions/simple-1.0.0.BUILD-SNAPSHOT-docs.zip')
- def names = new ZipFile(zip).entries()*.name
- names.contains("docs/reference/html5/index.html")
- names.contains("docs/reference/pdf/simple-reference.pdf")
- }
-
- def "asciidoc copies images"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/docs/simple/")
- .withArguments('asciidoctor')
- .build();
- then:
- result.task(":asciidoctor").outcome == SUCCESS
- new File(testKit.getRootDir(), "build/docs/asciidoc/images").exists()
- }
-
- def "asciidoc docinfo from resources used"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/docs/simple/")
- .withArguments('asciidoctor')
- .build();
- then:
- result.task(":asciidoctor").outcome == SUCCESS
- new File(testKit.getRootDir(), "build/docs/asciidoc/index.html").getText().contains("""""")
- }
-
- def "missing attribute fails"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/docs/missing-attribute/")
- .withArguments(':asciidoctor')
- .buildAndFail();
- then:
- result.task(":asciidoctor").outcome == FAILED
- }
-
- def "missing include"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/docs/missing-include/")
- .withArguments(':asciidoctor')
- .buildAndFail();
- then:
- result.task(":asciidoctor").outcome == FAILED
- }
-
- def "missing cross reference"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/docs/missing-cross-reference/")
- .withArguments(':asciidoctor')
- .buildAndFail();
- then:
- result.task(":asciidoctor").outcome == FAILED
- }
-}
diff --git a/buildSrc/src/test/groovy/io/spring/gradle/convention/IntegrationTestPluginITest.groovy b/buildSrc/src/test/groovy/io/spring/gradle/convention/IntegrationTestPluginITest.groovy
deleted file mode 100644
index f31ed287f2..0000000000
--- a/buildSrc/src/test/groovy/io/spring/gradle/convention/IntegrationTestPluginITest.groovy
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright 2016-2018 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 io.spring.gradle.convention
-
-import io.spring.gradle.testkit.junit.rules.TestKit
-import org.gradle.testkit.runner.BuildResult
-import org.junit.Rule
-import spock.lang.Specification
-
-import static org.gradle.testkit.runner.TaskOutcome.SUCCESS
-
-class IntegrationTestPluginITest extends Specification {
- @Rule final TestKit testKit = new TestKit()
-
- def "check with java plugin"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/integrationtest/withjava/")
- .withArguments('check')
- .build();
- then:
- result.task(":check").outcome == SUCCESS
- and:
- new File(testKit.getRootDir(), 'build/test-results/integrationTest/').exists()
- new File(testKit.getRootDir(), 'build/reports/tests/integrationTest/').exists()
- }
-
- def "check with propdeps"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/integrationtest/withpropdeps/")
- .withArguments('check')
- .build();
- then:
- result.task(":check").outcome == SUCCESS
- and:
- new File(testKit.getRootDir(), 'build/test-results/integrationTest/').exists()
- new File(testKit.getRootDir(), 'build/reports/tests/integrationTest/').exists()
- }
-
- def "check with groovy plugin"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/integrationtest/withgroovy/")
- .withArguments('check')
- .build();
- then:
- result.task(":check").outcome == SUCCESS
- and:
- new File(testKit.getRootDir(), 'build/test-results/integrationTest/').exists()
- new File(testKit.getRootDir(), 'build/reports/tests/integrationTest/').exists()
- }
-}
diff --git a/buildSrc/src/test/groovy/io/spring/gradle/convention/JacocoPluginITest.groovy b/buildSrc/src/test/groovy/io/spring/gradle/convention/JacocoPluginITest.groovy
deleted file mode 100644
index cda62362e6..0000000000
--- a/buildSrc/src/test/groovy/io/spring/gradle/convention/JacocoPluginITest.groovy
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2002-2017 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 io.spring.gradle.convention
-
-import io.spring.gradle.testkit.junit.rules.TestKit
-import org.gradle.testkit.runner.BuildResult
-import org.junit.Rule
-import spock.lang.Specification
-
-import static org.gradle.testkit.runner.TaskOutcome.SUCCESS
-
-class JacocoPluginITest extends Specification {
- @Rule final TestKit testKit = new TestKit()
-
- def "check with java plugin"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/jacoco/java/")
- .withArguments('check')
- .build();
- then:
- result.task(":check").outcome == SUCCESS
- and:
- new File(testKit.getRootDir(), 'build/jacoco').exists()
- new File(testKit.getRootDir(), 'build/reports/jacoco/test/html/').exists()
- }
-}
diff --git a/buildSrc/src/test/groovy/io/spring/gradle/convention/JavadocApiPluginITest.groovy b/buildSrc/src/test/groovy/io/spring/gradle/convention/JavadocApiPluginITest.groovy
deleted file mode 100644
index a728131552..0000000000
--- a/buildSrc/src/test/groovy/io/spring/gradle/convention/JavadocApiPluginITest.groovy
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright 2002-2017 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 io.spring.gradle.convention
-
-import org.gradle.testkit.runner.BuildResult
-import org.gradle.testkit.runner.GradleRunner
-import org.junit.Rule
-import org.junit.rules.TemporaryFolder
-import spock.lang.Specification
-
-import static org.gradle.testkit.runner.TaskOutcome.*;
-
-import io.spring.gradle.testkit.junit.rules.TestKit
-import org.apache.commons.io.FileUtils
-
-class JavadocApiPluginITest extends Specification {
- @Rule final TestKit testKit = new TestKit()
-
- def "multimodule api"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/javadocapi/multimodule/")
- .withArguments('api')
- .build();
- then:
- result.task(":api").outcome == SUCCESS
- and:
- File allClasses = new File(testKit.getRootDir(), 'build/api/allclasses-noframe.html');
- File index = new File(testKit.getRootDir(), 'build/api/allclasses.html');
- new File(testKit.getRootDir(), "build/api/").listFiles().each { println it }
- File listing = allClasses.exists() ? allClasses : index
- listing.text.contains('sample/Api.html')
- listing.text.contains('sample/Impl.html')
- !listing.text.contains('sample/Sample.html')
- }
-}
diff --git a/buildSrc/src/test/groovy/io/spring/gradle/convention/ShowcaseITest.groovy b/buildSrc/src/test/groovy/io/spring/gradle/convention/ShowcaseITest.groovy
deleted file mode 100644
index 2a2f0643e9..0000000000
--- a/buildSrc/src/test/groovy/io/spring/gradle/convention/ShowcaseITest.groovy
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright 2016-2019 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 io.spring.gradle.convention
-
-import io.spring.gradle.testkit.junit.rules.TestKit
-import org.gradle.testkit.runner.BuildResult
-import org.gradle.testkit.runner.TaskOutcome
-import org.junit.Rule
-import spock.lang.Ignore
-import spock.lang.Specification
-
-class ShowcaseITest extends Specification {
-
- @Rule final TestKit testKit = new TestKit()
-
- def "build"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/showcase/")
- .withArguments('build','--stacktrace')
- .forwardOutput()
- .build();
- then: 'entire build passes'
- result.output.contains("BUILD SUCCESSFUL")
- }
-
- @Ignore
- def "install"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/showcase/")
- .withArguments('install','--stacktrace')
- .build();
- then:
- result.output.contains("SUCCESS")
-
- and: 'pom exists'
- File pom = new File(testKit.getRootDir(), 'sgbcs-core/build/poms/pom-default.xml')
- pom.exists()
- String pomText = pom.getText()
-
- and: 'pom does not contain '
- !pomText.contains('')
-
- and: 'creates optional dependencies correctly'
- pomText.replaceAll('\\s','').contains("""
- org.springframework
- spring-test
- test
- 4.3.6.RELEASE
- """.replaceAll('\\s',''))
-
- and: 'adds author'
- pomText.replaceAll('\\s','').contains("""
-
- rwinch
- Rob Winch
- rwinch@pivotal.io
-
-
- jgrandja
- Joe Grandja
- jgrandja@pivotal.io
-
- """.replaceAll('\\s',''))
-
- and: 'adds repositories'
- pomText.replaceAll('\\s','').contains("""
- scm:git:git://github.com/spring-projects/spring-security
- scm:git:git://github.com/spring-projects/spring-security
- https://github.com/spring-projects/spring-security
- """.replaceAll('\\s',''))
-
- and: 'adds description & url'
- pomText.contains('sgbcs-core')
- pomText.contains('https://spring.io/spring-security')
-
- and: 'adds organization'
- pomText.replaceAll('\\s','').contains('''
- spring.io
- https://spring.io/
- '''.replaceAll('\\s',''))
-
- and: 'adds licenses'
- pomText.replaceAll('\\s','').contains('''
-
- The Apache Software License, Version 2.0
- https://www.apache.org/licenses/LICENSE-2.0.txt
- repo
-
- '''.replaceAll('\\s',''))
-
- and: 'adds scm'
- pomText.replaceAll('\\s','').replaceAll('\\s','').contains("""
- scm:git:git://github.com/spring-projects/spring-security
- scm:git:git://github.com/spring-projects/spring-security
- https://github.com/spring-projects/spring-security
- """.replaceAll('\\s',''))
-
- and: 'bom created'
- File bom = new File(testKit.getRootDir(), 'bom/build/poms/pom-default.xml')
- bom.exists()
- String bomText = bom.getText()
- bomText.contains("""sgbcs-core""")
-
- when: 'mavenBom ran again'
- result = testKit.withProjectResource("samples/showcase/")
- .withArguments('mavenBom','--stacktrace')
- .build();
- then: 'mavenBom is not up to date since install is never up to date'
- result.task(':bom:mavenBom').getOutcome() == TaskOutcome.SUCCESS
- }
-
-}
diff --git a/buildSrc/src/test/groovy/io/spring/gradle/convention/SpringMavenPluginITest.groovy b/buildSrc/src/test/groovy/io/spring/gradle/convention/SpringMavenPluginITest.groovy
deleted file mode 100644
index 102ad1be1e..0000000000
--- a/buildSrc/src/test/groovy/io/spring/gradle/convention/SpringMavenPluginITest.groovy
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2016-2019 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 io.spring.gradle.convention
-
-import io.spring.gradle.testkit.junit.rules.TestKit
-import org.gradle.testkit.runner.BuildResult
-import org.junit.Rule
-import spock.lang.Ignore
-import spock.lang.Specification
-
-import static org.gradle.testkit.runner.TaskOutcome.SUCCESS
-
-class SpringMavenPluginITest extends Specification {
-
- @Rule final TestKit testKit = new TestKit()
-
- @Ignore
- def "install"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/maven/install")
- .withArguments('install')
- .build();
- then: 'pom contains optional'
- result.output.contains("SUCCESS")
- File pom = new File(testKit.getRootDir(), 'build/poms/pom-default.xml')
- pom.exists()
- String pomText = pom.getText()
- pomText.replaceAll('\\s','').contains("""
- aopalliance
- aopalliance
- 1.0
- compile
- true
- """.replaceAll('\\s',''))
- }
-
- @Ignore
- def "signArchives when in memory"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/maven/signing")
- .withArguments('signArchives')
- .withEnvironment(["ORG_GRADLE_PROJECT_signingKey" : signingKey,
- "ORG_GRADLE_PROJECT_signingPassword" : "password"])
- .forwardOutput()
- .build();
- then:
- result.output.contains("SUCCESS")
- File jar = new File(testKit.getRootDir(), 'build/libs/signing-1.0.0.RELEASE.jar')
- jar.exists()
- File signature = new File("${jar.absolutePath}.asc")
- signature.exists()
- }
-
- def "upload"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/maven/upload")
- .withArguments('uploadArchives')
- .forwardOutput()
- .build();
- then: 'pom contains optional'
- result.output.contains("SUCCESS")
- File pom = new File(testKit.getRootDir(), 'build/poms/pom-default.xml')
- pom.exists()
- String pomText = pom.getText()
- pomText.replaceAll('\\s','').contains("""
- aopalliance
- aopalliance
- 1.0
- compile
- true
- """.replaceAll('\\s',''))
- }
-
- def getSigningKey() {
- getClass().getResource("/test-private.pgp").text
- }
-}
diff --git a/buildSrc/src/test/groovy/io/spring/gradle/convention/TestsConfigurationPluginITest.groovy b/buildSrc/src/test/groovy/io/spring/gradle/convention/TestsConfigurationPluginITest.groovy
deleted file mode 100644
index 045e595841..0000000000
--- a/buildSrc/src/test/groovy/io/spring/gradle/convention/TestsConfigurationPluginITest.groovy
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2002-2017 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 io.spring.gradle.convention
-
-import io.spring.gradle.testkit.junit.rules.TestKit
-import org.gradle.testkit.runner.BuildResult
-import org.junit.Rule
-import spock.lang.Specification
-
-import static org.gradle.testkit.runner.TaskOutcome.SUCCESS
-
-class TestsConfigurationPluginITest extends Specification {
- @Rule final TestKit testKit = new TestKit()
-
- def "can find dependency"() {
- when:
- BuildResult result = testKit.withProjectResource("samples/testsconfiguration")
- .withArguments('check')
- .build();
- then:
- result.task(":web:check").outcome == SUCCESS
- }
-}
diff --git a/buildSrc/src/test/groovy/io/spring/gradle/testkit/junit/rules/TestKit.java b/buildSrc/src/test/java/io/spring/gradle/TestKit.java
similarity index 72%
rename from buildSrc/src/test/groovy/io/spring/gradle/testkit/junit/rules/TestKit.java
rename to buildSrc/src/test/java/io/spring/gradle/TestKit.java
index f9b5385540..2bc0b35ef2 100644
--- a/buildSrc/src/test/groovy/io/spring/gradle/testkit/junit/rules/TestKit.java
+++ b/buildSrc/src/test/java/io/spring/gradle/TestKit.java
@@ -13,42 +13,25 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package io.spring.gradle.testkit.junit.rules;
+package io.spring.gradle;
+
+import org.apache.commons.io.FileUtils;
+import org.gradle.testkit.runner.GradleRunner;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
import java.io.File;
import java.io.IOException;
-import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Paths;
import java.util.Enumeration;
-import org.apache.commons.io.FileUtils;
-import org.gradle.testkit.runner.GradleRunner;
-import org.junit.rules.TemporaryFolder;
-import org.junit.rules.TestRule;
-import org.junit.runner.Description;
-import org.junit.runners.model.Statement;
+public class TestKit {
+ final File buildDir;
-public class TestKit implements TestRule {
- final TemporaryFolder testProjectDir = new TemporaryFolder();
- File buildDir;
-
- @Override
- public Statement apply(Statement base, Description description) {
- Statement wrapped = new Statement() {
-
- @Override
- public void evaluate() throws Throwable {
- try {
- buildDir = testProjectDir.newFolder();
- } catch(IOException e) {
- throw new RuntimeException(e);
- }
- base.evaluate();
- }
- };
- return testProjectDir.apply(wrapped, description);
+ public TestKit(File buildDir) {
+ this.buildDir = buildDir;
}
public File getRootDir() {
diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/DependencySetPluginITest.java b/buildSrc/src/test/java/io/spring/gradle/convention/DependencySetPluginITest.java
new file mode 100644
index 0000000000..b5d664b6fd
--- /dev/null
+++ b/buildSrc/src/test/java/io/spring/gradle/convention/DependencySetPluginITest.java
@@ -0,0 +1,31 @@
+package io.spring.gradle.convention;
+
+import io.spring.gradle.TestKit;
+import org.gradle.testkit.runner.BuildResult;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+
+import java.nio.file.Path;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.gradle.testkit.runner.TaskOutcome.SUCCESS;
+
+public class DependencySetPluginITest {
+ private TestKit testKit;
+
+ @BeforeEach
+ void setup(@TempDir Path tempDir) {
+ this.testKit = new TestKit(tempDir.toFile());
+ }
+
+ @Test
+ public void dependencies() throws Exception {
+ BuildResult result = testKit.withProjectResource("samples/dependencyset")
+ .withArguments("dependencies")
+ .build();
+
+ assertThat(result.task(":dependencies").getOutcome()).isEqualTo(SUCCESS);
+ assertThat(result.getOutput()).doesNotContain("FAILED");
+ }
+}
diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/DocsPluginITest.java b/buildSrc/src/test/java/io/spring/gradle/convention/DocsPluginITest.java
new file mode 100644
index 0000000000..97930c0160
--- /dev/null
+++ b/buildSrc/src/test/java/io/spring/gradle/convention/DocsPluginITest.java
@@ -0,0 +1,85 @@
+package io.spring.gradle.convention;
+
+import io.spring.gradle.TestKit;
+import org.codehaus.groovy.runtime.ResourceGroovyMethods;
+import org.gradle.testkit.runner.BuildResult;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+
+import java.io.File;
+import java.nio.file.Path;
+import java.util.Collections;
+import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.gradle.testkit.runner.TaskOutcome.FAILED;
+import static org.gradle.testkit.runner.TaskOutcome.SUCCESS;
+
+public class DocsPluginITest {
+ private TestKit testKit;
+
+ @BeforeEach
+ void setup(@TempDir Path tempDir) {
+ this.testKit = new TestKit(tempDir.toFile());
+ }
+
+ @Test
+ public void buildTriggersDocs() throws Exception {
+ BuildResult result = testKit.withProjectResource("samples/docs/simple/")
+ .withArguments("build")
+ .build();
+ assertThat(result.task(":build").getOutcome()).isEqualTo(SUCCESS);
+ assertThat(result.task(":docs").getOutcome()).isEqualTo(SUCCESS);
+ assertThat(result.task(":docsZip").getOutcome()).isEqualTo(SUCCESS);
+ File zip = new File(testKit.getRootDir(), "build/distributions/simple-1.0.0.BUILD-SNAPSHOT-docs.zip");
+ List extends ZipEntry> entries = Collections.list(new ZipFile(zip).entries());
+ assertThat(entries)
+ .extracting(ZipEntry::getName)
+ .contains("docs/reference/html5/index.html")
+ .contains("docs/reference/pdf/simple-reference.pdf");
+ }
+
+ @Test
+ public void asciidocCopiesImages() throws Exception {
+ BuildResult result = testKit.withProjectResource("samples/docs/simple/").withArguments("asciidoctor").build();
+ assertThat(result.task(":asciidoctor").getOutcome()).isEqualTo(SUCCESS);
+ assertThat(new File(testKit.getRootDir(), "build/docs/asciidoc/images")).exists();
+ }
+
+ @Test
+ public void asciidocDocInfoFromResourcesUsed() throws Exception {
+ BuildResult result = this.testKit.withProjectResource("samples/docs/simple/")
+ .withArguments("asciidoctor")
+ .build();
+ assertThat(result.task(":asciidoctor").getOutcome()).isEqualTo(SUCCESS);
+ assertThat(ResourceGroovyMethods.getText(new File(testKit.getRootDir(), "build/docs/asciidoc/index.html")))
+ .contains("");
+ }
+
+ @Test
+ public void missingAttributeFails() throws Exception {
+ BuildResult result = this.testKit.withProjectResource("samples/docs/missing-attribute/")
+ .withArguments(":asciidoctor")
+ .buildAndFail();
+ assertThat(result.task(":asciidoctor").getOutcome()).isEqualTo(FAILED);
+ }
+
+ @Test
+ public void missingInclude() throws Exception {
+ BuildResult result = this.testKit.withProjectResource("samples/docs/missing-include/")
+ .withArguments(":asciidoctor")
+ .buildAndFail();
+ assertThat(result.task(":asciidoctor").getOutcome()).isEqualTo(FAILED);
+ }
+
+ @Test
+ public void missingCrossReference() throws Exception {
+ BuildResult result = this.testKit.withProjectResource("samples/docs/missing-cross-reference/")
+ .withArguments(":asciidoctor")
+ .buildAndFail();
+ assertThat(result.task(":asciidoctor").getOutcome()).isEqualTo(FAILED);
+ }
+}
diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/IntegrationPluginTest.java b/buildSrc/src/test/java/io/spring/gradle/convention/IntegrationPluginTest.java
index e8a613c65c..cfb7d3fff5 100644
--- a/buildSrc/src/test/java/io/spring/gradle/convention/IntegrationPluginTest.java
+++ b/buildSrc/src/test/java/io/spring/gradle/convention/IntegrationPluginTest.java
@@ -19,10 +19,9 @@ package io.spring.gradle.convention;
import org.apache.commons.io.FileUtils;
import org.gradle.api.Project;
import org.gradle.api.plugins.JavaPlugin;
-import org.gradle.api.tasks.javadoc.Javadoc;
import org.gradle.testfixtures.ProjectBuilder;
-import org.junit.After;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
import java.io.File;
@@ -34,7 +33,7 @@ import static org.assertj.core.api.Assertions.assertThat;
public class IntegrationPluginTest {
Project rootProject;
- @After
+ @AfterEach
public void cleanup() throws Exception {
if (rootProject != null) {
FileUtils.deleteDirectory(rootProject.getProjectDir());
diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/IntegrationTestPluginITest.java b/buildSrc/src/test/java/io/spring/gradle/convention/IntegrationTestPluginITest.java
new file mode 100644
index 0000000000..97537343c9
--- /dev/null
+++ b/buildSrc/src/test/java/io/spring/gradle/convention/IntegrationTestPluginITest.java
@@ -0,0 +1,52 @@
+package io.spring.gradle.convention;
+
+import io.spring.gradle.TestKit;
+import org.gradle.testkit.runner.BuildResult;
+import org.gradle.testkit.runner.TaskOutcome;
+import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.io.TempDir;
+
+import java.io.File;
+import java.nio.file.Path;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class IntegrationTestPluginITest {
+ private io.spring.gradle.TestKit testKit;
+
+ @BeforeEach
+ void setup(@TempDir Path tempDir) {
+ this.testKit = new TestKit(tempDir.toFile());
+ }
+
+ @Test
+ public void checkWithJavaPlugin() throws Exception {
+ BuildResult result = this.testKit.withProjectResource("samples/integrationtest/withjava/")
+ .withArguments("check")
+ .build();
+ assertThat(result.task(":check").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
+ assertThat(new File(testKit.getRootDir(), "build/test-results/integrationTest/")).exists();
+ assertThat(new File(testKit.getRootDir(), "build/reports/tests/integrationTest/")).exists();
+ }
+
+ @Test
+ public void checkWithPropdeps() throws Exception {
+ BuildResult result = this.testKit.withProjectResource("samples/integrationtest/withpropdeps/")
+ .withArguments("check")
+ .build();
+ assertThat(result.task(":check").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
+ assertThat(new File(testKit.getRootDir(), "build/test-results/integrationTest/")).exists();
+ assertThat(new File(testKit.getRootDir(), "build/reports/tests/integrationTest/")).exists();
+ }
+
+ @Test
+ public void checkWithGroovy() throws Exception {
+ BuildResult result = this.testKit.withProjectResource("samples/integrationtest/withgroovy/")
+ .withArguments("check")
+ .build();
+ assertThat(result.task(":check").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
+ assertThat(new File(testKit.getRootDir(), "build/test-results/integrationTest/")).exists();
+ assertThat(new File(testKit.getRootDir(), "build/reports/tests/integrationTest/")).exists();
+ }
+}
diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/JacocoPluginITest.java b/buildSrc/src/test/java/io/spring/gradle/convention/JacocoPluginITest.java
new file mode 100644
index 0000000000..8b1c097257
--- /dev/null
+++ b/buildSrc/src/test/java/io/spring/gradle/convention/JacocoPluginITest.java
@@ -0,0 +1,31 @@
+package io.spring.gradle.convention;
+
+import org.gradle.testkit.runner.BuildResult;
+import org.gradle.testkit.runner.TaskOutcome;
+import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.io.TempDir;
+
+import java.io.File;
+import java.nio.file.Path;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class JacocoPluginITest{
+ private io.spring.gradle.TestKit testKit;
+
+ @BeforeEach
+ void setup(@TempDir Path tempDir) {
+ this.testKit = new io.spring.gradle.TestKit(tempDir.toFile());
+ }
+
+ @Test
+ public void checkWithJavaPlugin() throws Exception {
+ BuildResult result = this.testKit.withProjectResource("samples/jacoco/java/")
+ .withArguments("check")
+ .build();
+ assertThat(result.task(":check").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
+ assertThat(new File(testKit.getRootDir(), "build/jacoco")).exists();
+ assertThat(new File(testKit.getRootDir(), "build/reports/jacoco/test/html/")).exists();
+ }
+}
diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/JavadocApiPluginITest.java b/buildSrc/src/test/java/io/spring/gradle/convention/JavadocApiPluginITest.java
new file mode 100644
index 0000000000..681d5c4983
--- /dev/null
+++ b/buildSrc/src/test/java/io/spring/gradle/convention/JavadocApiPluginITest.java
@@ -0,0 +1,38 @@
+package io.spring.gradle.convention;
+
+import io.spring.gradle.TestKit;
+import org.apache.commons.io.FileUtils;
+import org.gradle.testkit.runner.BuildResult;
+import org.gradle.testkit.runner.TaskOutcome;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+
+import java.io.File;
+import java.nio.file.Path;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class JavadocApiPluginITest {
+ private TestKit testKit;
+
+ @BeforeEach
+ void setup(@TempDir Path tempDir) {
+ this.testKit = new TestKit(tempDir.toFile());
+ }
+
+ @Test
+ public void multiModuleApi() throws Exception {
+ BuildResult result = this.testKit.withProjectResource("samples/javadocapi/multimodule/")
+ .withArguments("api")
+ .build();
+ assertThat(result.task(":api").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
+ File allClasses = new File(testKit.getRootDir(), "build/api/allclasses-noframe.html");
+ File index = new File(testKit.getRootDir(), "build/api/allclasses.html");
+ File listing = allClasses.exists() ? allClasses : index;
+ String listingText = FileUtils.readFileToString(listing);
+ assertThat(listingText).contains("sample/Api.html");
+ assertThat(listingText).contains("sample/Impl.html");
+ assertThat(listingText).doesNotContain("sample/Sample.html");
+ }
+}
diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/JavadocApiPluginTest.java b/buildSrc/src/test/java/io/spring/gradle/convention/JavadocApiPluginTest.java
index ddcd3c9191..26d8b4e277 100644
--- a/buildSrc/src/test/java/io/spring/gradle/convention/JavadocApiPluginTest.java
+++ b/buildSrc/src/test/java/io/spring/gradle/convention/JavadocApiPluginTest.java
@@ -23,8 +23,8 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.gradle.api.Project;
import org.gradle.api.tasks.javadoc.Javadoc;
import org.gradle.testfixtures.ProjectBuilder;
-import org.junit.After;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
/**
* @author Rob Winch
@@ -32,7 +32,7 @@ import org.junit.Test;
public class JavadocApiPluginTest {
Project rootProject;
- @After
+ @AfterEach
public void cleanup() throws Exception {
if (rootProject != null) {
FileUtils.deleteDirectory(rootProject.getProjectDir());
diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/RepositoryConventionPluginTests.java b/buildSrc/src/test/java/io/spring/gradle/convention/RepositoryConventionPluginTests.java
index 5ce1613c78..2bad49c8a3 100644
--- a/buildSrc/src/test/java/io/spring/gradle/convention/RepositoryConventionPluginTests.java
+++ b/buildSrc/src/test/java/io/spring/gradle/convention/RepositoryConventionPluginTests.java
@@ -22,8 +22,8 @@ import org.gradle.api.artifacts.repositories.ArtifactRepository;
import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
import org.gradle.api.plugins.ExtraPropertiesExtension;
import org.gradle.testfixtures.ProjectBuilder;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
@@ -34,7 +34,7 @@ public class RepositoryConventionPluginTests {
private Project project = ProjectBuilder.builder().build();
- @Before
+ @BeforeEach
public void setUp() {
this.project.getProperties().clear();
}
diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/ShowcaseITest.java b/buildSrc/src/test/java/io/spring/gradle/convention/ShowcaseITest.java
new file mode 100644
index 0000000000..01c8fdbffe
--- /dev/null
+++ b/buildSrc/src/test/java/io/spring/gradle/convention/ShowcaseITest.java
@@ -0,0 +1,71 @@
+package io.spring.gradle.convention;
+
+import io.spring.gradle.TestKit;
+import org.codehaus.groovy.runtime.ResourceGroovyMethods;
+import org.gradle.testkit.runner.BuildResult;
+import org.gradle.testkit.runner.TaskOutcome;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class ShowcaseITest {
+ private TestKit testKit;
+
+ @BeforeEach
+ void setup(@TempDir Path tempDir) {
+ this.testKit = new TestKit(tempDir.toFile());
+ }
+
+ @Test
+ public void build() throws Exception {
+ BuildResult result = this.testKit.withProjectResource("samples/showcase/")
+ .withArguments("build", "--stacktrace")
+ .forwardOutput()
+ .build();
+ assertThat(result.getOutput()).contains("BUILD SUCCESSFUL");
+ }
+
+ @Test
+ @Disabled
+ public void install() throws Exception {
+ BuildResult result = this.testKit
+ .withProjectResource("samples/showcase/")
+ .withArguments("install", "--stacktrace")
+ .build();
+
+ assertThat(result.getOutput()).contains("SUCCESS");
+
+ File pom = new File(testKit.getRootDir(), "sgbcs-core/build/poms/pom-default.xml");
+ assertThat(pom).exists();
+
+ String pomText = new String(Files.readAllBytes(pom.toPath()));
+ String pomTextNoSpace = pomText.replaceAll("\\s", "");
+
+ assertThat(pomText).doesNotContain("");
+
+ assertThat(pomTextNoSpace).contains("\n org.springframework\n spring-test\n test\n 4.3.6.RELEASE\n ".replaceAll("\\s", ""));
+ assertThat(pomTextNoSpace).contains("\n \n rwinch\n Rob Winch\n rwinch@pivotal.io\n \n \n jgrandja\n Joe Grandja\n jgrandja@pivotal.io\n \n ".replaceAll("\\s", ""));
+ assertThat(pomTextNoSpace).contains("\n scm:git:git://github.com/spring-projects/spring-security\n scm:git:git://github.com/spring-projects/spring-security\n https://github.com/spring-projects/spring-security\n ".replaceAll("\\s", ""));
+ assertThat(pomTextNoSpace).contains("sgbcs-core");
+ assertThat(pomTextNoSpace).contains("https://spring.io/spring-security");
+ assertThat(pomTextNoSpace).contains("\n spring.io\n https://spring.io/\n ".replaceAll("\\s", ""));
+ assertThat(pomTextNoSpace).contains(" \n \n The Apache Software License, Version 2.0\n https://www.apache.org/licenses/LICENSE-2.0.txt\n repo\n \n ".replaceAll("\\s", ""));
+ assertThat(pomTextNoSpace).contains("\n scm:git:git://github.com/spring-projects/spring-security\n scm:git:git://github.com/spring-projects/spring-security\n https://github.com/spring-projects/spring-security\n ".replaceAll("\\s", ""));
+
+ File bom = new File(testKit.getRootDir(), "bom/build/poms/pom-default.xml");
+ assertThat(bom).exists();
+ assertThat(bom).hasContent("sgbcs-core");
+
+ BuildResult secondBuild = this.testKit.withProjectResource("samples/showcase/").withArguments("mavenBom", "--stacktrace").build();
+ // mavenBom is not up to date since install is never up to date
+ assertThat(result.task(":bom:mavenBom").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
+ }
+
+}
diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/SpringMavenPluginITest.java b/buildSrc/src/test/java/io/spring/gradle/convention/SpringMavenPluginITest.java
new file mode 100644
index 0000000000..9c91d5c9ad
--- /dev/null
+++ b/buildSrc/src/test/java/io/spring/gradle/convention/SpringMavenPluginITest.java
@@ -0,0 +1,74 @@
+package io.spring.gradle.convention;
+
+import io.spring.gradle.TestKit;
+import org.apache.commons.io.IOUtils;
+import org.gradle.testkit.runner.BuildResult;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.LinkedHashMap;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class SpringMavenPluginITest {
+
+ private TestKit testKit;
+
+ @BeforeEach
+ void setup(@TempDir Path tempDir) {
+ this.testKit = new TestKit(tempDir.toFile());
+ }
+
+ @Disabled
+ @Test
+ public void install() throws Exception {
+ BuildResult result = this.testKit.withProjectResource("samples/maven/install")
+ .withArguments("install")
+ .build();
+ assertThat(result.getOutput()).contains("SUCCESS");
+ File pom = new File(testKit.getRootDir(), "build/poms/pom-default.xml");
+ assertThat(pom).exists();
+ String pomText = new String(Files.readAllBytes(pom.toPath()));
+ assertThat(pomText.replaceAll("\\s", "")).contains("\n aopalliance\n aopalliance\n 1.0\n compile\n true\n ".replaceAll("\\s", ""));
+ }
+
+ @Disabled
+ @Test
+ public void signArchivesWhenInMemory() throws Exception {
+ LinkedHashMap map = new LinkedHashMap(2);
+ map.put("ORG_GRADLE_PROJECT_signingKey", getSigningKey());
+ map.put("ORG_GRADLE_PROJECT_signingPassword", "password");
+ BuildResult result = this.testKit.withProjectResource("samples/maven/signing")
+ .withArguments("signArchives")
+ .withEnvironment(map)
+ .forwardOutput()
+ .build();
+ assertThat(result.getOutput()).contains("SUCCESS");
+ final File jar = new File(testKit.getRootDir(), "build/libs/signing-1.0.0.RELEASE.jar");
+ assertThat(jar).exists();
+ File signature = new File(jar.getAbsolutePath() + ".asc");
+ assertThat(signature).exists();
+ }
+
+ @Test
+ public void upload() throws Exception {
+ BuildResult result = this.testKit.withProjectResource("samples/maven/upload")
+ .withArguments("uploadArchives")
+ .forwardOutput()
+ .build();
+ assertThat(result.getOutput()).contains("SUCCESS");
+ File pom = new File(testKit.getRootDir(), "build/poms/pom-default.xml");
+ assertThat(pom).exists();
+ String pomText = new String(Files.readAllBytes(pom.toPath()));
+ assertThat(pomText.replaceAll("\\s", "")).contains("\n aopalliance\n aopalliance\n 1.0\n compile\n true\n ".replaceAll("\\s", ""));
+ }
+
+ public String getSigningKey() throws Exception {
+ return IOUtils.toString(getClass().getResource("/test-private.pgp"));
+ }
+}
diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/TestsConfigurationPluginITest.java b/buildSrc/src/test/java/io/spring/gradle/convention/TestsConfigurationPluginITest.java
new file mode 100644
index 0000000000..4fd2944b18
--- /dev/null
+++ b/buildSrc/src/test/java/io/spring/gradle/convention/TestsConfigurationPluginITest.java
@@ -0,0 +1,31 @@
+package io.spring.gradle.convention;
+
+import io.spring.gradle.TestKit;
+import org.gradle.testkit.runner.BuildResult;
+import org.gradle.testkit.runner.TaskOutcome;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+
+import java.nio.file.Path;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class TestsConfigurationPluginITest {
+
+ private TestKit testKit;
+
+ @BeforeEach
+ void setup(@TempDir Path tempDir) {
+ this.testKit = new TestKit(tempDir.toFile());
+ }
+
+ @Test
+ public void canFindDepencency() throws Exception {
+ BuildResult result = this.testKit.withProjectResource("samples/testsconfiguration")
+ .withArguments("check")
+ .build();
+ assertThat(result.task(":web:check").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
+ }
+
+}
diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/UtilsTest.java b/buildSrc/src/test/java/io/spring/gradle/convention/UtilsTest.java
index 76fbea3870..0bed12b486 100644
--- a/buildSrc/src/test/java/io/spring/gradle/convention/UtilsTest.java
+++ b/buildSrc/src/test/java/io/spring/gradle/convention/UtilsTest.java
@@ -5,26 +5,21 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import org.gradle.api.Project;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(MockitoExtension.class)
public class UtilsTest {
@Mock
Project project;
@Mock
Project rootProject;
- @Before
- public void setup() {
- when(project.getRootProject()).thenReturn(rootProject);
- }
-
@Test
public void getProjectName() {
+ when(project.getRootProject()).thenReturn(rootProject);
when(rootProject.getName()).thenReturn("spring-security");
assertThat(Utils.getProjectName(project)).isEqualTo("spring-security");
@@ -32,6 +27,7 @@ public class UtilsTest {
@Test
public void getProjectNameWhenEndsWithBuildThenStrippedOut() {
+ when(project.getRootProject()).thenReturn(rootProject);
when(rootProject.getName()).thenReturn("spring-security-build");
assertThat(Utils.getProjectName(project)).isEqualTo("spring-security");
diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/sagan/SaganApiTests.java b/buildSrc/src/test/java/io/spring/gradle/convention/sagan/SaganApiTests.java
index cb35d2aea4..f4e8c11c56 100644
--- a/buildSrc/src/test/java/io/spring/gradle/convention/sagan/SaganApiTests.java
+++ b/buildSrc/src/test/java/io/spring/gradle/convention/sagan/SaganApiTests.java
@@ -19,9 +19,9 @@ package io.spring.gradle.convention.sagan;
import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
import okhttp3.mockwebserver.RecordedRequest;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.springframework.gradle.sagan.Release;
import org.springframework.gradle.sagan.SaganApi;
@@ -38,7 +38,7 @@ public class SaganApiTests {
private String baseUrl;
- @Before
+ @BeforeEach
public void setup() throws Exception {
this.server = new MockWebServer();
this.server.start();
@@ -47,7 +47,7 @@ public class SaganApiTests {
this.sagan.setBaseUrl(this.baseUrl);
}
- @After
+ @AfterEach
public void cleanup() throws Exception {
this.server.shutdown();
}
diff --git a/buildSrc/src/test/java/io/spring/gradle/github/milestones/GitHubMilestoneApiTests.java b/buildSrc/src/test/java/io/spring/gradle/github/milestones/GitHubMilestoneApiTests.java
index 816b1ad0d4..183cf09d5a 100644
--- a/buildSrc/src/test/java/io/spring/gradle/github/milestones/GitHubMilestoneApiTests.java
+++ b/buildSrc/src/test/java/io/spring/gradle/github/milestones/GitHubMilestoneApiTests.java
@@ -3,9 +3,9 @@ package io.spring.gradle.github.milestones;
import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
import okhttp3.mockwebserver.RecordedRequest;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.springframework.gradle.github.milestones.GitHubMilestoneApi;
import org.springframework.gradle.github.milestones.RepositoryRef;
@@ -24,7 +24,7 @@ public class GitHubMilestoneApiTests {
private String baseUrl;
- @Before
+ @BeforeEach
public void setup() throws Exception {
this.server = new MockWebServer();
this.server.start();
@@ -33,7 +33,7 @@ public class GitHubMilestoneApiTests {
this.github.setBaseUrl(this.baseUrl);
}
- @After
+ @AfterEach
public void cleanup() throws Exception {
this.server.shutdown();
}
diff --git a/buildSrc/src/test/java/org/springframework/gradle/github/milestones/GitHubMilestoneApiTests.java b/buildSrc/src/test/java/org/springframework/gradle/github/milestones/GitHubMilestoneApiTests.java
index 11840c7701..b4072c079e 100644
--- a/buildSrc/src/test/java/org/springframework/gradle/github/milestones/GitHubMilestoneApiTests.java
+++ b/buildSrc/src/test/java/org/springframework/gradle/github/milestones/GitHubMilestoneApiTests.java
@@ -3,9 +3,9 @@ package org.springframework.gradle.github.milestones;
import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
import okhttp3.mockwebserver.RecordedRequest;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.util.concurrent.TimeUnit;
@@ -22,7 +22,7 @@ public class GitHubMilestoneApiTests {
private String baseUrl;
- @Before
+ @BeforeEach
public void setup() throws Exception {
this.server = new MockWebServer();
this.server.start();
@@ -31,7 +31,7 @@ public class GitHubMilestoneApiTests {
this.github.setBaseUrl(this.baseUrl);
}
- @After
+ @AfterEach
public void cleanup() throws Exception {
this.server.shutdown();
}
diff --git a/buildSrc/src/test/java/org/springframework/security/convention/versions/DependencyExcludesTests.java b/buildSrc/src/test/java/org/springframework/security/convention/versions/DependencyExcludesTests.java
index c02e5e6612..4b1aa905d2 100644
--- a/buildSrc/src/test/java/org/springframework/security/convention/versions/DependencyExcludesTests.java
+++ b/buildSrc/src/test/java/org/springframework/security/convention/versions/DependencyExcludesTests.java
@@ -20,10 +20,9 @@ import com.github.benmanes.gradle.versions.updates.resolutionstrategy.ComponentS
import org.gradle.api.Action;
import org.gradle.api.artifacts.ComponentSelection;
import org.gradle.api.artifacts.component.ModuleComponentIdentifier;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.Collections;
-import java.util.List;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.BDDMockito.given;
diff --git a/buildSrc/src/test/java/org/springframework/security/convention/versions/TransitiveDependencyLookupUtilsTest.java b/buildSrc/src/test/java/org/springframework/security/convention/versions/TransitiveDependencyLookupUtilsTest.java
index 34cf5e25fb..cc6a821f85 100644
--- a/buildSrc/src/test/java/org/springframework/security/convention/versions/TransitiveDependencyLookupUtilsTest.java
+++ b/buildSrc/src/test/java/org/springframework/security/convention/versions/TransitiveDependencyLookupUtilsTest.java
@@ -17,7 +17,7 @@
package org.springframework.security.convention.versions;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;