Skip to content

Commit

Permalink
Reduce test fragility in AddPluginsBomTest (#66)
Browse files Browse the repository at this point in the history
* Update test cases to reflect updating to the latest io.jenkins.tools.bom:bom-2.440.x version

* Remove all .stripIndent() calls
Update test cases to use ModernizePluginTest.Versions where and how possible

* Apply org.openrewrite.recipes.OpenRewriteBestPractices to UtilGetPastTimeStringToTimeSpanStringTest
Slightly change formatting in UpgradeHtmlUnit_3_3_0Test

* Apply automated code suggestions

---------

Co-authored-by: Laurens Westerlaken <[email protected]>
Co-authored-by: Tim te Beek <[email protected]>
  • Loading branch information
3 people authored Aug 7, 2024
1 parent 966916d commit 476b1e7
Show file tree
Hide file tree
Showing 10 changed files with 161 additions and 300 deletions.
248 changes: 53 additions & 195 deletions src/test/java/org/openrewrite/jenkins/AddPluginsBomTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import org.openrewrite.test.RecipeSpec;
import org.openrewrite.test.RewriteTest;

import static org.assertj.core.api.Assertions.assertThat;
import static org.openrewrite.maven.Assertions.pomXml;

class AddPluginsBomTest implements RewriteTest {
Expand Down Expand Up @@ -51,7 +52,7 @@ void shouldNotAddBomIfNoDependencies() {
</repository>
</repositories>
</project>
""".stripIndent()
"""
));
}

Expand Down Expand Up @@ -84,7 +85,7 @@ void shouldNotAddBomIfNoManagedDependencies() {
</dependency>
</dependencies>
</project>
""".stripIndent()
"""
));
}

Expand Down Expand Up @@ -118,43 +119,13 @@ void shouldAddBomIfManagedDependencies() {
</dependency>
</dependencies>
</project>
""".stripIndent(),
"""
<project>
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>4.86</version>
<relativePath/>
</parent>
<properties>
<jenkins.version>2.440.3</jenkins.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.jenkins.tools.bom</groupId>
<artifactId>bom-2.440.x</artifactId>
<version>3221.ve8f7b_fdd149d</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>ant</artifactId>
</dependency>
</dependencies>
</project>
""".stripIndent()
""",
spec -> spec.after(after -> {
ModernizePluginTest.Versions versionsAfter = ModernizePluginTest.Versions.parse(after);
assertThat(versionsAfter.bomArtifactId()).isNotEmpty();
assertThat(versionsAfter.bomVersion()).isNotEmpty();
return after;
})
));
}

Expand Down Expand Up @@ -197,12 +168,14 @@ void shouldLeaveBomVersionIfAlreadyPresent() {
</dependency>
</dependencies>
</project>
""".stripIndent()
"""
));
}

@Test
void shouldFixOutdatedPluginsBom() {
String bomArtifactId = "bom-2.346.x";
String bomVersion = "1706.vc166d5f429f8";
// language=xml
rewriteRun(pomXml(
"""
Expand All @@ -220,8 +193,8 @@ void shouldFixOutdatedPluginsBom() {
<dependencies>
<dependency>
<groupId>io.jenkins.tools.bom</groupId>
<artifactId>bom-2.346.x</artifactId>
<version>1706.vc166d5f429f8</version>
<artifactId>%s</artifactId>
<version>%s</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand All @@ -247,127 +220,43 @@ void shouldFixOutdatedPluginsBom() {
</dependency>
</dependencies>
</project>
""".stripIndent(),
"""
<project>
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>4.86</version>
<relativePath/>
</parent>
<properties>
<jenkins.version>2.440.3</jenkins.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.jenkins.tools.bom</groupId>
<artifactId>bom-2.440.x</artifactId>
<version>3221.ve8f7b_fdd149d</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>ant</artifactId>
</dependency>
</dependencies>
</project>
""".stripIndent()
""".formatted(bomArtifactId, bomVersion),
spec -> spec.after(after -> {
ModernizePluginTest.Versions versionsAfter = ModernizePluginTest.Versions.parse(after);
assertThat(versionsAfter.bomArtifactId()).isGreaterThan(bomArtifactId);
assertThat(versionsAfter.bomVersion()).isGreaterThan(bomVersion);
return after;
})
));
}

@Test
void shouldFixOutdatedPluginsBomPropertiesBelowManagedDependencies() {
ModernizePluginTest.Versions versionsBefore = new ModernizePluginTest.Versions(
"4.86",
"2.440.3",
"bom-2.346.x",
"1706.vc166d5f429f8"
);
// language=xml
rewriteRun(pomXml(
"""
<project>
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>4.86</version>
<relativePath/>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.jenkins.tools.bom</groupId>
<artifactId>bom-2.346.x</artifactId>
<version>1706.vc166d5f429f8</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>ant</artifactId>
</dependency>
</dependencies>
<properties>
<jenkins.version>2.440.3</jenkins.version>
</properties>
</project>
""".stripIndent(),
"""
<project>
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>4.86</version>
<relativePath/>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.jenkins.tools.bom</groupId>
<artifactId>bom-2.440.x</artifactId>
<version>3221.ve8f7b_fdd149d</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>ant</artifactId>
</dependency>
</dependencies>
<properties>
<jenkins.version>2.440.3</jenkins.version>
</properties>
</project>
""".stripIndent()
));
versionsBefore.asPomXml(),
spec -> spec.after(after -> {
ModernizePluginTest.Versions versionsAfter = ModernizePluginTest.Versions.parse(after);
assertThat(versionsAfter.parentVersion()).isGreaterThanOrEqualTo(versionsBefore.parentVersion());
assertThat(versionsAfter.propertyVersion()).isGreaterThanOrEqualTo(versionsBefore.propertyVersion());
assertThat(versionsAfter.bomArtifactId()).isGreaterThan(versionsBefore.bomArtifactId());
assertThat(versionsAfter.bomVersion()).isGreaterThan(versionsBefore.bomVersion());
return versionsAfter.asPomXml();
})
)
);
}

@Test
void shouldFixOutdatedPluginsBomEvenIfUnused() {
String bomArtifactId = "bom-2.346.x";
String bomVersion = "1706.vc166d5f429f8";
// language=xml
rewriteRun(pomXml(
"""
Expand All @@ -385,45 +274,8 @@ void shouldFixOutdatedPluginsBomEvenIfUnused() {
<dependencies>
<dependency>
<groupId>io.jenkins.tools.bom</groupId>
<artifactId>bom-2.346.x</artifactId>
<version>1706.vc166d5f429f8</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.4.4</version>
</dependency>
</dependencies>
</project>
""".stripIndent(),
"""
<project>
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>4.86</version>
<relativePath/>
</parent>
<properties>
<jenkins.version>2.440.3</jenkins.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.jenkins.tools.bom</groupId>
<artifactId>bom-2.440.x</artifactId>
<version>3221.ve8f7b_fdd149d</version>
<artifactId>%s</artifactId>
<version>%s</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand All @@ -443,7 +295,13 @@ void shouldFixOutdatedPluginsBomEvenIfUnused() {
</dependency>
</dependencies>
</project>
""".stripIndent()
""".formatted(bomArtifactId, bomVersion),
spec -> spec.after(after -> {
ModernizePluginTest.Versions versionsAfter = ModernizePluginTest.Versions.parse(after);
assertThat(versionsAfter.bomArtifactId()).isGreaterThan(bomArtifactId);
assertThat(versionsAfter.bomVersion()).isGreaterThan(bomVersion);
return after;
})
));
}

Expand Down Expand Up @@ -487,7 +345,7 @@ void shouldLeaveOtherBomsAlone() {
</dependency>
</dependencies>
</project>
""".stripIndent()
"""
));
}

Expand Down Expand Up @@ -550,7 +408,7 @@ void shouldHandleCommentsInManagedDependency() {
</pluginRepository>
</pluginRepositories>
</project>
""".stripIndent(),
""",
"""
<project>
<parent>
Expand Down Expand Up @@ -605,7 +463,7 @@ void shouldHandleCommentsInManagedDependency() {
</pluginRepository>
</pluginRepositories>
</project>
""".stripIndent()
"""

));
}
Expand Down
Loading

0 comments on commit 476b1e7

Please sign in to comment.