diff --git a/initializr-generator/pom.xml b/initializr-generator/pom.xml index 0d35addb..d6ac0983 100644 --- a/initializr-generator/pom.xml +++ b/initializr-generator/pom.xml @@ -39,8 +39,28 @@ - org.springframework.boot - spring-boot-starter-test + org.junit.jupiter + junit-jupiter-engine + test + + + org.junit.jupiter + junit-jupiter-params + test + + + org.junit-pioneer + junit-pioneer + test + + + org.assertj + assertj-core + test + + + org.mockito + mockito-junit-jupiter test diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/AbstractProjectGeneratorTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/AbstractProjectGeneratorTests.java index 669ba658..6fb1495c 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/AbstractProjectGeneratorTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/AbstractProjectGeneratorTests.java @@ -17,7 +17,7 @@ package io.spring.initializr.generator; import java.io.File; -import java.io.IOException; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; @@ -28,9 +28,9 @@ import io.spring.initializr.test.generator.GradleBuildAssert; import io.spring.initializr.test.generator.PomAssert; import io.spring.initializr.test.generator.ProjectAssert; import io.spring.initializr.test.metadata.InitializrMetadataTestBuilder; -import org.junit.Before; -import org.junit.Rule; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; import org.mockito.ArgumentMatcher; import org.springframework.context.ApplicationEventPublisher; @@ -43,11 +43,9 @@ import static org.mockito.Mockito.verify; /** * @author Stephane Nicoll */ +@ExtendWith(TempDirectory.class) public abstract class AbstractProjectGeneratorTests { - @Rule - public final TemporaryFolder folder = new TemporaryFolder(); - protected final ProjectGenerator projectGenerator; protected final ApplicationEventPublisher eventPublisher = mock( @@ -61,8 +59,8 @@ public abstract class AbstractProjectGeneratorTests { this.projectGenerator = projectGenerator; } - @Before - public void setup() throws IOException { + @BeforeEach + public void setup(@TempDirectory.TempDir Path folder) { Dependency web = Dependency.withId("web"); web.getFacets().add("web"); InitializrMetadata metadata = initializeTestMetadataBuilder() @@ -73,7 +71,7 @@ public abstract class AbstractProjectGeneratorTests { this.projectGenerator.setEventPublisher(this.eventPublisher); this.projectGenerator .setRequestResolver(new ProjectRequestResolver(new ArrayList<>())); - this.projectGenerator.setTmpdir(this.folder.newFolder().getAbsolutePath()); + this.projectGenerator.setTmpdir(folder.toString()); } protected InitializrMetadataTestBuilder initializeTestMetadataBuilder() { diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/CommandLineHelpGeneratorTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/CommandLineHelpGeneratorTests.java index 535abc91..8f781eb3 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/CommandLineHelpGeneratorTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/CommandLineHelpGeneratorTests.java @@ -23,8 +23,8 @@ import io.spring.initializr.metadata.InitializrMetadata; import io.spring.initializr.metadata.Type; import io.spring.initializr.test.metadata.InitializrMetadataTestBuilder; import io.spring.initializr.util.TemplateRenderer; -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; @@ -35,7 +35,7 @@ public class CommandLineHelpGeneratorTests { private CommandLineHelpGenerator generator; - @Before + @BeforeEach public void init() { this.generator = new CommandLineHelpGenerator(new TemplateRenderer()); } diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/CustomProjectGeneratorTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/CustomProjectGeneratorTests.java index 4d4abd9b..27e39932 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/CustomProjectGeneratorTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/CustomProjectGeneratorTests.java @@ -20,7 +20,7 @@ import java.io.File; import java.util.Map; import io.spring.initializr.test.generator.ProjectAssert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.mockito.InOrder; import org.mockito.Mockito; diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorBuildTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorBuildTests.java index b0846cd7..a74a42c1 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorBuildTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorBuildTests.java @@ -16,15 +16,17 @@ package io.spring.initializr.generator; +import java.util.stream.Stream; + import io.spring.initializr.metadata.BillOfMaterials; import io.spring.initializr.metadata.Dependency; import io.spring.initializr.metadata.InitializrMetadata; import io.spring.initializr.test.generator.ProjectAssert; import io.spring.initializr.test.metadata.InitializrMetadataTestBuilder; import io.spring.initializr.util.VersionProperty; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.springframework.core.io.ClassPathResource; @@ -33,123 +35,123 @@ import org.springframework.core.io.ClassPathResource; * * @author Stephane Nicoll */ -@RunWith(Parameterized.class) public class ProjectGeneratorBuildTests extends AbstractProjectGeneratorTests { - @Parameterized.Parameters(name = "{0}") - public static Object[] parameters() { - Object[] maven = new Object[] { "maven", "pom.xml" }; - Object[] gradle = new Object[] { "gradle", "build.gradle" }; - return new Object[] { maven, gradle }; + public static Stream parameters() { + return Stream.of(Arguments.arguments("maven", "pom.xml"), + Arguments.arguments("gradle", "build.gradle")); } - private final String build; - - private final String fileName; - - private final String assertFileName; - - public ProjectGeneratorBuildTests(String build, String fileName) { - this.build = build; - this.fileName = fileName; - this.assertFileName = fileName + ".gen"; + @ParameterizedTest + @MethodSource("parameters") + public void currentGenerationJarJava(String build, String fileName) { + testCurrentGenerationJar("java", build, fileName); } - @Test - public void currentGenerationJarJava() { - testCurrentGenerationJar("java"); + @ParameterizedTest + @MethodSource("parameters") + public void currentGenerationJarGroovy(String build, String fileName) { + testCurrentGenerationJar("groovy", build, fileName); } - @Test - public void currentGenerationJarGroovy() { - testCurrentGenerationJar("groovy"); + @ParameterizedTest + @MethodSource("parameters") + public void currentGenerationJarKotlin(String build, String fileName) { + testCurrentGenerationJar("kotlin", build, fileName); } - @Test - public void currentGenerationJarKotlin() { - testCurrentGenerationJar("kotlin"); - } - - private void testCurrentGenerationJar(String language) { - ProjectRequest request = createProjectRequest(); + private void testCurrentGenerationJar(String language, String build, + String fileName) { + ProjectRequest request = createProjectRequestForType(build); request.setLanguage(language); ProjectAssert project = generateProject(request); - project.sourceCodeAssert(this.fileName).equalsTo(new ClassPathResource( - "project/" + language + "/standard/" + this.assertFileName)); + project.sourceCodeAssert(fileName).equalsTo(new ClassPathResource( + "project/" + language + "/standard/" + getAssertFileName(fileName))); } - @Test - public void currentGenerationWarJava() { - testCurrentGenerationWar("java"); + @ParameterizedTest + @MethodSource("parameters") + public void currentGenerationWarJava(String build, String fileName) { + testCurrentGenerationWar("java", build, fileName); } - @Test - public void currentGenerationWarGroovy() { - testCurrentGenerationWar("groovy"); + @ParameterizedTest + @MethodSource("parameters") + public void currentGenerationWarGroovy(String build, String fileName) { + testCurrentGenerationWar("groovy", build, fileName); } - @Test - public void currentGenerationWarKotlin() { - testCurrentGenerationWar("kotlin"); + @ParameterizedTest + @MethodSource("parameters") + public void currentGenerationWarKotlin(String build, String fileName) { + testCurrentGenerationWar("kotlin", build, fileName); } - private void testCurrentGenerationWar(String language) { - ProjectRequest request = createProjectRequest("web"); + private void testCurrentGenerationWar(String language, String build, + String fileName) { + ProjectRequest request = createProjectRequestForType(build, "web"); request.setPackaging("war"); request.setLanguage(language); ProjectAssert project = generateProject(request); - project.sourceCodeAssert(this.fileName).equalsTo(new ClassPathResource( - "project/" + language + "/standard/war-" + this.assertFileName)); + project.sourceCodeAssert(fileName).equalsTo(new ClassPathResource( + "project/" + language + "/standard/war-" + getAssertFileName(fileName))); } - @Test - public void previousGenerationJarJava() { - testPreviousGenerationJar("java"); + @ParameterizedTest + @MethodSource("parameters") + public void previousGenerationJarJava(String build, String fileName) { + testPreviousGenerationJar("java", build, fileName); } - @Test - public void previousGenerationJarGroovy() { - testPreviousGenerationJar("groovy"); + @ParameterizedTest + @MethodSource("parameters") + public void previousGenerationJarGroovy(String build, String fileName) { + testPreviousGenerationJar("groovy", build, fileName); } - @Test - public void previousGenerationJarKotlin() { - testPreviousGenerationJar("kotlin"); + @ParameterizedTest + @MethodSource("parameters") + public void previousGenerationJarKotlin(String build, String fileName) { + testPreviousGenerationJar("kotlin", build, fileName); } - private void testPreviousGenerationJar(String language) { - ProjectRequest request = createProjectRequest(); + private void testPreviousGenerationJar(String language, String build, + String fileName) { + ProjectRequest request = createProjectRequestForType(build); request.setLanguage(language); request.setBootVersion("1.5.18.RELEASE"); ProjectAssert project = generateProject(request); - project.sourceCodeAssert(this.fileName).equalsTo(new ClassPathResource( - "project/" + language + "/previous/" + this.assertFileName)); + project.sourceCodeAssert(fileName).equalsTo(new ClassPathResource( + "project/" + language + "/previous/" + getAssertFileName(fileName))); } - @Test - public void kotlinJava11() { - ProjectRequest request = createProjectRequest(); + @ParameterizedTest + @MethodSource("parameters") + public void kotlinJava11(String build, String fileName) { + ProjectRequest request = createProjectRequestForType(build); request.setLanguage("kotlin"); request.setJavaVersion("11"); ProjectAssert project = generateProject(request); - project.sourceCodeAssert(this.fileName).equalsTo(new ClassPathResource( - "project/" + this.build + "/kotlin-java11-" + this.assertFileName)); + project.sourceCodeAssert(fileName).equalsTo(new ClassPathResource( + "project/" + build + "/kotlin-java11-" + getAssertFileName(fileName))); } - @Test - public void versionOverride() { - ProjectRequest request = createProjectRequest("web"); + @ParameterizedTest + @MethodSource("parameters") + public void versionOverride(String build, String fileName) { + ProjectRequest request = createProjectRequestForType(build, "web"); request.getBuildProperties().getVersions().put( VersionProperty.of("spring-foo.version", false), () -> "0.1.0.RELEASE"); request.getBuildProperties().getVersions() .put(VersionProperty.of("spring-bar.version"), () -> "0.2.0.RELEASE"); ProjectAssert project = generateProject(request); - project.sourceCodeAssert(this.fileName).equalsTo(new ClassPathResource( - "project/" + this.build + "/version-override-" + this.assertFileName)); + project.sourceCodeAssert(fileName).equalsTo(new ClassPathResource( + "project/" + build + "/version-override-" + getAssertFileName(fileName))); } - @Test - public void bomWithVersionProperty() { + @ParameterizedTest + @MethodSource("parameters") + public void bomWithVersionProperty(String build, String fileName) { Dependency foo = Dependency.withId("foo", "org.acme", "foo"); foo.setBom("the-bom"); BillOfMaterials bom = BillOfMaterials.create("org.acme", "foo-bom", "1.3.3"); @@ -157,28 +159,31 @@ public class ProjectGeneratorBuildTests extends AbstractProjectGeneratorTests { InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("foo", foo).addBom("the-bom", bom).build(); applyMetadata(metadata); - ProjectRequest request = createProjectRequest("foo"); + ProjectRequest request = createProjectRequestForType(build, "foo"); ProjectAssert project = generateProject(request); - project.sourceCodeAssert(this.fileName).equalsTo(new ClassPathResource( - "project/" + this.build + "/bom-property-" + this.assertFileName)); + project.sourceCodeAssert(fileName).equalsTo(new ClassPathResource( + "project/" + build + "/bom-property-" + getAssertFileName(fileName))); } - @Test - public void compileOnlyDependency() { + @ParameterizedTest + @MethodSource("parameters") + public void compileOnlyDependency(String build, String fileName) { Dependency foo = Dependency.withId("foo", "org.acme", "foo"); foo.setScope(Dependency.SCOPE_COMPILE_ONLY); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("core", "web", "data-jpa") .addDependencyGroup("foo", foo).build(); applyMetadata(metadata); - ProjectRequest request = createProjectRequest("foo", "web", "data-jpa"); + ProjectRequest request = createProjectRequestForType(build, "foo", "web", + "data-jpa"); ProjectAssert project = generateProject(request); - project.sourceCodeAssert(this.fileName).equalsTo(new ClassPathResource("project/" - + this.build + "/compile-only-dependency-" + this.assertFileName)); + project.sourceCodeAssert(fileName).equalsTo(new ClassPathResource("project/" + + build + "/compile-only-dependency-" + getAssertFileName(fileName))); } - @Test - public void annotationProcessorDependency() { + @ParameterizedTest + @MethodSource("parameters") + public void annotationProcessorDependency(String build, String fileName) { Dependency annotationProcessor = Dependency.withId("configuration-processor", "org.springframework.boot", "spring-boot-configuration-processor"); annotationProcessor.setScope(Dependency.SCOPE_ANNOTATION_PROCESSOR); @@ -187,16 +192,18 @@ public class ProjectGeneratorBuildTests extends AbstractProjectGeneratorTests { .addDependencyGroup("configuration-processor", annotationProcessor) .build(); applyMetadata(metadata); - ProjectRequest request = createProjectRequest("configuration-processor", "web", - "data-jpa"); + ProjectRequest request = createProjectRequestForType(build, + "configuration-processor", "web", "data-jpa"); ProjectAssert project = generateProject(request); - project.sourceCodeAssert(this.fileName) - .equalsTo(new ClassPathResource("project/" + this.build - + "/annotation-processor-dependency-" + this.assertFileName)); + project.sourceCodeAssert(fileName) + .equalsTo(new ClassPathResource( + "project/" + build + "/annotation-processor-dependency-" + + getAssertFileName(fileName))); } - @Test - public void bomWithOrdering() { + @ParameterizedTest + @MethodSource("parameters") + public void bomWithOrdering(String build, String fileName) { Dependency foo = Dependency.withId("foo", "org.acme", "foo"); foo.setBom("foo-bom"); BillOfMaterials barBom = BillOfMaterials.create("org.acme", "bar-bom", "1.0"); @@ -213,14 +220,15 @@ public class ProjectGeneratorBuildTests extends AbstractProjectGeneratorTests { .addDependencyGroup("foo", foo).addBom("foo-bom", fooBom) .addBom("bar-bom", barBom).addBom("biz-bom", bizBom).build(); applyMetadata(metadata); - ProjectRequest request = createProjectRequest("foo"); + ProjectRequest request = createProjectRequestForType(build, "foo"); ProjectAssert project = generateProject(request); - project.sourceCodeAssert(this.fileName).equalsTo(new ClassPathResource( - "project/" + this.build + "/bom-ordering-" + this.assertFileName)); + project.sourceCodeAssert(fileName).equalsTo(new ClassPathResource( + "project/" + build + "/bom-ordering-" + getAssertFileName(fileName))); } - @Test - public void repositories() { + @ParameterizedTest + @MethodSource("parameters") + public void repositories(String build, String fileName) { Dependency foo = Dependency.withId("foo", "org.acme", "foo"); foo.setRepository("foo-repository"); Dependency bar = Dependency.withId("bar", "org.acme", "bar"); @@ -233,30 +241,34 @@ public class ProjectGeneratorBuildTests extends AbstractProjectGeneratorTests { true) .build(); applyMetadata(metadata); - ProjectRequest request = createProjectRequest("foo", "bar"); + ProjectRequest request = createProjectRequestForType(build, "foo", "bar"); ProjectAssert project = generateProject(request); - project.sourceCodeAssert(this.fileName).equalsTo(new ClassPathResource( - "project/" + this.build + "/repositories-" + this.assertFileName)); + project.sourceCodeAssert(fileName).equalsTo(new ClassPathResource( + "project/" + build + "/repositories-" + getAssertFileName(fileName))); } - @Test - public void repositoriesMilestone() { + @ParameterizedTest + @MethodSource("parameters") + public void repositoriesMilestone(String build, String fileName) { Dependency foo = Dependency.withId("foo", "org.acme", "foo"); InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .addDependencyGroup("test", foo).build(); applyMetadata(metadata); - ProjectRequest request = createProjectRequest("foo"); + ProjectRequest request = createProjectRequestForType(build, "foo"); request.setBootVersion("2.2.0.M1"); ProjectAssert project = generateProject(request); - project.sourceCodeAssert(this.fileName).equalsTo(new ClassPathResource("project/" - + this.build + "/repositories-milestone-" + this.assertFileName)); + project.sourceCodeAssert(fileName).equalsTo(new ClassPathResource("project/" + + build + "/repositories-milestone-" + getAssertFileName(fileName))); } - @Override - public ProjectRequest createProjectRequest(String... styles) { + public ProjectRequest createProjectRequestForType(String build, String... styles) { ProjectRequest request = super.createProjectRequest(styles); - request.setType(this.build + "-project"); + request.setType(build + "-project"); return request; } + private String getAssertFileName(String fileName) { + return fileName + ".gen"; + } + } diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorLanguageTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorLanguageTests.java index 30ae668c..9a9bb2dc 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorLanguageTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorLanguageTests.java @@ -16,10 +16,12 @@ package io.spring.initializr.generator; +import java.util.stream.Stream; + import io.spring.initializr.test.generator.ProjectAssert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.springframework.core.io.ClassPathResource; @@ -28,117 +30,117 @@ import org.springframework.core.io.ClassPathResource; * * @author Stephane Nicoll */ -@RunWith(Parameterized.class) public class ProjectGeneratorLanguageTests extends AbstractProjectGeneratorTests { - @Parameterized.Parameters(name = "{0}") - public static Object[] parameters() { - Object[] java = new Object[] { "java", "java" }; - Object[] groovy = new Object[] { "groovy", "groovy" }; - Object[] kotlin = new Object[] { "kotlin", "kt" }; - return new Object[] { java, groovy, kotlin }; + public static Stream parameters() { + return Stream.of(Arguments.arguments("java", "java"), + Arguments.arguments("groovy", "groovy"), + Arguments.arguments("kotlin", "kt")); } - private final String language; - - private final String extension; - - private final String expectedExtension; - - public ProjectGeneratorLanguageTests(String language, String extension) { - this.language = language; - this.extension = extension; - this.expectedExtension = extension + ".gen"; - } - - @Test - public void currentGenerationJar() { + @ParameterizedTest + @MethodSource("parameters") + public void currentGenerationJar(String language, String extension) { ProjectRequest request = createProjectRequest(); - request.setLanguage(this.language); + request.setLanguage(language); generateProject(request).isGenericProject(ProjectAssert.DEFAULT_PACKAGE_NAME, - ProjectAssert.DEFAULT_APPLICATION_NAME, this.language, this.extension); + ProjectAssert.DEFAULT_APPLICATION_NAME, language, extension); } - @Test - public void currentGenerationWar() { + @ParameterizedTest + @MethodSource("parameters") + public void currentGenerationWar(String language, String extension) { ProjectRequest request = createProjectRequest("web"); - request.setLanguage(this.language); + request.setLanguage(language); request.setPackaging("war"); generateProject(request).isGenericWarProject(ProjectAssert.DEFAULT_PACKAGE_NAME, - ProjectAssert.DEFAULT_APPLICATION_NAME, this.language, this.extension); + ProjectAssert.DEFAULT_APPLICATION_NAME, language, extension); } - @Test - public void currentGenerationMainClass() { + @ParameterizedTest + @MethodSource("parameters") + public void currentGenerationMainClass(String language, String extension) { ProjectRequest request = createProjectRequest(); - request.setLanguage(this.language); + request.setLanguage(language); ProjectAssert project = generateProject(request); - project.sourceCodeAssert("src/main/" + this.language - + "/com/example/demo/DemoApplication." + this.extension) - .equalsTo(new ClassPathResource("project/" + this.language - + "/standard/DemoApplication." + this.expectedExtension)); + project.sourceCodeAssert( + "src/main/" + language + "/com/example/demo/DemoApplication." + extension) + .equalsTo(new ClassPathResource( + "project/" + language + "/standard/DemoApplication." + + getExpectedExtension(extension))); } - @Test - public void previousGenerationMainClass() { + @ParameterizedTest + @MethodSource("parameters") + public void previousGenerationMainClass(String language, String extension) { ProjectRequest request = createProjectRequest(); - request.setLanguage(this.language); + request.setLanguage(language); request.setBootVersion("1.5.18.RELEASE"); ProjectAssert project = generateProject(request); - project.sourceCodeAssert("src/main/" + this.language - + "/com/example/demo/DemoApplication." + this.extension) - .equalsTo(new ClassPathResource("project/" + this.language + "/previous/" - + "/DemoApplication." + this.expectedExtension)); + project.sourceCodeAssert( + "src/main/" + language + "/com/example/demo/DemoApplication." + extension) + .equalsTo(new ClassPathResource("project/" + language + "/previous/" + + "/DemoApplication." + getExpectedExtension(extension))); } - @Test - public void currentGenerationTestClass() { + @ParameterizedTest + @MethodSource("parameters") + public void currentGenerationTestClass(String language, String extension) { ProjectRequest request = createProjectRequest(); - request.setLanguage(this.language); + request.setLanguage(language); ProjectAssert project = generateProject(request); - project.sourceCodeAssert("src/test/" + this.language - + "/com/example/demo/DemoApplicationTests." + this.extension) - .equalsTo(new ClassPathResource("project/" + this.language - + "/standard/DemoApplicationTests." + this.expectedExtension)); + project.sourceCodeAssert("src/test/" + language + + "/com/example/demo/DemoApplicationTests." + extension) + .equalsTo(new ClassPathResource( + "project/" + language + "/standard/DemoApplicationTests." + + getExpectedExtension(extension))); } - @Test - public void currentGenerationTestClassWeb() { + @ParameterizedTest + @MethodSource("parameters") + public void currentGenerationTestClassWeb(String language, String extension) { ProjectRequest request = createProjectRequest("web"); - request.setLanguage(this.language); + request.setLanguage(language); ProjectAssert project = generateProject(request); - project.sourceCodeAssert("src/test/" + this.language - + "/com/example/demo/DemoApplicationTests." + this.extension) - .equalsTo(new ClassPathResource("project/" + this.language - + "/standard/DemoApplicationTestsWeb." + this.expectedExtension)); + project.sourceCodeAssert("src/test/" + language + + "/com/example/demo/DemoApplicationTests." + extension) + .equalsTo(new ClassPathResource( + "project/" + language + "/standard/DemoApplicationTestsWeb." + + getExpectedExtension(extension))); } - @Test - public void currentGenerationServletInitializer() { + @ParameterizedTest + @MethodSource("parameters") + public void currentGenerationServletInitializer(String language, String extension) { ProjectRequest request = createProjectRequest(); - request.setLanguage(this.language); + request.setLanguage(language); request.setPackaging("war"); ProjectAssert project = generateProject(request); - project.sourceCodeAssert("src/main/" + this.language - + "/com/example/demo/ServletInitializer." + this.extension) - .equalsTo(new ClassPathResource("project/" + this.language + "/standard/" - + "ServletInitializer." + this.expectedExtension)); + project.sourceCodeAssert("src/main/" + language + + "/com/example/demo/ServletInitializer." + extension) + .equalsTo(new ClassPathResource("project/" + language + "/standard/" + + "ServletInitializer." + getExpectedExtension(extension))); } - @Test - public void previousGenerationServletInitializer() { + @ParameterizedTest + @MethodSource("parameters") + public void previousGenerationServletInitializer(String language, String extension) { ProjectRequest request = createProjectRequest(); - request.setLanguage(this.language); + request.setLanguage(language); request.setBootVersion("1.5.18.RELEASE"); request.setPackaging("war"); ProjectAssert project = generateProject(request); - project.sourceCodeAssert("src/main/" + this.language - + "/com/example/demo/ServletInitializer." + this.extension) - .equalsTo(new ClassPathResource("project/" + this.language + "/previous/" - + "ServletInitializer." + this.expectedExtension)); + project.sourceCodeAssert("src/main/" + language + + "/com/example/demo/ServletInitializer." + extension) + .equalsTo(new ClassPathResource("project/" + language + "/previous/" + + "ServletInitializer." + getExpectedExtension(extension))); + } + + private String getExpectedExtension(String extension) { + return extension + ".gen"; } } diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorTests.java index 343f6705..f44020e5 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorTests.java @@ -24,14 +24,13 @@ import io.spring.initializr.metadata.InitializrMetadata; import io.spring.initializr.test.generator.ProjectAssert; import io.spring.initializr.test.metadata.InitializrMetadataTestBuilder; import io.spring.initializr.util.VersionProperty; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.core.io.ClassPathResource; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import static org.assertj.core.api.Assertions.fail; /** @@ -42,9 +41,6 @@ import static org.assertj.core.api.Assertions.fail; */ public class ProjectGeneratorTests extends AbstractProjectGeneratorTests { - @Rule - public final ExpectedException thrown = ExpectedException.none(); - @Override protected InitializrMetadataTestBuilder initializeTestMetadataBuilder() { return InitializrMetadataTestBuilder.withBasicDefaults(); @@ -786,18 +782,18 @@ public class ProjectGeneratorTests extends AbstractProjectGeneratorTests { public void invalidProjectTypeMavenPom() { ProjectRequest request = createProjectRequest("web"); request.setType("gradle-build"); - this.thrown.expect(InvalidProjectRequestException.class); - this.thrown.expectMessage("gradle-build"); - this.projectGenerator.generateMavenPom(request); + assertThatExceptionOfType(InvalidProjectRequestException.class) + .isThrownBy(() -> this.projectGenerator.generateMavenPom(request)) + .withMessageContaining("gradle-build"); } @Test public void invalidProjectTypeGradleBuild() { ProjectRequest request = createProjectRequest("web"); request.setType("maven-build"); - this.thrown.expect(InvalidProjectRequestException.class); - this.thrown.expectMessage("maven-build"); - this.projectGenerator.generateGradleBuild(request); + assertThatExceptionOfType(InvalidProjectRequestException.class) + .isThrownBy(() -> this.projectGenerator.generateGradleBuild(request)) + .withMessageContaining("maven-build"); } @Test @@ -860,9 +856,9 @@ public class ProjectGeneratorTests extends AbstractProjectGeneratorTests { ProjectRequest request = createProjectRequest("web"); request.setType("maven-project"); request.setBootVersion("1.2.3.M4"); - this.thrown.expect(InvalidProjectRequestException.class); - this.thrown.expectMessage("1.2.3.M4"); - this.projectGenerator.generateMavenPom(request); + assertThatExceptionOfType(InvalidProjectRequestException.class) + .isThrownBy(() -> this.projectGenerator.generateMavenPom(request)) + .withMessageContaining("1.2.3.M4"); } @Test diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectRequestResolverTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectRequestResolverTests.java index 5a7db4e1..d158be9d 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectRequestResolverTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectRequestResolverTests.java @@ -24,8 +24,8 @@ import java.util.Map; import io.spring.initializr.metadata.InitializrMetadata; import io.spring.initializr.test.metadata.InitializrMetadataTestBuilder; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.BeanWrapperImpl; @@ -45,7 +45,7 @@ public class ProjectRequestResolverTests { final GenericProjectRequestPostProcessor processor = new GenericProjectRequestPostProcessor(); - @Before + @BeforeEach public void setup() { this.postProcessors.add(this.processor); } diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectRequestTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectRequestTests.java index 558f3c21..037df061 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectRequestTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectRequestTests.java @@ -24,20 +24,16 @@ import io.spring.initializr.metadata.Dependency.Mapping; import io.spring.initializr.metadata.InitializrMetadata; import io.spring.initializr.metadata.InitializrMetadataBuilder; import io.spring.initializr.test.metadata.InitializrMetadataTestBuilder; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; /** * @author Stephane Nicoll */ public class ProjectRequestTests { - @Rule - public final ExpectedException thrown = ExpectedException.none(); - private InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults() .build(); @@ -115,11 +111,9 @@ public class ProjectRequestTests { .addDependencyGroup("code", "org.foo:bar").build(); ProjectRequest request = initProjectRequest(); request.getStyle().addAll(Arrays.asList("org.foo:bar", "foo-bar")); - - this.thrown.expect(InvalidProjectRequestException.class); - this.thrown.expectMessage("foo-bar"); - request.resolve(this.metadata); - assertThat(request.getResolvedDependencies()).hasSize(1); + assertThatExceptionOfType(InvalidProjectRequestException.class) + .isThrownBy(() -> request.resolve(this.metadata)) + .withMessageContaining("foo-bar"); } @Test @@ -128,11 +122,9 @@ public class ProjectRequestTests { .addDependencyGroup("code", "org.foo:bar").build(); ProjectRequest request = initProjectRequest(); request.getStyle().add("org.foo:acme"); // does not exist - - this.thrown.expect(InvalidProjectRequestException.class); - this.thrown.expectMessage("org.foo:acme"); - request.resolve(this.metadata); - assertThat(request.getResolvedDependencies()).hasSize(1); + assertThatExceptionOfType(InvalidProjectRequestException.class) + .isThrownBy(() -> request.resolve(this.metadata)) + .withMessageContaining("org.foo:acme"); } @Test @@ -156,11 +148,10 @@ public class ProjectRequestTests { ProjectRequest request = initProjectRequest(); request.getStyle().add("org.foo:bar"); request.setBootVersion("0.9.9.RELEASE"); - - this.thrown.expect(InvalidProjectRequestException.class); - this.thrown.expectMessage("org.foo:bar"); - this.thrown.expectMessage("0.9.9.RELEASE"); - request.resolve(metadata); + assertThatExceptionOfType(InvalidProjectRequestException.class) + .isThrownBy(() -> request.resolve(metadata)) + .withMessageContaining("org.foo:bar") + .withMessageContaining("0.9.9.RELEASE"); } @Test @@ -210,10 +201,9 @@ public class ProjectRequestTests { public void resolveUnknownType() { ProjectRequest request = initProjectRequest(); request.setType("foo-project"); - - this.thrown.expect(InvalidProjectRequestException.class); - this.thrown.expectMessage("foo-project"); - request.resolve(this.metadata); + assertThatExceptionOfType(InvalidProjectRequestException.class) + .isThrownBy(() -> request.resolve(this.metadata)) + .withMessageContaining("foo-project"); } @Test diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/BillOfMaterialsTests.java b/initializr-generator/src/test/java/io/spring/initializr/metadata/BillOfMaterialsTests.java index 35d9ff96..5ed255a0 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/metadata/BillOfMaterialsTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/metadata/BillOfMaterialsTests.java @@ -21,20 +21,16 @@ import java.util.Arrays; import io.spring.initializr.metadata.BillOfMaterials.Mapping; import io.spring.initializr.util.Version; import io.spring.initializr.util.VersionParser; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalStateException; /** * @author Stephane Nicoll */ public class BillOfMaterialsTests { - @Rule - public final ExpectedException thrown = ExpectedException.none(); - @Test public void resolveSimpleBom() { BillOfMaterials bom = BillOfMaterials.create("com.example", "bom", "1.0.0"); @@ -126,10 +122,9 @@ public class BillOfMaterialsTests { bom.getMappings().add(Mapping.create("[1.2.0.RELEASE,1.3.0.M1)", "1.1.0")); bom.getMappings().add(Mapping.create("[1.3.0.M1, 1.4.0.M1)", "1.2.0")); bom.validate(); - - this.thrown.expect(IllegalStateException.class); - this.thrown.expectMessage("1.4.1.RELEASE"); - bom.resolve(Version.parse("1.4.1.RELEASE")); + assertThatIllegalStateException() + .isThrownBy(() -> bom.resolve(Version.parse("1.4.1.RELEASE"))) + .withMessageContaining("1.4.1.RELEASE"); } @Test diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/DependenciesCapabilityTests.java b/initializr-generator/src/test/java/io/spring/initializr/metadata/DependenciesCapabilityTests.java index e1b90f0e..ca47bce6 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/metadata/DependenciesCapabilityTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/metadata/DependenciesCapabilityTests.java @@ -16,11 +16,10 @@ package io.spring.initializr.metadata; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; /** * Tests for {@link DependenciesCapability}. @@ -29,9 +28,6 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class DependenciesCapabilityTests { - @Rule - public final ExpectedException thrown = ExpectedException.none(); - @Test public void indexedDependencies() { Dependency dependency = Dependency.withId("first"); @@ -51,10 +47,8 @@ public class DependenciesCapabilityTests { Dependency dependency2 = Dependency.withId("conflict"); DependenciesCapability capability = createDependenciesCapability("foo", dependency, dependency2); - - this.thrown.expect(IllegalArgumentException.class); - this.thrown.expectMessage("conflict"); - capability.validate(); + assertThatIllegalArgumentException().isThrownBy(capability::validate) + .withMessageContaining("conflict"); } @Test @@ -65,7 +59,6 @@ public class DependenciesCapabilityTests { DependenciesCapability capability = createDependenciesCapability("foo", dependency); capability.validate(); - assertThat(capability.get("first")).isSameAs(dependency); assertThat(capability.get("alias1")).isSameAs(dependency); assertThat(capability.get("alias2")).isSameAs(dependency); @@ -81,10 +74,8 @@ public class DependenciesCapabilityTests { DependenciesCapability capability = new DependenciesCapability(); capability.getContent().add(createDependencyGroup("foo", dependency)); capability.getContent().add(createDependencyGroup("bar", dependency2)); - - this.thrown.expect(IllegalArgumentException.class); - this.thrown.expectMessage("alias2"); - capability.validate(); + assertThatIllegalArgumentException().isThrownBy(capability::validate) + .withMessageContaining("alias2"); } @Test diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/DependencyTests.java b/initializr-generator/src/test/java/io/spring/initializr/metadata/DependencyTests.java index 298ae440..ed623273 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/metadata/DependencyTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/metadata/DependencyTests.java @@ -20,11 +20,11 @@ import java.util.Arrays; import io.spring.initializr.util.Version; import io.spring.initializr.util.VersionParser; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; /** * Tests for {@link Dependency}. @@ -33,9 +33,6 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class DependencyTests { - @Rule - public final ExpectedException thrown = ExpectedException.none(); - @Test public void createRootSpringBootStarter() { Dependency d = new Dependency(); @@ -95,59 +92,53 @@ public class DependencyTests { @Test public void invalidDependency() { - this.thrown.expect(InvalidInitializrMetadataException.class); - new Dependency().resolve(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(() -> new Dependency().resolve()); } @Test public void invalidDependencyScope() { Dependency dependency = Dependency.withId("web"); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(() -> dependency.setScope("whatever")); - this.thrown.expect(InvalidInitializrMetadataException.class); - dependency.setScope("whatever"); } @Test public void invalidSpringBootRange() { Dependency dependency = Dependency.withId("web"); dependency.setVersionRange("A.B.C"); - - this.thrown.expect(InvalidInitializrMetadataException.class); - this.thrown.expectMessage("A.B.C"); - dependency.resolve(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(dependency::resolve).withMessageContaining("A.B.C"); } @Test public void invalidIdFormatTooManyColons() { Dependency dependency = Dependency.withId("org.foo:bar:1.0:test:external"); - - this.thrown.expect(InvalidInitializrMetadataException.class); - dependency.resolve(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(dependency::resolve); } @Test public void invalidLink() { Dependency dependency = Dependency.withId("foo"); dependency.getLinks().add(Link.create(null, "https://example.com")); - - this.thrown.expect(InvalidInitializrMetadataException.class); - dependency.resolve(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(dependency::resolve); } @Test public void generateIdWithNoGroupId() { Dependency dependency = new Dependency(); dependency.setArtifactId("bar"); - this.thrown.expect(IllegalArgumentException.class); - dependency.generateId(); + assertThatIllegalArgumentException().isThrownBy(dependency::generateId); } @Test public void generateIdWithNoArtifactId() { Dependency dependency = new Dependency(); dependency.setGroupId("foo"); - this.thrown.expect(IllegalArgumentException.class); - dependency.generateId(); + assertThatIllegalArgumentException().isThrownBy(dependency::generateId); } @Test @@ -163,9 +154,8 @@ public class DependencyTests { Dependency dependency = Dependency.withId("web"); dependency.getMappings() .add(Dependency.Mapping.create("foo-bar", null, null, "0.1.0.RELEASE")); - this.thrown.expect(InvalidInitializrMetadataException.class); - this.thrown.expectMessage("foo-bar"); - dependency.resolve(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(dependency::resolve).withMessageContaining("foo-bar"); } @Test diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrConfigurationTests.java b/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrConfigurationTests.java index 2b215e63..09c08f28 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrConfigurationTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrConfigurationTests.java @@ -18,7 +18,7 @@ package io.spring.initializr.metadata; import io.spring.initializr.metadata.InitializrConfiguration.Env.Kotlin; import io.spring.initializr.util.Version; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrMetadataBuilderTests.java b/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrMetadataBuilderTests.java index 171d8fb1..bf030b71 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrMetadataBuilderTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrMetadataBuilderTests.java @@ -20,7 +20,7 @@ import java.net.URL; import java.util.Map; import java.util.Properties; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; import org.springframework.boot.context.properties.bind.Binder; diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrMetadataTests.java b/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrMetadataTests.java index 47dd0777..ed06322b 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrMetadataTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/metadata/InitializrMetadataTests.java @@ -23,20 +23,16 @@ import io.spring.initializr.metadata.BillOfMaterials.Mapping; import io.spring.initializr.metadata.InitializrConfiguration.Env.Kotlin; import io.spring.initializr.test.metadata.InitializrMetadataTestBuilder; import io.spring.initializr.util.Version; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; /** * @author Stephane Nicoll */ public class InitializrMetadataTests { - @Rule - public final ExpectedException thrown = ExpectedException.none(); - @Test public void invalidBom() { Dependency foo = Dependency.withId("foo", "org.acme", "foo"); @@ -44,11 +40,9 @@ public class InitializrMetadataTests { InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder .withDefaults().addBom("my-bom", "org.acme", "foo", "1.2.3") .addDependencyGroup("test", foo); - - this.thrown.expect(InvalidInitializrMetadataException.class); - this.thrown.expectMessage("foo-bom"); - this.thrown.expectMessage("my-bom"); - builder.build(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(builder::build).withMessageContaining("foo-bom") + .withMessageContaining("my-bom"); } @Test @@ -59,11 +53,9 @@ public class InitializrMetadataTests { .withDefaults() .addRepository("my-repo", "repo", "http://example.com/repo", true) .addDependencyGroup("test", foo); - - this.thrown.expect(InvalidInitializrMetadataException.class); - this.thrown.expectMessage("foo-repo"); - this.thrown.expectMessage("my-repo"); - builder.build(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(builder::build).withMessageContaining("foo-repo") + .withMessageContaining("my-repo"); } @Test @@ -72,11 +64,9 @@ public class InitializrMetadataTests { InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder .withDefaults().addBom("foo-bom", bom); - - this.thrown.expect(InvalidInitializrMetadataException.class); - this.thrown.expectMessage("No version"); - this.thrown.expectMessage("foo-bom"); - builder.build(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(builder::build).withMessageContaining("No version") + .withMessageContaining("foo-bom"); } @Test @@ -87,11 +77,10 @@ public class InitializrMetadataTests { InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder .withDefaults().addBom("foo-bom", bom); - - this.thrown.expect(InvalidInitializrMetadataException.class); - this.thrown.expectMessage("invalid repository id foo-repo"); - this.thrown.expectMessage("foo-bom"); - builder.build(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(builder::build) + .withMessageContaining("invalid repository id foo-repo") + .withMessageContaining("foo-bom"); } @Test @@ -104,11 +93,10 @@ public class InitializrMetadataTests { InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder .withDefaults().addBom("foo-bom", bom).addBom("bar-bom", barBom); - - this.thrown.expect(InvalidInitializrMetadataException.class); - this.thrown.expectMessage("invalid additional bom"); - this.thrown.expectMessage("biz-bom"); - builder.build(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(builder::build) + .withMessageContaining("invalid additional bom") + .withMessageContaining("biz-bom"); } @Test @@ -119,11 +107,9 @@ public class InitializrMetadataTests { InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder .withDefaults().addBom("foo-bom", bom); - - this.thrown.expect(InvalidInitializrMetadataException.class); - this.thrown.expectMessage("FOO_BAR"); - this.thrown.expectMessage("foo-bom"); - builder.build(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(builder::build).withMessageContaining("FOO_BAR") + .withMessageContaining("foo-bom"); } @Test @@ -136,12 +122,10 @@ public class InitializrMetadataTests { InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder .withDefaults().addBom("foo-bom", bom); - - this.thrown.expect(InvalidInitializrMetadataException.class); - this.thrown.expectMessage("invalid repository id foo-repo"); - this.thrown.expectMessage("1.3.0.M2"); - this.thrown.expectMessage("foo-bom"); - builder.build(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(builder::build) + .withMessageContaining("invalid repository id foo-repo") + .withMessageContaining("1.3.0.M2").withMessageContaining("foo-bom"); } @Test @@ -154,12 +138,10 @@ public class InitializrMetadataTests { InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder .withDefaults().addBom("foo-bom", bom); - - this.thrown.expect(InvalidInitializrMetadataException.class); - this.thrown.expectMessage("invalid additional bom"); - this.thrown.expectMessage("1.3.0.M2"); - this.thrown.expectMessage("bar-bom"); - builder.build(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(builder::build) + .withMessageContaining("invalid additional bom") + .withMessageContaining("1.3.0.M2").withMessageContaining("bar-bom"); } @Test @@ -205,11 +187,9 @@ public class InitializrMetadataTests { public void invalidParentMissingVersion() { InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder .withDefaults().setMavenParent("org.foo", "foo-parent", null, false); - - this.thrown.expect(InvalidInitializrMetadataException.class); - this.thrown.expectMessage( - "Custom maven pom requires groupId, artifactId and version"); - builder.build(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(builder::build).withMessageContaining( + "Custom maven pom requires groupId, artifactId and version"); } @Test diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/LinkTests.java b/initializr-generator/src/test/java/io/spring/initializr/metadata/LinkTests.java index 72748d6c..276068dc 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/metadata/LinkTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/metadata/LinkTests.java @@ -21,11 +21,11 @@ import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; /** * Tests for {@link Link}. @@ -34,22 +34,19 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class LinkTests { - @Rule - public final ExpectedException thrown = ExpectedException.none(); - @Test public void resolveInvalidLinkNoRel() { Link link = new Link(); link.setHref("https://example.com"); - this.thrown.expect(InvalidInitializrMetadataException.class); - link.resolve(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(link::resolve); } @Test public void resolveInvalidLinkNoHref() { Link link = Link.create("reference", null, "foo doc"); - this.thrown.expect(InvalidInitializrMetadataException.class); - link.resolve(); + assertThatExceptionOfType(InvalidInitializrMetadataException.class) + .isThrownBy(link::resolve); } @Test @@ -94,10 +91,9 @@ public class LinkTests { public void expandLinkMissingVariable() { Link link = Link.create("reference", "https://example.com/{a}/2/{b}"); link.resolve(); - - this.thrown.expect(IllegalArgumentException.class); - this.thrown.expectMessage("missing value for 'b'"); - link.expand(Collections.singletonMap("a", "test")); + assertThatIllegalArgumentException() + .isThrownBy(() -> link.expand(Collections.singletonMap("a", "test"))) + .withMessageContaining("missing value for 'b'"); } } diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/SingleSelectCapabilityTests.java b/initializr-generator/src/test/java/io/spring/initializr/metadata/SingleSelectCapabilityTests.java index 9440bdc6..59071366 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/metadata/SingleSelectCapabilityTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/metadata/SingleSelectCapabilityTests.java @@ -16,7 +16,7 @@ package io.spring.initializr.metadata; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/TextCapabilityTests.java b/initializr-generator/src/test/java/io/spring/initializr/metadata/TextCapabilityTests.java index 7b2acdbf..02eca82e 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/metadata/TextCapabilityTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/metadata/TextCapabilityTests.java @@ -16,7 +16,7 @@ package io.spring.initializr.metadata; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/TypeCapabilityTests.java b/initializr-generator/src/test/java/io/spring/initializr/metadata/TypeCapabilityTests.java index 26602b10..7044f0e1 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/metadata/TypeCapabilityTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/metadata/TypeCapabilityTests.java @@ -16,7 +16,7 @@ package io.spring.initializr.metadata; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/initializr-generator/src/test/java/io/spring/initializr/metadata/TypeTests.java b/initializr-generator/src/test/java/io/spring/initializr/metadata/TypeTests.java index e96e7fe5..402682b5 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/metadata/TypeTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/metadata/TypeTests.java @@ -16,7 +16,7 @@ package io.spring.initializr.metadata; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/initializr-generator/src/test/java/io/spring/initializr/test/generator/PomAssert.java b/initializr-generator/src/test/java/io/spring/initializr/test/generator/PomAssert.java index c5d3d106..b70d31d2 100644 --- a/initializr-generator/src/test/java/io/spring/initializr/test/generator/PomAssert.java +++ b/initializr-generator/src/test/java/io/spring/initializr/test/generator/PomAssert.java @@ -30,7 +30,7 @@ import org.custommonkey.xmlunit.SimpleNamespaceContext; import org.custommonkey.xmlunit.XMLUnit; import org.custommonkey.xmlunit.XpathEngine; import org.custommonkey.xmlunit.exceptions.XpathException; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.w3c.dom.DOMException; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -274,7 +274,7 @@ public class PomAssert { public PomAssert hasNoRepository() { try { - Assert.assertEquals(0, this.eng + Assertions.assertEquals(0, this.eng .getMatchingNodes(createRootNodeXPath("repositories"), this.doc) .getLength()); } diff --git a/initializr-generator/src/test/java/io/spring/initializr/util/AgentTests.java b/initializr-generator/src/test/java/io/spring/initializr/util/AgentTests.java index 8ee49782..0e9b865a 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/util/AgentTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/util/AgentTests.java @@ -16,7 +16,7 @@ package io.spring.initializr.util; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/initializr-generator/src/test/java/io/spring/initializr/util/VersionParserTests.java b/initializr-generator/src/test/java/io/spring/initializr/util/VersionParserTests.java index ed1c1f52..47eff0b5 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/util/VersionParserTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/util/VersionParserTests.java @@ -20,11 +20,10 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; /** * Tests for {@link VersionParser}. @@ -33,9 +32,6 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class VersionParserTests { - @Rule - public final ExpectedException thrown = ExpectedException.none(); - private VersionParser parser = new VersionParser(Collections.emptyList()); @Test @@ -58,8 +54,8 @@ public class VersionParserTests { @Test public void parseInvalidVersion() { - this.thrown.expect(InvalidVersionException.class); - this.parser.parse("foo"); + assertThatExceptionOfType(InvalidVersionException.class) + .isThrownBy(() -> this.parser.parse("foo")); } @Test @@ -128,8 +124,8 @@ public class VersionParserTests { @Test public void invalidRange() { - this.thrown.expect(InvalidVersionException.class); - this.parser.parseRange("foo-bar"); + assertThatExceptionOfType(InvalidVersionException.class) + .isThrownBy(() -> this.parser.parseRange("foo-bar")); } } diff --git a/initializr-generator/src/test/java/io/spring/initializr/util/VersionPropertyTests.java b/initializr-generator/src/test/java/io/spring/initializr/util/VersionPropertyTests.java index b370d119..a342834f 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/util/VersionPropertyTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/util/VersionPropertyTests.java @@ -16,11 +16,10 @@ package io.spring.initializr.util; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; /** * Tests for {@link VersionProperty}. @@ -29,9 +28,6 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class VersionPropertyTests { - @Rule - public final ExpectedException thrown = ExpectedException.none(); - @Test public void testStandardProperty() { assertThat(VersionProperty.of("spring-boot.version").toStandardFormat()) @@ -58,16 +54,15 @@ public class VersionPropertyTests { @Test public void testInvalidPropertyUpperCase() { - this.thrown.expect(IllegalArgumentException.class); - this.thrown.expectMessage("upper case"); - VersionProperty.of("Spring-boot.version"); + assertThatIllegalArgumentException() + .isThrownBy(() -> VersionProperty.of("Spring-boot.version")); } @Test public void testInvalidPropertyIllegalCharacter() { - this.thrown.expect(IllegalArgumentException.class); - this.thrown.expectMessage("Unsupported character"); - VersionProperty.of("spring-boot_version"); + assertThatIllegalArgumentException() + .isThrownBy(() -> VersionProperty.of("spring-boot_version")) + .withMessageContaining("Unsupported character"); } } diff --git a/initializr-generator/src/test/java/io/spring/initializr/util/VersionRangeTests.java b/initializr-generator/src/test/java/io/spring/initializr/util/VersionRangeTests.java index d03a85e5..48faa040 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/util/VersionRangeTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/util/VersionRangeTests.java @@ -20,9 +20,7 @@ import java.util.Arrays; import java.util.Collections; import org.assertj.core.api.Condition; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; @@ -31,9 +29,6 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class VersionRangeTests { - @Rule - public final ExpectedException thrown = ExpectedException.none(); - @Test public void simpleStartingRange() { assertThat(new VersionRange(Version.parse("1.3.0.RELEASE")).toString()) diff --git a/initializr-generator/src/test/java/io/spring/initializr/util/VersionTests.java b/initializr-generator/src/test/java/io/spring/initializr/util/VersionTests.java index 8aef58f6..ad9a7eb7 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/util/VersionTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/util/VersionTests.java @@ -18,7 +18,7 @@ package io.spring.initializr.util; import java.util.Collections; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/pom.xml b/pom.xml index 2c262487..737c124a 100644 --- a/pom.xml +++ b/pom.xml @@ -82,7 +82,11 @@ 0.7.0.BUILD-SNAPSHOT test-jar - + + org.junit-pioneer + junit-pioneer + 0.1.2 + org.springframework.boot spring-boot-dependencies @@ -232,7 +236,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.20.1 + 2.22.1 **/*Tests.java