diff --git a/test-framework/common/src/main/java/io/quarkus/test/common/TestResourceManager.java b/test-framework/common/src/main/java/io/quarkus/test/common/TestResourceManager.java index 9a40ff79e4ef1c..ccda00a27f2b90 100644 --- a/test-framework/common/src/main/java/io/quarkus/test/common/TestResourceManager.java +++ b/test-framework/common/src/main/java/io/quarkus/test/common/TestResourceManager.java @@ -108,7 +108,7 @@ public TestResourceManager(Class testClass, this.testResourceComparisonInfo = new HashSet<>(); for (TestResourceClassEntry uniqueEntry : uniqueEntries) { testResourceComparisonInfo.add(new TestResourceComparisonInfo( - uniqueEntry.testResourceLifecycleManagerClass().getName(), uniqueEntry.getScope())); + uniqueEntry.testResourceLifecycleManagerClass().getName(), uniqueEntry.getScope(), uniqueEntry.args)); } Set remainingUniqueEntries = initParallelTestResources(uniqueEntries); @@ -326,7 +326,8 @@ public static Set testResourceCo } Set result = new HashSet<>(uniqueEntries.size()); for (TestResourceClassEntry entry : uniqueEntries) { - result.add(new TestResourceComparisonInfo(entry.testResourceLifecycleManagerClass().getName(), entry.getScope())); + result.add(new TestResourceComparisonInfo(entry.testResourceLifecycleManagerClass().getName(), entry.getScope(), + entry.args)); } return result; } @@ -603,7 +604,8 @@ public TestResourceScope getScope() { } } - public record TestResourceComparisonInfo(String testResourceLifecycleManagerClass, TestResourceScope scope) { + public record TestResourceComparisonInfo(String testResourceLifecycleManagerClass, TestResourceScope scope, + Map initArgs) { } diff --git a/test-framework/common/src/test/java/io/quarkus/test/common/TestResourceManagerReloadTest.java b/test-framework/common/src/test/java/io/quarkus/test/common/TestResourceManagerReloadTest.java index a4748969f9120c..52046f4ba58bc0 100644 --- a/test-framework/common/src/test/java/io/quarkus/test/common/TestResourceManagerReloadTest.java +++ b/test-framework/common/src/test/java/io/quarkus/test/common/TestResourceManagerReloadTest.java @@ -6,6 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Collections; +import java.util.Map; import java.util.Set; import org.junit.jupiter.api.Test; @@ -22,66 +23,74 @@ public void emptyResources() { @Test public void differentCount() { assertTrue(testResourcesRequireReload(Collections.emptySet(), - Set.of(new TestResourceComparisonInfo("test", RESTRICTED_TO_CLASS)))); + Set.of(new TestResourceComparisonInfo("test", RESTRICTED_TO_CLASS, Collections.emptyMap())))); - assertTrue(testResourcesRequireReload(Set.of(new TestResourceComparisonInfo("test", RESTRICTED_TO_CLASS)), + assertTrue(testResourcesRequireReload(Set.of(new TestResourceComparisonInfo("test", RESTRICTED_TO_CLASS, + Collections.emptyMap())), Collections.emptySet())); } @Test public void sameSingleRestrictedToClassResource() { assertTrue(testResourcesRequireReload( - Set.of(new TestResourceComparisonInfo("test", RESTRICTED_TO_CLASS)), - Set.of(new TestResourceComparisonInfo("test", RESTRICTED_TO_CLASS)))); + Set.of(new TestResourceComparisonInfo("test", RESTRICTED_TO_CLASS, Collections.emptyMap())), + Set.of(new TestResourceComparisonInfo("test", RESTRICTED_TO_CLASS, Collections.emptyMap())))); } @Test public void sameSingleMatchingResource() { assertFalse(testResourcesRequireReload( - Set.of(new TestResourceComparisonInfo("test", MATCHING_RESOURCES)), - Set.of(new TestResourceComparisonInfo("test", MATCHING_RESOURCES)))); + Set.of(new TestResourceComparisonInfo("test", MATCHING_RESOURCES, Collections.emptyMap())), + Set.of(new TestResourceComparisonInfo("test", MATCHING_RESOURCES, Collections.emptyMap())))); + } + + @Test + public void sameSingleMatchingResourceDifferentInitArgs() { + assertFalse(testResourcesRequireReload( + Set.of(new TestResourceComparisonInfo("test", MATCHING_RESOURCES, Collections.emptyMap())), + Set.of(new TestResourceComparisonInfo("test", MATCHING_RESOURCES, Map.of("foo", "bar"))))); } @Test public void differentSingleMatchingResource() { assertTrue(testResourcesRequireReload( - Set.of(new TestResourceComparisonInfo("test", MATCHING_RESOURCES)), - Set.of(new TestResourceComparisonInfo("test2", MATCHING_RESOURCES)))); + Set.of(new TestResourceComparisonInfo("test", MATCHING_RESOURCES, Collections.emptyMap())), + Set.of(new TestResourceComparisonInfo("test2", MATCHING_RESOURCES, Collections.emptyMap())))); } @Test public void sameMultipleMatchingResource() { assertFalse(testResourcesRequireReload( Set.of( - new TestResourceComparisonInfo("test", MATCHING_RESOURCES), - new TestResourceComparisonInfo("test2", MATCHING_RESOURCES), - new TestResourceComparisonInfo("test3", GLOBAL)), - Set.of(new TestResourceComparisonInfo("test3", GLOBAL), - new TestResourceComparisonInfo("test2", MATCHING_RESOURCES), - new TestResourceComparisonInfo("test", MATCHING_RESOURCES)))); + new TestResourceComparisonInfo("test", MATCHING_RESOURCES, Collections.emptyMap()), + new TestResourceComparisonInfo("test2", MATCHING_RESOURCES, Collections.emptyMap()), + new TestResourceComparisonInfo("test3", GLOBAL, Collections.emptyMap())), + Set.of(new TestResourceComparisonInfo("test3", GLOBAL, Collections.emptyMap()), + new TestResourceComparisonInfo("test2", MATCHING_RESOURCES, Collections.emptyMap()), + new TestResourceComparisonInfo("test", MATCHING_RESOURCES, Collections.emptyMap())))); } @Test public void differentMultipleMatchingResource() { assertTrue(testResourcesRequireReload( Set.of( - new TestResourceComparisonInfo("test", MATCHING_RESOURCES), - new TestResourceComparisonInfo("test2", MATCHING_RESOURCES), - new TestResourceComparisonInfo("test3", GLOBAL)), - Set.of(new TestResourceComparisonInfo("test3", GLOBAL), - new TestResourceComparisonInfo("test2", MATCHING_RESOURCES), - new TestResourceComparisonInfo("TEST", MATCHING_RESOURCES)))); + new TestResourceComparisonInfo("test", MATCHING_RESOURCES, Collections.emptyMap()), + new TestResourceComparisonInfo("test2", MATCHING_RESOURCES, Collections.emptyMap()), + new TestResourceComparisonInfo("test3", GLOBAL, Collections.emptyMap())), + Set.of(new TestResourceComparisonInfo("test3", GLOBAL, Collections.emptyMap()), + new TestResourceComparisonInfo("test2", MATCHING_RESOURCES, Collections.emptyMap()), + new TestResourceComparisonInfo("TEST", MATCHING_RESOURCES, Collections.emptyMap())))); } @Test public void differentGlobalMultipleMatchingResource() { assertTrue(testResourcesRequireReload( Set.of( - new TestResourceComparisonInfo("test", MATCHING_RESOURCES), - new TestResourceComparisonInfo("test2", MATCHING_RESOURCES), - new TestResourceComparisonInfo("test4", GLOBAL)), - Set.of(new TestResourceComparisonInfo("test3", GLOBAL), - new TestResourceComparisonInfo("test2", MATCHING_RESOURCES), - new TestResourceComparisonInfo("TEST", MATCHING_RESOURCES)))); + new TestResourceComparisonInfo("test", MATCHING_RESOURCES, Collections.emptyMap()), + new TestResourceComparisonInfo("test2", MATCHING_RESOURCES, Collections.emptyMap()), + new TestResourceComparisonInfo("test4", GLOBAL, Collections.emptyMap())), + Set.of(new TestResourceComparisonInfo("test3", GLOBAL, Collections.emptyMap()), + new TestResourceComparisonInfo("test2", MATCHING_RESOURCES, Collections.emptyMap()), + new TestResourceComparisonInfo("TEST", MATCHING_RESOURCES, Collections.emptyMap())))); } } diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/TestResourceUtil.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/TestResourceUtil.java index 975699c137ab83..761650a02f9919 100644 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/TestResourceUtil.java +++ b/test-framework/junit5/src/main/java/io/quarkus/test/junit/TestResourceUtil.java @@ -192,8 +192,10 @@ static Set testResourceCompariso if (originalTestResourceScope != null) { testResourceScope = TestResourceScope.valueOf(originalTestResourceScope.toString()); } + Map initArgs = (Map) entry.getClass() + .getMethod("initArgs").invoke(entry); result.add(new TestResourceManager.TestResourceComparisonInfo(testResourceLifecycleManagerClass, - testResourceScope)); + testResourceScope, initArgs)); } return result;