diff --git a/tests/migration-util/src/main/java/org/keycloak/test/migration/BeforeRewrite.java b/tests/migration-util/src/main/java/org/keycloak/test/migration/BeforeRewrite.java new file mode 100644 index 00000000000..d0e7a571b05 --- /dev/null +++ b/tests/migration-util/src/main/java/org/keycloak/test/migration/BeforeRewrite.java @@ -0,0 +1,25 @@ +package org.keycloak.test.migration; + +public class BeforeRewrite extends TestRewrite { + + @Override + public void rewrite() { + int beforeLine = findLine("import org\\.junit\\.Before;"); + if (beforeLine >= 0) { + String current = content.get(beforeLine); + String migrateTo = "import org.junit.jupiter.api.BeforeEach;"; + replaceLine(beforeLine, migrateTo); + info(beforeLine, "Import rewritten: '" + current + "' --> '" + migrateTo + "'"); + + for (int i = 0; i < content.size(); i++) { + String n = content.get(i); + if (n.trim().equals("@Before")) { + content.remove(i); + content.add(i, n.replace("@Before", "@BeforeEach")); + info(i, "@Before rewritten to @BeforeEach"); + } + } + } + } + +} diff --git a/tests/migration-util/src/main/java/org/keycloak/test/migration/MigrateTest.java b/tests/migration-util/src/main/java/org/keycloak/test/migration/MigrateTest.java index ff9d17e53e2..32533b410c6 100644 --- a/tests/migration-util/src/main/java/org/keycloak/test/migration/MigrateTest.java +++ b/tests/migration-util/src/main/java/org/keycloak/test/migration/MigrateTest.java @@ -12,13 +12,16 @@ import java.util.List; public class MigrateTest { + private static final String DIFF_COMMAND = System.getenv("DIFFTOOL"); + final List> MIGRATORS = List.of( AddKeycloakIntegrationTestRewrite.class, ChangePackageRewrite.class, RenameImportsRewrite.class, UpdateAssertsRewrite.class, AddManagedResourcesRewrite.class, - AdminEventAssertRewrite.class); + AdminEventAssertRewrite.class, + BeforeRewrite.class); Path rootPath = getRootPath(); Path oldTestsuitePath = rootPath.resolve("testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite").toAbsolutePath(); @@ -31,8 +34,14 @@ public class MigrateTest { } public void migrate(String test) throws Exception { - Path testPath = Path.of(test).normalize().toAbsolutePath(); + if (test.indexOf('.') != -1) { + test = rootPath.toString() + + "/testsuite/integration-arquillian/tests/base/src/test/java/" + + test.replace('.', '/') + + ".java"; + } + Path testPath = Path.of(test).normalize().toAbsolutePath(); if (!Files.isRegularFile(testPath)) { testPath = oldTestsuitePath.resolve(test); } @@ -51,6 +60,12 @@ public class MigrateTest { throw new RuntimeException("Can only migrate tests from " + oldTestsuitePath); } + if (!Files.isRegularFile(testPath)) { + throw new RuntimeException("Test file not found"); + } + + System.exit(1); + List content = readFileToList(testPath); for (Class clazz : MIGRATORS) { @@ -61,9 +76,11 @@ public class MigrateTest { writeFile(content, destinationPath); -// ProcessBuilder pb = new ProcessBuilder(); -// pb.command("meld", testPath.toString(), destinationPath.toString()); -// pb.start(); + if (DIFF_COMMAND != null && !DIFF_COMMAND.isEmpty()) { + ProcessBuilder pb = new ProcessBuilder(); + pb.command(DIFF_COMMAND, testPath.toString(), destinationPath.toString()); + pb.start(); + } } private Path getDestination(Path testPath) { diff --git a/tests/migration-util/src/main/java/org/keycloak/test/migration/RenameImportsRewrite.java b/tests/migration-util/src/main/java/org/keycloak/test/migration/RenameImportsRewrite.java index 57d3e7550f7..a4ec816119c 100644 --- a/tests/migration-util/src/main/java/org/keycloak/test/migration/RenameImportsRewrite.java +++ b/tests/migration-util/src/main/java/org/keycloak/test/migration/RenameImportsRewrite.java @@ -7,7 +7,8 @@ public class RenameImportsRewrite extends TestRewrite { Map IMPORTS = Map.of( "org.junit.Assert", "org.junit.jupiter.api.Assertions", "org.junit.Test", "org.junit.jupiter.api.Test", - "org.keycloak.testsuite.util.AdminEventPaths", "org.keycloak.tests.utils.admin.AdminEventPaths" + "org.keycloak.testsuite.util.AdminEventPaths", "org.keycloak.tests.utils.admin.AdminEventPaths", + "org.keycloak.testsuite.admin.ApiUtil", "org.keycloak.testframework.util.ApiUtil" ); @Override diff --git a/tests/pom.xml b/tests/pom.xml index 52f5d9d170f..4f9ce050052 100755 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -38,4 +38,13 @@ custom-providers + + + test-migration-util + + migration-util + + + +