diff --git a/src/main/java/org/openrewrite/java/dependencies/DependencyInsight.java b/src/main/java/org/openrewrite/java/dependencies/DependencyInsight.java index 619c3f06..9ba35ae7 100644 --- a/src/main/java/org/openrewrite/java/dependencies/DependencyInsight.java +++ b/src/main/java/org/openrewrite/java/dependencies/DependencyInsight.java @@ -59,6 +59,19 @@ public class DependencyInsight extends Recipe { @Nullable String scope; + @Override + public String getInstanceNameSuffix() { + // Null when rendering the descriptor of an unconfigured recipe; a "null:null" suffix + // would then be shown wherever recipes are listed. + if (groupIdPattern == null || artifactIdPattern == null) { + return ""; + } + if (version == null) { + return String.format("`%s:%s`", groupIdPattern, artifactIdPattern); + } + return String.format("`%s:%s:%s`", groupIdPattern, artifactIdPattern, version); + } + @Override public TreeVisitor getVisitor() { return new TreeVisitor() { diff --git a/src/test/java/org/openrewrite/java/dependencies/DependencyInsightTest.java b/src/test/java/org/openrewrite/java/dependencies/DependencyInsightTest.java index 38a9a5fc..93510733 100644 --- a/src/test/java/org/openrewrite/java/dependencies/DependencyInsightTest.java +++ b/src/test/java/org/openrewrite/java/dependencies/DependencyInsightTest.java @@ -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 DependencyInsightTest implements RewriteTest { @@ -29,6 +30,26 @@ public void defaults(RecipeSpec spec) { spec.recipe(new DependencyInsight("org.springframework*", "*", null, null)); } + @Test + void instanceNameShowsWhatIsBeingSearchedFor() { + assertThat(new DependencyInsight("com.fasterxml.jackson*", "jackson-*", null, null).getInstanceName()) + .isEqualTo("Dependency insight for Gradle and Maven `com.fasterxml.jackson*:jackson-*`"); + } + + @Test + void instanceNameIncludesVersionWhenGiven() { + assertThat(new DependencyInsight("com.fasterxml.jackson*", "jackson-*", "2.x", null).getInstanceName()) + .isEqualTo("Dependency insight for Gradle and Maven `com.fasterxml.jackson*:jackson-*:2.x`"); + } + + @Test + void instanceNameOmitsTheSuffixWhenUnconfigured() { + // The descriptor of an unconfigured recipe is rendered wherever recipes are listed; + // it must not read "null:null". + assertThat(new DependencyInsight(null, null, null, null).getInstanceName()) + .isEqualTo("Dependency insight for Gradle and Maven"); + } + @DocumentExample @Test void maven() {