diff --git a/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/gradle/GradleProjectGenerationConfigurationTests.java b/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/gradle/GradleProjectGenerationConfigurationTests.java index 64558d1c..fc70dfb6 100644 --- a/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/gradle/GradleProjectGenerationConfigurationTests.java +++ b/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/gradle/GradleProjectGenerationConfigurationTests.java @@ -164,6 +164,31 @@ class GradleProjectGenerationConfigurationTests { assertThat(lines).doesNotContainSequence("test {", " useJUnitPlatform()", "}"); } + @Test + void testStarterExcludesVintageEngineAndJUnitWithCompatibleVersion() { + ProjectDescription description = new ProjectDescription(); + description.setPlatformVersion(Version.parse("2.2.0.M4")); + description.setLanguage(new JavaLanguage()); + ProjectStructure projectStructure = this.projectTester.generate(description); + assertThat(projectStructure.getRelativePathsOfProjectFiles()).contains("build.gradle"); + List lines = projectStructure.readAllLines("build.gradle"); + assertThat(lines).containsSequence( + " testImplementation('org.springframework.boot:spring-boot-starter-test') {", + " exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'", + " exclude group: 'junit', module: 'junit'", " }"); + } + + @Test + void testStarterDoesNotExcludesVintageEngineAndJUnitWithIncompatibleVersion() { + ProjectDescription description = new ProjectDescription(); + description.setPlatformVersion(Version.parse("2.1.6.RELEASE")); + description.setLanguage(new JavaLanguage()); + ProjectStructure projectStructure = this.projectTester.generate(description); + assertThat(projectStructure.getRelativePathsOfProjectFiles()).contains("build.gradle"); + List lines = projectStructure.readAllLines("build.gradle"); + assertThat(lines).doesNotContain("exclude group"); + } + static Stream annotationProcessorScopeBuildParameters() { return Stream.of(Arguments.arguments("1.5.17.RELEASE", false), Arguments.arguments("2.0.6.RELEASE", true), Arguments.arguments("2.1.3.RELEASE", true)); diff --git a/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/maven/MavenProjectGenerationConfigurationTests.java b/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/maven/MavenProjectGenerationConfigurationTests.java index 03f4ffb2..b4044e57 100644 --- a/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/maven/MavenProjectGenerationConfigurationTests.java +++ b/initializr-generator-spring/src/test/java/io/spring/initializr/generator/spring/build/maven/MavenProjectGenerationConfigurationTests.java @@ -95,4 +95,31 @@ class MavenProjectGenerationConfigurationTests { assertThat(lines).containsOnlyOnce(" war"); } + @Test + void testStarterExcludesVintageEngineAndJUnitWithCompatibleVersion() { + ProjectDescription description = new ProjectDescription(); + description.setPlatformVersion(Version.parse("2.2.0.M4")); + description.setLanguage(new JavaLanguage()); + ProjectStructure projectStructure = this.projectTester.generate(description); + assertThat(projectStructure.getRelativePathsOfProjectFiles()).contains("pom.xml"); + List lines = projectStructure.readAllLines("pom.xml"); + assertThat(lines).containsSequence(" ", " ", + " org.junit.vintage", + " junit-vintage-engine", " ", + " ", " junit", + " junit", " ", + " "); + } + + @Test + void testStarterDoesNotExcludesVintageEngineAndJUnitWithIncompatibleVersion() { + ProjectDescription description = new ProjectDescription(); + description.setPlatformVersion(Version.parse("2.1.6.RELEASE")); + description.setLanguage(new JavaLanguage()); + ProjectStructure projectStructure = this.projectTester.generate(description); + assertThat(projectStructure.getRelativePathsOfProjectFiles()).contains("pom.xml"); + List lines = projectStructure.readAllLines("pom.xml"); + assertThat(lines).doesNotContain(" "); + } + }