diff --git a/src/test/java/org/openrewrite/java/apache/httpclient5/NamespaceChangesTest.java b/src/test/java/org/openrewrite/java/apache/httpclient5/NamespaceChangesTest.java index 8a51eee6..822b1759 100644 --- a/src/test/java/org/openrewrite/java/apache/httpclient5/NamespaceChangesTest.java +++ b/src/test/java/org/openrewrite/java/apache/httpclient5/NamespaceChangesTest.java @@ -21,52 +21,96 @@ import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import static org.assertj.core.api.Assertions.assertThat; import static org.openrewrite.java.Assertions.java; +import static org.openrewrite.maven.Assertions.pomXml; -public class NamespaceChangesTest implements RewriteTest { +class NamespaceChangesTest implements RewriteTest { @Override public void defaults(RecipeSpec spec) { spec - .parser(JavaParser.fromJavaVersion() - .classpath("httpclient", "httpcore", "httpclient5", "httpcore5") - ) + .parser(JavaParser.fromJavaVersion().classpath( + "httpclient", "httpcore", + "httpclient5", "httpcore5")) .recipe(Environment.builder() - .scanRuntimeClasspath("org.openrewrite", "org.openrewrite.java", "org.openrewrite.java.dependencies") + .scanRuntimeClasspath("org.openrewrite") .build() - .activateRecipes("org.openrewrite.java.apache.httpclient5.UpgradeApacheHttpClient_5_ClassMapping") + .activateRecipes("org.openrewrite.java.apache.httpclient5.UpgradeApacheHttpClient_5") ); } @Test - void testSomeImports() { + void migrateDependencies() { + rewriteRun( + //language=xml + pomXml(""" + + 4.0.0 + org.example + example + 1.0.0 + + + org.apache.httpcomponents + httpclient + 4.5.14 + + + + """, spec -> spec.after(pom -> { + Matcher version = Pattern.compile("5\\.1\\.\\d+").matcher(pom); + assertThat(version.find()).describedAs("Expected 5.1.x in %s", pom).isTrue(); + return """ + + 4.0.0 + org.example + example + 1.0.0 + + + org.apache.httpcomponents.client5 + httpclient5 + %s + + + + """.formatted(version.group(0)); + }))); + } + + @Test + void importReplacementsInGroupsWithSomeSpecificMappings() { rewriteRun( - //language=java - java(""" - import org.apache.http.HttpEntity; - import org.apache.http.client.methods.HttpGet; - import org.apache.http.client.methods.HttpUriRequest; - import org.apache.http.util.EntityUtils; - - class A { - void method(HttpEntity entity, String urlStr) { - HttpUriRequest getRequest = new HttpGet(urlStr); - EntityUtils.consume(entity); - } + //language=java + java(""" + import org.apache.http.HttpEntity; + import org.apache.http.client.methods.HttpGet; + import org.apache.http.client.methods.HttpUriRequest; + import org.apache.http.util.EntityUtils; + + class A { + void method(HttpEntity entity, String urlStr) throws Exception { + HttpUriRequest getRequest = new HttpGet(urlStr); + EntityUtils.consume(entity); } - """,""" - import org.apache.hc.core5.http.io.entity.EntityUtils; - import org.apache.hc.core5.http.HttpEntity; - import org.apache.hc.client5.http.classic.methods.HttpGet; - import org.apache.hc.client5.http.classic.methods.HttpUriRequest; - - class A { - void method(HttpEntity entity, String urlStr) { - HttpUriRequest getRequest = new HttpGet(urlStr); - EntityUtils.consume(entity); - } + } + """, """ + import org.apache.hc.core5.http.io.entity.EntityUtils; + import org.apache.hc.core5.http.HttpEntity; + import org.apache.hc.client5.http.classic.methods.HttpGet; + import org.apache.hc.client5.http.classic.methods.HttpUriRequest; + + class A { + void method(HttpEntity entity, String urlStr) throws Exception { + HttpUriRequest getRequest = new HttpGet(urlStr); + EntityUtils.consume(entity); } - """) + } + """) ); } }