From 3286305e71bc445f0636d4b189987811bf8bbfaa Mon Sep 17 00:00:00 2001 From: soloturn Date: Thu, 27 Aug 2026 19:43:22 +0200 Subject: [PATCH 1/2] build: migrate tests from JUnit 4 to JUnit 6 --- .../kotlin/gestalt-library-common.gradle.kts | 2 +- gestalt-asset-core/build.gradle.kts | 4 +- gestalt-asset-core/gradle.lockfile | 11 ++++- .../assets/AbstractFragmentProducerTest.java | 6 +-- .../gestalt/assets/AssetManagerTest.java | 8 +-- .../gestalt/assets/AssetTypeTest.java | 12 ++--- .../gestalt/assets/ResourceUrnTest.java | 17 ++++--- .../module/AssetFileDataProducerTest.java | 8 +-- .../ModuleAwareAssetTypeManagerTest.java | 8 +-- ...oduleDependencyResolutionStrategyTest.java | 4 +- .../ModuleEnvironmentWatcherTest.java | 38 +++++++++++--- gestalt-di/build.gradle.kts | 4 +- gestalt-di/gradle.lockfile | 11 ++++- .../gestalt/di/AbstractBeanTest.java | 10 ++-- .../terasology/gestalt/di/AnnotationTest.java | 30 ++++++------ .../gestalt/di/AutoClosableTest.java | 6 +-- .../gestalt/di/BeanContextResolutionTest.java | 8 +-- .../gestalt/di/BeanEnvironmentTest.java | 12 ++--- .../gestalt/di/CollectionResolveTest.java | 20 ++++---- .../gestalt/di/InheritanceBeanTest.java | 8 +-- .../gestalt/di/ProviderInjectTest.java | 6 +-- .../gestalt/di/SupplierInjectionTest.java | 6 +-- .../gestalt/di/TestRegistryTests.java | 16 +++--- .../di/injection/DependencyInjectionTest.java | 10 ++-- .../injection/DependencyResolutionTest.java | 29 +++++------ .../di/injection/OptionalDependencyTest.java | 6 +-- .../scanner/standard/StandardScannerTest.java | 10 ++-- gestalt-entity-system/build.gradle.kts | 4 +- gestalt-entity-system/gradle.lockfile | 11 ++++- .../management/ComponentManagerTest.java | 16 +++--- .../management/ComponentTypeFactoryTest.java | 4 +- .../management/ComponentTypeIndexTest.java | 4 +- .../entitysystem/entity/FullSetupExample.java | 16 +++--- .../event/EventProcessorTest.java | 7 +-- .../event/EventReceiverMethodSupportTest.java | 4 +- .../entitysystem/event/EventSystemTest.java | 2 +- .../prefab/PrefabInstantiationTest.java | 8 +-- .../prefab/PrefabJsonFormatTest.java | 6 +-- gestalt-es-perf/build.gradle.kts | 4 +- gestalt-es-perf/gradle.lockfile | 11 ++++- .../management/perf/ComponentManagerTest.java | 16 +++--- ...bstractEventReceiverMethodSupportTest.java | 7 +-- gestalt-inject-java/build.gradle.kts | 4 +- gestalt-inject-java/gradle.lockfile | 11 ++++- gestalt-module/build.gradle.kts | 4 +- gestalt-module/gradle.lockfile | 11 ++++- .../terasology/gestalt/i18n/I18nMapTest.java | 12 ++--- .../gestalt/module/EmbeddedLibraryTest.java | 8 +-- ...IncludeOptionalDependencyResolverTest.java | 8 +-- .../module/ModuleMetadataJsonAdapterTest.java | 6 +-- .../module/NormalDependencyResolverTest.java | 8 +-- .../gestalt/module/PermissiveSandboxTest.java | 6 +-- .../gestalt/module/SandboxTest.java | 49 +++++++++++-------- .../module/TableModuleRegistryTest.java | 8 +-- ...onalIfAvailableDependencyResolverTest.java | 6 +-- .../module/di/BeanContextInModuleTest.java | 12 ++--- .../module/resources/BaseFileSourceTest.java | 8 +-- .../resources/ClasspathFileSourceTest.java | 4 +- .../module/sandbox/APIScannerTest.java | 6 +-- .../terasology/gestalt/naming/NameTest.java | 6 +-- .../gestalt/naming/NameVersionTest.java | 6 +-- .../gestalt/naming/VersionRangeTest.java | 11 +++-- .../gestalt/naming/VersionTest.java | 35 ++++++------- gestalt-util/build.gradle.kts | 5 +- gestalt-util/gradle.lockfile | 12 ++++- .../util/collection/KahnSorterTest.java | 9 ++-- .../util/io/FileExtensionPathMatcherTest.java | 43 +++++++--------- .../util/reflection/ClassFactoryTest.java | 8 +-- .../util/reflection/GenericsUtilTest.java | 17 ++++--- settings.gradle.kts | 6 ++- 70 files changed, 426 insertions(+), 333 deletions(-) diff --git a/build-logic/src/main/kotlin/gestalt-library-common.gradle.kts b/build-logic/src/main/kotlin/gestalt-library-common.gradle.kts index f9516830..b8fe10e0 100644 --- a/build-logic/src/main/kotlin/gestalt-library-common.gradle.kts +++ b/build-logic/src/main/kotlin/gestalt-library-common.gradle.kts @@ -27,7 +27,7 @@ extensions.configure { - useJUnit() + useJUnitPlatform() // ignoreFailures: Specifies whether the build should break when the verifications performed by this task fail. ignoreFailures = true diff --git a/gestalt-asset-core/build.gradle.kts b/gestalt-asset-core/build.gradle.kts index 54596899..9b395f06 100644 --- a/gestalt-asset-core/build.gradle.kts +++ b/gestalt-asset-core/build.gradle.kts @@ -17,7 +17,9 @@ dependencies { api(libs.jcip) testAnnotationProcessor(project(":gestalt-inject-java")) - testImplementation(libs.junit) + testImplementation(libs.junit.jupiter.api) + testRuntimeOnly(libs.junit.jupiter.engine) + testRuntimeOnly(libs.junit.platform.launcher) testImplementation(libs.logback) testImplementation(libs.mockito) } diff --git a/gestalt-asset-core/gradle.lockfile b/gestalt-asset-core/gradle.lockfile index ecbd88e1..62aa6ea6 100644 --- a/gestalt-asset-core/gradle.lockfile +++ b/gestalt-asset-core/gradle.lockfile @@ -17,18 +17,25 @@ com.googlecode.gentyref:gentyref:1.2.0=annotationProcessor,runtimeClasspath,test com.squareup:javapoet:1.13.0=annotationProcessor,testAnnotationProcessor com.toasttab.android:gummy-bears-api-24:0.15.0=signature javax.inject:javax.inject:1=annotationProcessor,compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -junit:junit:4.12=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy-agent:1.17.7=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testRuntimeClasspath net.jcip:jcip-annotations:1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.checkerframework:checker-compat-qual:2.5.2=annotationProcessor,compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor,compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.24=animalsniffer org.codehaus.mojo:animal-sniffer:1.24=animalsniffer -org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath org.javassist:javassist:3.27.0-GA=runtimeClasspath,testRuntimeClasspath +org.jspecify:jspecify:1.0.0=testCompileClasspath +org.junit.jupiter:junit-jupiter-api:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter-engine:6.1.3=testRuntimeClasspath +org.junit.platform:junit-platform-commons:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-engine:6.1.3=testRuntimeClasspath +org.junit.platform:junit-platform-launcher:6.1.3=testRuntimeClasspath +org.junit:junit-bom:6.1.3=testCompileClasspath,testRuntimeClasspath org.mockito:mockito-core:5.23.0=testCompileClasspath,testRuntimeClasspath org.objenesis:objenesis:3.3=testRuntimeClasspath +org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath org.ow2.asm:asm:9.7=animalsniffer org.slf4j:slf4j-api:1.7.25=annotationProcessor,compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath empty= diff --git a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/AbstractFragmentProducerTest.java b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/AbstractFragmentProducerTest.java index 91f708e9..baab4796 100644 --- a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/AbstractFragmentProducerTest.java +++ b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/AbstractFragmentProducerTest.java @@ -19,7 +19,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.assets.management.AssetManager; import org.terasology.gestalt.assets.management.AssetTypeManager; @@ -33,8 +33,8 @@ import virtualModules.test.stubs.text.TextData; import virtualModules.test.stubs.text.TextFactory; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; diff --git a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/AssetManagerTest.java b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/AssetManagerTest.java index 19b8771b..6f933c52 100644 --- a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/AssetManagerTest.java +++ b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/AssetManagerTest.java @@ -18,7 +18,7 @@ import com.google.common.collect.ImmutableSet; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.assets.management.AssetManager; import org.terasology.gestalt.assets.management.Context; import org.terasology.gestalt.assets.management.ContextManager; @@ -37,9 +37,9 @@ import virtualModules.test.stubs.text.TextData; import virtualModules.test.stubs.text.TextFactory; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; diff --git a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/AssetTypeTest.java b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/AssetTypeTest.java index 1bf75881..8d0acfb6 100644 --- a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/AssetTypeTest.java +++ b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/AssetTypeTest.java @@ -18,7 +18,7 @@ import com.google.common.collect.ImmutableSet; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.naming.Name; import java.io.IOException; @@ -29,11 +29,11 @@ import virtualModules.test.stubs.text.TextData; import virtualModules.test.stubs.text.TextFactory; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotSame; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; diff --git a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/ResourceUrnTest.java b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/ResourceUrnTest.java index 3b63396e..d0d84bb1 100644 --- a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/ResourceUrnTest.java +++ b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/ResourceUrnTest.java @@ -16,14 +16,15 @@ package org.terasology.gestalt.assets; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.assets.exceptions.InvalidUrnException; import org.terasology.gestalt.naming.Name; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Immortius @@ -42,7 +43,7 @@ public class ResourceUrnTest { @Test public void moduleAndResourceConstructor() { ResourceUrn urn = new ResourceUrn(TEST_MODULE, TEST_RESOURCE); - Assert.assertEquals(new Name(TEST_MODULE), urn.getModuleName()); + Assertions.assertEquals(new Name(TEST_MODULE), urn.getModuleName()); assertEquals(new Name(TEST_RESOURCE), urn.getResourceName()); assertTrue(urn.getFragmentName().isEmpty()); assertEquals(URN_STRING, urn.toString()); @@ -105,9 +106,9 @@ public void fragmentInstanceConstructor() { assertEquals(URN_FRAGMENT_INSTANCE_STRING, urn.toString()); } - @Test(expected = InvalidUrnException.class) + @Test public void invalidUrnStringConstructor() { - new ResourceUrn("blerg"); + assertThrows(InvalidUrnException.class, () -> new ResourceUrn("blerg")); } @Test diff --git a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/AssetFileDataProducerTest.java b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/AssetFileDataProducerTest.java index 2f3f07ed..b78c0732 100644 --- a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/AssetFileDataProducerTest.java +++ b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/AssetFileDataProducerTest.java @@ -16,7 +16,7 @@ package org.terasology.gestalt.assets.module; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.assets.ResourceUrn; import org.terasology.gestalt.assets.format.producer.AssetFileDataProducer; import org.terasology.gestalt.module.ModuleEnvironment; @@ -30,9 +30,9 @@ import virtualModules.test.stubs.text.TextFileFormat; import virtualModules.test.stubs.text.TextMetadataFileFormat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Immortius diff --git a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/ModuleAwareAssetTypeManagerTest.java b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/ModuleAwareAssetTypeManagerTest.java index b75ed1c9..81622002 100644 --- a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/ModuleAwareAssetTypeManagerTest.java +++ b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/ModuleAwareAssetTypeManagerTest.java @@ -16,7 +16,7 @@ package org.terasology.gestalt.assets.module; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.assets.AssetData; import org.terasology.gestalt.assets.AssetDataProducer; import org.terasology.gestalt.assets.AssetFactory; @@ -41,9 +41,9 @@ import virtualModules.test.stubs.text.TextData; import virtualModules.test.stubs.text.TextFactory; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; diff --git a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/ModuleDependencyResolutionStrategyTest.java b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/ModuleDependencyResolutionStrategyTest.java index bb2331e4..95976f81 100644 --- a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/ModuleDependencyResolutionStrategyTest.java +++ b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/ModuleDependencyResolutionStrategyTest.java @@ -18,13 +18,13 @@ import com.google.common.collect.ImmutableSet; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.module.ModuleEnvironment; import org.terasology.gestalt.naming.Name; import java.util.Collections; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author Immortius diff --git a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/autoreload/ModuleEnvironmentWatcherTest.java b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/autoreload/ModuleEnvironmentWatcherTest.java index 4708cb90..4d8d4709 100644 --- a/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/autoreload/ModuleEnvironmentWatcherTest.java +++ b/gestalt-asset-core/src/test/java/org/terasology/gestalt/assets/module/autoreload/ModuleEnvironmentWatcherTest.java @@ -17,7 +17,7 @@ package org.terasology.gestalt.assets.module.autoreload; import com.google.common.collect.SetMultimap; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.terasology.gestalt.assets.AssetType; @@ -41,10 +41,12 @@ import java.io.Writer; import java.nio.file.Files; import java.nio.file.Path; +import java.time.Duration; +import java.time.Instant; import java.util.Collections; import java.util.Optional; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; public class ModuleEnvironmentWatcherTest { @@ -95,21 +97,45 @@ public Optional deltaFileDeleted(FileReference file, Name module, N } }; AssetType assetType = new AssetType<>(Text.class, new TextFactory()); + ResourceUrn urn = new ResourceUrn(module.getId(), new Name("test.txt")); watcher.register("text", subscriber, assetType); watcher.checkForChanges(); Files.createDirectories(tempDirectory.resolve("assets").resolve("text")); watcher.checkForChanges(); Files.createFile(tempDirectory.resolve("assets").resolve("text").resolve("test.txt")); - SetMultimap, ResourceUrn> changed = watcher.checkForChanges(); - assertTrue(changed.containsEntry(assetType, new ResourceUrn(module.getId(), new Name("test.txt")))); + awaitChange(watcher, assetType, urn); try (Writer writer = Files.newBufferedWriter(tempDirectory.resolve("assets").resolve("text").resolve("test.txt"))) { writer.write("This is my text"); } - changed = watcher.checkForChanges(); - assertTrue(changed.containsEntry(assetType, new ResourceUrn(module.getId(), new Name("test.txt")))); + awaitChange(watcher, assetType, urn); FilesUtil.recursiveDelete(tempDirectory); watcher.checkForChanges(); } + /** + * checkForChanges() does a single non-blocking WatchService poll - the OS delivers file + * events asynchronously (inotify/FSEvents/etc.), so a change made just before calling it can + * still be in flight and not show up in that one poll, especially under CI's slower/virtualized + * filesystems. Retries for up to 5s instead of asserting on a single poll's result, so the test + * doesn't flake on delivery timing while still failing for real if the change never arrives. + */ + private static void awaitChange(ModuleEnvironmentWatcher watcher, AssetType assetType, ResourceUrn urn) throws IOException { + Instant deadline = Instant.now().plus(Duration.ofSeconds(5)); + SetMultimap, ResourceUrn> changed; + do { + changed = watcher.checkForChanges(); + if (changed.containsEntry(assetType, urn)) { + return; + } + try { + Thread.sleep(20); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new IOException("Interrupted while waiting for a file change to be detected", e); + } + } while (Instant.now().isBefore(deadline)); + fail("Expected " + urn + " to show up as changed within 5s, last poll's result: " + changed); + } + } diff --git a/gestalt-di/build.gradle.kts b/gestalt-di/build.gradle.kts index a1e1adcf..77fd8dc7 100644 --- a/gestalt-di/build.gradle.kts +++ b/gestalt-di/build.gradle.kts @@ -29,7 +29,9 @@ dependencies { implementation(libs.guava) api(project(":gestalt-inject")) - testImplementation(libs.junit) + testImplementation(libs.junit.jupiter.api) + testRuntimeOnly(libs.junit.jupiter.engine) + testRuntimeOnly(libs.junit.platform.launcher) testImplementation(libs.logback) testImplementation(libs.mockito) diff --git a/gestalt-di/gradle.lockfile b/gestalt-di/gradle.lockfile index 2b36c0a3..2a083794 100644 --- a/gestalt-di/gradle.lockfile +++ b/gestalt-di/gradle.lockfile @@ -17,19 +17,26 @@ com.googlecode.gentyref:gentyref:1.2.0=testAnnotationProcessor,testRuntimeClassp com.squareup:javapoet:1.13.0=testAnnotationProcessor com.toasttab.android:gummy-bears-api-24:0.15.0=signature javax.inject:javax.inject:1=compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -junit:junit:4.12=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy-agent:1.17.7=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testRuntimeClasspath net.jcip:jcip-annotations:1.0=testRuntimeClasspath net.sf.trove4j:trove4j:3.0.3=testRuntimeClasspath +org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.checkerframework:checker-compat-qual:2.5.2=compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.17=compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.24=animalsniffer org.codehaus.mojo:animal-sniffer:1.24=animalsniffer -org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath org.javassist:javassist:3.27.0-GA=testRuntimeClasspath +org.jspecify:jspecify:1.0.0=testCompileClasspath +org.junit.jupiter:junit-jupiter-api:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter-engine:6.1.3=testRuntimeClasspath +org.junit.platform:junit-platform-commons:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-engine:6.1.3=testRuntimeClasspath +org.junit.platform:junit-platform-launcher:6.1.3=testRuntimeClasspath +org.junit:junit-bom:6.1.3=testCompileClasspath,testRuntimeClasspath org.mockito:mockito-core:5.23.0=testCompileClasspath,testRuntimeClasspath org.objenesis:objenesis:3.3=testRuntimeClasspath +org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath org.ow2.asm:asm:9.7=animalsniffer org.slf4j:slf4j-api:1.7.25=compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath empty=annotationProcessor diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/AbstractBeanTest.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/AbstractBeanTest.java index 91ccb7a8..e1d66db7 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/AbstractBeanTest.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/AbstractBeanTest.java @@ -1,7 +1,7 @@ package org.terasology.gestalt.di; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import org.terasology.context.Lifetime; import org.terasology.context.annotation.Service; @@ -18,8 +18,8 @@ public void injectAbstractBean() { BeanContext cntx = new DefaultBeanContext(registry); ConcreteImplementationFromAbs c1 = cntx.getBean(ConcreteImplementationFromAbs.class); - Assert.assertNotNull(c1.impl); - Assert.assertNotNull(c1.Impl2); + Assertions.assertNotNull(c1.impl); + Assertions.assertNotNull(c1.Impl2); } @@ -33,7 +33,7 @@ public void injectAbstractBeanGetAbstract() { BeanContext cntx = new DefaultBeanContext(registry); MyAbstractImplementation c1 = cntx.getBean(MyAbstractImplementation.class); - Assert.assertNotNull(c1.impl); + Assertions.assertNotNull(c1.impl); } diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/AnnotationTest.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/AnnotationTest.java index 2d0ba5c3..dc7dee1d 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/AnnotationTest.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/AnnotationTest.java @@ -1,8 +1,8 @@ package org.terasology.gestalt.di; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.terasology.context.AnnotationMetadata; import org.terasology.context.AnnotationValue; import org.terasology.context.BeanDefinition; @@ -32,7 +32,7 @@ public static class AnnotationWithMultipleStereotype { public static class AnnotationWithNestedStereotype { } - @Before + @BeforeEach public void setup() { environment = new BeanEnvironment(); } @@ -43,10 +43,10 @@ public void testWithMultipleQualifiers() { AnnotationMetadata metadata = def.getAnnotationMetadata(); List> annotations = metadata.getAnnotationsByStereotype(Qualifier.class); - Assert.assertEquals(annotations.size(), 2); + Assertions.assertEquals(annotations.size(), 2); - Assert.assertEquals(annotations.get(0).getAnnotationType(), TestQualifier1.class); - Assert.assertEquals(annotations.get(1).getAnnotationType(), TestQualifier2.class); + Assertions.assertEquals(annotations.get(0).getAnnotationType(), TestQualifier1.class); + Assertions.assertEquals(annotations.get(1).getAnnotationType(), TestQualifier2.class); } @Test @@ -55,9 +55,9 @@ public void testWithNestedQualifiers() { AnnotationMetadata metadata = def.getAnnotationMetadata(); List> annotations = metadata.getAnnotationsByStereotype(Qualifier.class); - Assert.assertEquals(annotations.size(), 1); + Assertions.assertEquals(annotations.size(), 1); - Assert.assertEquals(annotations.get(0).getAnnotationType(), TestQualifier1.class); + Assertions.assertEquals(annotations.get(0).getAnnotationType(), TestQualifier1.class); } @Test @@ -66,19 +66,19 @@ public void testQualifier1Property() { AnnotationMetadata metadata = def.getAnnotationMetadata(); List> annotations = metadata.findAnnotations(TestQualifier2.class); - Assert.assertEquals(annotations.size(), 1); + Assertions.assertEquals(annotations.size(), 1); AnnotationValue[] withProperties = annotations.get(0).getAnnotation(WithProperties.class); - Assert.assertEquals(withProperties.length, 1); + Assertions.assertEquals(withProperties.length, 1); AnnotationValue value = withProperties[0]; Optional p1 = value.stringValue("p1"); - Assert.assertTrue(p1.isPresent()); - Assert.assertEquals(p1.get(), "Hello"); + Assertions.assertTrue(p1.isPresent()); + Assertions.assertEquals(p1.get(), "Hello"); OptionalDouble p2 = value.doubleValue("p4"); - Assert.assertTrue(p2.isPresent()); - Assert.assertEquals(p2.getAsDouble(), 5.0,0.001); + Assertions.assertTrue(p2.isPresent()); + Assertions.assertEquals(p2.getAsDouble(), 5.0,0.001); } } diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/AutoClosableTest.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/AutoClosableTest.java index a30de2bc..0321d962 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/AutoClosableTest.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/AutoClosableTest.java @@ -1,11 +1,11 @@ package org.terasology.gestalt.di; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.context.Lifetime; import org.terasology.context.annotation.Service; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; public class AutoClosableTest { diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/BeanContextResolutionTest.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/BeanContextResolutionTest.java index c9f36b65..90dd7df9 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/BeanContextResolutionTest.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/BeanContextResolutionTest.java @@ -2,15 +2,15 @@ // SPDX-License-Identifier: Apache-2.0 package org.terasology.gestalt.di; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.context.Lifetime; import org.terasology.gestalt.di.beans.ContextDep; import java.util.Optional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; public class BeanContextResolutionTest { @Test diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/BeanEnvironmentTest.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/BeanEnvironmentTest.java index 7298213e..381f1658 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/BeanEnvironmentTest.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/BeanEnvironmentTest.java @@ -2,9 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 package org.terasology.gestalt.di; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.module.TestImplementation1; import org.terasology.context.BeanDefinition; import org.terasology.gestalt.module.Module; @@ -27,7 +27,7 @@ public class BeanEnvironmentTest { private BeanEnvironment environment ; private TableModuleRegistry registry; - @Before + @BeforeEach public void setup() { environment = new BeanEnvironment(); registry = new TableModuleRegistry(); @@ -52,7 +52,7 @@ public void lookupByInterface() { for(BeanDefinition it: environment.byInterface(TestImplementation1.class)){ results.add(it.targetClass().getName()); } - Assert.assertArrayEquals(Arrays.asList( + Assertions.assertArrayEquals(Arrays.asList( "org.module.b.DepByInterface" ).toArray(),results.toArray()); } @@ -64,7 +64,7 @@ public void testAllDefinitionsByPrefix() { results.add(it.targetClass().getName()); } results.sort(Comparator.naturalOrder()); - Assert.assertArrayEquals(Arrays.asList( + Assertions.assertArrayEquals(Arrays.asList( "org.module.a.DepA", "org.module.a.DepB", "org.module.a.DepC" diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/CollectionResolveTest.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/CollectionResolveTest.java index 1e6db424..b85c959c 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/CollectionResolveTest.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/CollectionResolveTest.java @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 package org.terasology.gestalt.di; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import org.terasology.context.Lifetime; import org.terasology.context.annotation.Service; @@ -24,8 +24,8 @@ public void getMultipleBeans() { BeanContext cntx = new DefaultBeanContext(registry); List result = cntx.getBeans(SomeThing.class); - Assert.assertFalse(result.isEmpty()); - Assert.assertArrayEquals( + Assertions.assertFalse(result.isEmpty()); + Assertions.assertArrayEquals( new Object[]{Impl1.class, Impl2.class}, result.stream() .map(Object::getClass) @@ -43,8 +43,8 @@ public void checkListInject() { BeanContext cntx = new DefaultBeanContext(registry); ListUsageBean result = cntx.getBean(ListUsageBean.class); - Assert.assertFalse(result.list.isEmpty()); - Assert.assertArrayEquals( + Assertions.assertFalse(result.list.isEmpty()); + Assertions.assertArrayEquals( new Object[]{Impl1.class, Impl2.class}, result.list.stream() .map(Object::getClass) @@ -62,8 +62,8 @@ public void checkSetInject() { BeanContext cntx = new DefaultBeanContext(registry); SetUsageBean result = cntx.getBean(SetUsageBean.class); - Assert.assertFalse(result.set.isEmpty()); - Assert.assertArrayEquals( + Assertions.assertFalse(result.set.isEmpty()); + Assertions.assertArrayEquals( new Object[]{Impl1.class, Impl2.class}, result.set.stream() .map(Object::getClass) @@ -81,8 +81,8 @@ public void checkCollectionInject() { BeanContext cntx = new DefaultBeanContext(registry); CollectionUsageBean result = cntx.getBean(CollectionUsageBean.class); - Assert.assertFalse(result.collection.isEmpty()); - Assert.assertArrayEquals( + Assertions.assertFalse(result.collection.isEmpty()); + Assertions.assertArrayEquals( new Object[]{Impl1.class, Impl2.class}, result.collection.stream() .map(Object::getClass) diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/InheritanceBeanTest.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/InheritanceBeanTest.java index 8f9d46df..27336977 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/InheritanceBeanTest.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/InheritanceBeanTest.java @@ -1,7 +1,7 @@ package org.terasology.gestalt.di; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import org.terasology.context.Lifetime; import org.terasology.context.annotation.Service; @@ -19,8 +19,8 @@ public void TestInjectWithInheritance() { BeanContext cntx = new DefaultBeanContext(registry); InheritanceBeanB2 b2 = cntx.getBean(InheritanceBeanB2.class); - Assert.assertNotNull(b2.a1); - Assert.assertNotNull(b2.a2); + Assertions.assertNotNull(b2.a1); + Assertions.assertNotNull(b2.a2); } diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/ProviderInjectTest.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/ProviderInjectTest.java index 218a9533..26222149 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/ProviderInjectTest.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/ProviderInjectTest.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 package org.terasology.gestalt.di; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.context.Lifetime; import org.terasology.context.annotation.Service; import org.terasology.gestalt.di.beans.Dep1; @@ -11,8 +11,8 @@ import javax.inject.Provider; import java.util.Optional; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; public class ProviderInjectTest { diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/SupplierInjectionTest.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/SupplierInjectionTest.java index b51c18e1..499b577d 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/SupplierInjectionTest.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/SupplierInjectionTest.java @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 package org.terasology.gestalt.di; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.context.Lifetime; import org.terasology.context.annotation.Service; import org.terasology.gestalt.di.beans.Dep1; @@ -10,8 +10,8 @@ import javax.inject.Inject; import java.util.Optional; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; public class SupplierInjectionTest { diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/TestRegistryTests.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/TestRegistryTests.java index 447cf77c..ebf515f5 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/TestRegistryTests.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/TestRegistryTests.java @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 package org.terasology.gestalt.di; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.di.beans.Dep2; import org.terasology.gestalt.di.beans.ParentDep; import org.terasology.gestalt.di.beans.TestRegistry; @@ -17,22 +17,22 @@ public class TestRegistryTests { @Test public void checkDirectResolving() { Optional dep = beanContext.findBean(Dep2.class); - Assert.assertTrue(dep.isPresent()); - Assert.assertTrue(dep.get() instanceof Dep2); + Assertions.assertTrue(dep.isPresent()); + Assertions.assertTrue(dep.get() instanceof Dep2); } @Test public void checkChildBeanContextResolving() { BeanContext childBeanContext = new DefaultBeanContext(beanContext); Optional dep = childBeanContext.findBean(Dep2.class); - Assert.assertTrue(dep.isPresent()); - Assert.assertTrue(dep.get() instanceof Dep2); + Assertions.assertTrue(dep.isPresent()); + Assertions.assertTrue(dep.get() instanceof Dep2); } @Test public void checkDependencyBean() { Optional dep = beanContext.findBean(ParentDep.class); - Assert.assertTrue(dep.isPresent()); - Assert.assertNotNull(dep.get().getDep()); + Assertions.assertTrue(dep.isPresent()); + Assertions.assertNotNull(dep.get().getDep()); } } diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/injection/DependencyInjectionTest.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/injection/DependencyInjectionTest.java index 2795b885..f3e71434 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/injection/DependencyInjectionTest.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/injection/DependencyInjectionTest.java @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 package org.terasology.gestalt.di.injection; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import org.terasology.context.injection.Qualifiers; import org.terasology.gestalt.di.BeanContext; import org.terasology.gestalt.di.DefaultBeanContext; @@ -37,11 +37,11 @@ public void testBeanInjection() { ICounter c1 = beanContext.getBean(ICounter.class, Qualifiers.byName("Counter1")); ICounter c2 = beanContext.getBean(ICounter.class, Qualifiers.byName("Counter2")); - Assert.assertTrue(test.isPresent()); + Assertions.assertTrue(test.isPresent()); test.get().addToCounter1(); - Assert.assertEquals(0, c2.getCount()); - Assert.assertEquals(1, c1.getCount()); + Assertions.assertEquals(0, c2.getCount()); + Assertions.assertEquals(1, c1.getCount()); } } diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/injection/DependencyResolutionTest.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/injection/DependencyResolutionTest.java index 49d75e28..87255272 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/injection/DependencyResolutionTest.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/injection/DependencyResolutionTest.java @@ -2,10 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 package org.terasology.gestalt.di.injection; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import org.terasology.context.injection.Qualifiers; import org.terasology.gestalt.di.BeanContext; import org.terasology.gestalt.di.DefaultBeanContext; @@ -21,8 +19,6 @@ import java.util.Optional; public class DependencyResolutionTest { - @Rule - public final ExpectedException exception = ExpectedException.none(); @Test public void testBeanInjectionWithInterfaceFromConcreteType() { @@ -32,7 +28,7 @@ public void testBeanInjectionWithInterfaceFromConcreteType() { BeanContext beanContext = new DefaultBeanContext(registry); Optional counter = beanContext.findBean(ICounter.class); - Assert.assertTrue(counter.isPresent()); + Assertions.assertTrue(counter.isPresent()); } @Test @@ -44,8 +40,7 @@ public void testFailedBeanResolutionWithDuplicateImplementations() { .lifetime(Lifetime.Singleton); BeanContext beanContext = new DefaultBeanContext(registry); - exception.expect(BeanResolutionException.class); - beanContext.getBean(ICounter.class); + Assertions.assertThrows(BeanResolutionException.class, () -> beanContext.getBean(ICounter.class)); } @Test @@ -57,7 +52,7 @@ public void testBeanResolutionWithMultipleImplementationByConcrete() { .lifetime(Lifetime.Singleton); BeanContext beanContext = new DefaultBeanContext(registry); - Assert.assertTrue(beanContext.findBean(Counter2.class).isPresent()); + Assertions.assertTrue(beanContext.findBean(Counter2.class).isPresent()); } @Test @@ -69,11 +64,9 @@ public void testResolutionWithQualifier() { registry.with(Counter2.class); BeanContext beanContext = new DefaultBeanContext(registry); - Assert.assertTrue(beanContext.findBean(ICounter.class, Qualifiers.byStereotype(SampleQualifier.class)).isPresent()); - - exception.expect(BeanResolutionException.class); - beanContext.getBean(ICounter.class); + Assertions.assertTrue(beanContext.findBean(ICounter.class, Qualifiers.byStereotype(SampleQualifier.class)).isPresent()); + Assertions.assertThrows(BeanResolutionException.class, () -> beanContext.getBean(ICounter.class)); } @Test @@ -84,10 +77,10 @@ public void testResolution2WithQualifier() { .byQualifier(Qualifiers.byStereotype(SampleQualifier.class)); BeanContext beanContext = new DefaultBeanContext(registry); - Assert.assertTrue(beanContext.findBean(ICounter.class, Qualifiers.byStereotype(SampleQualifier.class)).isPresent()); - Assert.assertTrue(beanContext.findBean(Counter3.class, Qualifiers.byStereotype(SampleQualifier.class)).isPresent()); - Assert.assertTrue(beanContext.findBean(Counter3.class).isPresent()); - Assert.assertTrue(beanContext.findBean(ICounter.class).isPresent()); + Assertions.assertTrue(beanContext.findBean(ICounter.class, Qualifiers.byStereotype(SampleQualifier.class)).isPresent()); + Assertions.assertTrue(beanContext.findBean(Counter3.class, Qualifiers.byStereotype(SampleQualifier.class)).isPresent()); + Assertions.assertTrue(beanContext.findBean(Counter3.class).isPresent()); + Assertions.assertTrue(beanContext.findBean(ICounter.class).isPresent()); } } diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/injection/OptionalDependencyTest.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/injection/OptionalDependencyTest.java index 10943716..674df570 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/injection/OptionalDependencyTest.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/injection/OptionalDependencyTest.java @@ -1,6 +1,6 @@ package org.terasology.gestalt.di.injection; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.context.Lifetime; import org.terasology.context.annotation.Service; import org.terasology.gestalt.di.BeanContext; @@ -10,8 +10,8 @@ import javax.inject.Inject; import java.util.Optional; -import static junit.framework.TestCase.assertFalse; -import static junit.framework.TestCase.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; public class OptionalDependencyTest { @Service diff --git a/gestalt-di/src/test/java/org/terasology/gestalt/di/scanner/standard/StandardScannerTest.java b/gestalt-di/src/test/java/org/terasology/gestalt/di/scanner/standard/StandardScannerTest.java index 14ce22bd..7ca95e97 100644 --- a/gestalt-di/src/test/java/org/terasology/gestalt/di/scanner/standard/StandardScannerTest.java +++ b/gestalt-di/src/test/java/org/terasology/gestalt/di/scanner/standard/StandardScannerTest.java @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 package org.terasology.gestalt.di.scanner.standard; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.di.BeanContext; import org.terasology.gestalt.di.DefaultBeanContext; import org.terasology.gestalt.di.ServiceRegistry; @@ -22,9 +22,9 @@ public void testSingletonBeanWithScanner() { Optional bean = beanContext.findBean(SingletonBean.class); Optional bean2 = beanContext.findBean(SingletonBean.class); - Assert.assertTrue(bean.isPresent()); - Assert.assertTrue(bean2.isPresent()); - Assert.assertSame(bean.get(), bean2.get()); + Assertions.assertTrue(bean.isPresent()); + Assertions.assertTrue(bean2.isPresent()); + Assertions.assertSame(bean.get(), bean2.get()); } } diff --git a/gestalt-entity-system/build.gradle.kts b/gestalt-entity-system/build.gradle.kts index dda3e582..67ddd5f0 100644 --- a/gestalt-entity-system/build.gradle.kts +++ b/gestalt-entity-system/build.gradle.kts @@ -19,7 +19,9 @@ dependencies { implementation(libs.gson) testAnnotationProcessor(project(":gestalt-inject-java")) - testImplementation(libs.junit) + testImplementation(libs.junit.jupiter.api) + testRuntimeOnly(libs.junit.jupiter.engine) + testRuntimeOnly(libs.junit.platform.launcher) testImplementation(libs.logback) testImplementation(libs.mockito) } diff --git a/gestalt-entity-system/gradle.lockfile b/gestalt-entity-system/gradle.lockfile index 779f6836..f6950855 100644 --- a/gestalt-entity-system/gradle.lockfile +++ b/gestalt-entity-system/gradle.lockfile @@ -17,19 +17,26 @@ com.googlecode.gentyref:gentyref:1.2.0=annotationProcessor,runtimeClasspath,test com.squareup:javapoet:1.13.0=annotationProcessor,testAnnotationProcessor com.toasttab.android:gummy-bears-api-24:0.15.0=signature javax.inject:javax.inject:1=annotationProcessor,compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -junit:junit:4.12=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy-agent:1.17.7=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testRuntimeClasspath net.jcip:jcip-annotations:1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath net.sf.trove4j:trove4j:3.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.checkerframework:checker-compat-qual:2.5.2=annotationProcessor,compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor,compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.24=animalsniffer org.codehaus.mojo:animal-sniffer:1.24=animalsniffer -org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath org.javassist:javassist:3.27.0-GA=runtimeClasspath,testRuntimeClasspath +org.jspecify:jspecify:1.0.0=testCompileClasspath +org.junit.jupiter:junit-jupiter-api:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter-engine:6.1.3=testRuntimeClasspath +org.junit.platform:junit-platform-commons:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-engine:6.1.3=testRuntimeClasspath +org.junit.platform:junit-platform-launcher:6.1.3=testRuntimeClasspath +org.junit:junit-bom:6.1.3=testCompileClasspath,testRuntimeClasspath org.mockito:mockito-core:5.23.0=testCompileClasspath,testRuntimeClasspath org.objenesis:objenesis:3.3=testRuntimeClasspath +org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath org.ow2.asm:asm:9.7=animalsniffer org.slf4j:slf4j-api:1.7.25=annotationProcessor,compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath empty= diff --git a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/component/management/ComponentManagerTest.java b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/component/management/ComponentManagerTest.java index 6183cb06..2ec560ef 100644 --- a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/component/management/ComponentManagerTest.java +++ b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/component/management/ComponentManagerTest.java @@ -16,8 +16,8 @@ package org.terasology.gestalt.entitysystem.component.management; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.entitysystem.component.Component; import java.util.Arrays; @@ -28,11 +28,11 @@ import modules.test.components.Empty; import modules.test.components.PublicAttributeComponent; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotSame; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @@ -41,7 +41,7 @@ public abstract class ComponentManagerTest { private ComponentManager componentManager; - @Before + @BeforeEach public void before() { componentManager = new ComponentManager(getComponentTypeFactory()); } diff --git a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/component/management/ComponentTypeFactoryTest.java b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/component/management/ComponentTypeFactoryTest.java index f1eee5f0..1bb5d4c6 100644 --- a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/component/management/ComponentTypeFactoryTest.java +++ b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/component/management/ComponentTypeFactoryTest.java @@ -1,13 +1,13 @@ package org.terasology.gestalt.entitysystem.component.management; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Arrays; import modules.test.components.ArrayContainingComponent; import modules.test.components.BasicComponent; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; public abstract class ComponentTypeFactoryTest { diff --git a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/component/management/ComponentTypeIndexTest.java b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/component/management/ComponentTypeIndexTest.java index dea04447..76fd035f 100644 --- a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/component/management/ComponentTypeIndexTest.java +++ b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/component/management/ComponentTypeIndexTest.java @@ -17,7 +17,7 @@ package org.terasology.gestalt.entitysystem.component.management; import modules.test.components.Sample; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.assets.ResourceUrn; import org.terasology.gestalt.di.DefaultBeanContext; import org.terasology.gestalt.module.Module; @@ -29,7 +29,7 @@ import java.util.Collections; import java.util.Optional; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * diff --git a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/entity/FullSetupExample.java b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/entity/FullSetupExample.java index 31558934..f8522253 100644 --- a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/entity/FullSetupExample.java +++ b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/entity/FullSetupExample.java @@ -21,8 +21,8 @@ import modules.test.components.BasicComponent; import modules.test.components.Empty; import modules.test.components.Second; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.di.DefaultBeanContext; import org.terasology.gestalt.entitysystem.component.Component; import org.terasology.gestalt.entitysystem.component.management.ComponentManager; @@ -45,11 +45,11 @@ import java.util.List; import java.util.Set; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; public class FullSetupExample { @@ -58,7 +58,7 @@ public class FullSetupExample { public static final String NEW_NAME = "Jerry"; private EntityManager entityManager; - @Before + @BeforeEach public void setup() { // Define/obtain modules ModuleRegistry moduleRegistry = new TableModuleRegistry(); diff --git a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/event/EventProcessorTest.java b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/event/EventProcessorTest.java index 5ee04d1c..0af41677 100644 --- a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/event/EventProcessorTest.java +++ b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/event/EventProcessorTest.java @@ -20,7 +20,8 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.entitysystem.component.management.ComponentManager; import org.terasology.gestalt.entitysystem.component.store.ArrayComponentStore; import org.terasology.gestalt.entitysystem.component.store.ComponentStore; @@ -38,7 +39,7 @@ import modules.test.TestChildEvent; import modules.test.TestEvent; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; @@ -65,7 +66,7 @@ public EventProcessorTest() { entityManager = new CoreEntityManager(componentStores); } - @org.junit.Before + @BeforeEach public void startup() { testEntity = entityManager.createEntity(); Sample comp = new Sample(); diff --git a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/event/EventReceiverMethodSupportTest.java b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/event/EventReceiverMethodSupportTest.java index 5327b461..6e4b782a 100644 --- a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/event/EventReceiverMethodSupportTest.java +++ b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/event/EventReceiverMethodSupportTest.java @@ -18,7 +18,7 @@ import com.google.common.collect.Sets; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.terasology.gestalt.entitysystem.entity.EntityRef; import org.terasology.gestalt.entitysystem.event.impl.EventReceiverMethodSupport; @@ -31,7 +31,7 @@ import modules.test.components.Second; import modules.test.TestEvent; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; diff --git a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/event/EventSystemTest.java b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/event/EventSystemTest.java index 0bbc3c8a..d6e933b8 100644 --- a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/event/EventSystemTest.java +++ b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/event/EventSystemTest.java @@ -18,7 +18,7 @@ import com.google.common.collect.ImmutableSet; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.entitysystem.component.Component; import org.terasology.gestalt.entitysystem.component.store.ArrayComponentStore; import org.terasology.gestalt.entitysystem.component.store.ComponentStore; diff --git a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/prefab/PrefabInstantiationTest.java b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/prefab/PrefabInstantiationTest.java index 36b04470..f0daadeb 100644 --- a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/prefab/PrefabInstantiationTest.java +++ b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/prefab/PrefabInstantiationTest.java @@ -16,7 +16,7 @@ package org.terasology.gestalt.entitysystem.prefab; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.assets.AssetType; import org.terasology.gestalt.assets.ResourceUrn; import org.terasology.gestalt.assets.management.AssetManager; @@ -33,9 +33,9 @@ import modules.test.components.Sample; import modules.test.components.Second; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * diff --git a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/prefab/PrefabJsonFormatTest.java b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/prefab/PrefabJsonFormatTest.java index 725c8bb1..b9ab25ed 100644 --- a/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/prefab/PrefabJsonFormatTest.java +++ b/gestalt-entity-system/src/test/java/org/terasology/gestalt/entitysystem/prefab/PrefabJsonFormatTest.java @@ -18,7 +18,7 @@ import modules.test.components.Reference; import modules.test.components.Sample; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.assets.AssetType; import org.terasology.gestalt.assets.ResourceUrn; import org.terasology.gestalt.assets.format.producer.AssetFileDataProducer; @@ -38,8 +38,8 @@ import java.util.Collections; import java.util.Optional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * diff --git a/gestalt-es-perf/build.gradle.kts b/gestalt-es-perf/build.gradle.kts index 93b03dd1..1dd1a5f9 100644 --- a/gestalt-es-perf/build.gradle.kts +++ b/gestalt-es-perf/build.gradle.kts @@ -15,7 +15,9 @@ dependencies { implementation(libs.android.annotation) implementation(libs.jcip) - testImplementation(libs.junit) + testImplementation(libs.junit.jupiter.api) + testRuntimeOnly(libs.junit.jupiter.engine) + testRuntimeOnly(libs.junit.platform.launcher) testImplementation(libs.logback) testImplementation(libs.mockito) } diff --git a/gestalt-es-perf/gradle.lockfile b/gestalt-es-perf/gradle.lockfile index 83da620a..e0d6f6cb 100644 --- a/gestalt-es-perf/gradle.lockfile +++ b/gestalt-es-perf/gradle.lockfile @@ -16,19 +16,26 @@ com.google.j2objc:j2objc-annotations:1.1=compileClasspath,runtimeClasspath,testC com.googlecode.gentyref:gentyref:1.2.0=runtimeClasspath,testRuntimeClasspath com.toasttab.android:gummy-bears-api-24:0.15.0=signature javax.inject:javax.inject:1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -junit:junit:4.12=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy-agent:1.17.7=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testRuntimeClasspath net.jcip:jcip-annotations:1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath net.sf.trove4j:trove4j:3.0.3=runtimeClasspath,testRuntimeClasspath +org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.checkerframework:checker-compat-qual:2.5.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.17=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.24=animalsniffer org.codehaus.mojo:animal-sniffer:1.24=animalsniffer -org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath org.javassist:javassist:3.27.0-GA=runtimeClasspath,testRuntimeClasspath +org.jspecify:jspecify:1.0.0=testCompileClasspath +org.junit.jupiter:junit-jupiter-api:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter-engine:6.1.3=testRuntimeClasspath +org.junit.platform:junit-platform-commons:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-engine:6.1.3=testRuntimeClasspath +org.junit.platform:junit-platform-launcher:6.1.3=testRuntimeClasspath +org.junit:junit-bom:6.1.3=testCompileClasspath,testRuntimeClasspath org.mockito:mockito-core:5.23.0=testCompileClasspath,testRuntimeClasspath org.objenesis:objenesis:3.3=testRuntimeClasspath +org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath org.ow2.asm:asm:9.7=animalsniffer org.slf4j:slf4j-api:1.7.25=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath empty=annotationProcessor,testAnnotationProcessor diff --git a/gestalt-es-perf/src/test/java/org/terasology/gestalt/entitysystem/component/management/perf/ComponentManagerTest.java b/gestalt-es-perf/src/test/java/org/terasology/gestalt/entitysystem/component/management/perf/ComponentManagerTest.java index 29f6e68e..6ec7bdb2 100644 --- a/gestalt-es-perf/src/test/java/org/terasology/gestalt/entitysystem/component/management/perf/ComponentManagerTest.java +++ b/gestalt-es-perf/src/test/java/org/terasology/gestalt/entitysystem/component/management/perf/ComponentManagerTest.java @@ -16,8 +16,8 @@ package org.terasology.gestalt.entitysystem.component.management.perf; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.entitysystem.component.Component; import org.terasology.gestalt.entitysystem.component.management.ComponentManager; import org.terasology.gestalt.entitysystem.component.management.ComponentType; @@ -31,11 +31,11 @@ import modules.test.components.Empty; import modules.test.components.PublicAttributeComponent; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotSame; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @@ -44,7 +44,7 @@ public abstract class ComponentManagerTest { private ComponentManager componentManager; - @Before + @BeforeEach public void before() { componentManager = new ComponentManager(getComponentTypeFactory()); } diff --git a/gestalt-es-perf/src/test/java/org/terasology/gestalt/entitysystem/event/AbstractEventReceiverMethodSupportTest.java b/gestalt-es-perf/src/test/java/org/terasology/gestalt/entitysystem/event/AbstractEventReceiverMethodSupportTest.java index b55d0135..405b352c 100644 --- a/gestalt-es-perf/src/test/java/org/terasology/gestalt/entitysystem/event/AbstractEventReceiverMethodSupportTest.java +++ b/gestalt-es-perf/src/test/java/org/terasology/gestalt/entitysystem/event/AbstractEventReceiverMethodSupportTest.java @@ -18,7 +18,8 @@ import com.google.common.collect.Sets; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.terasology.gestalt.entitysystem.entity.EntityRef; import org.terasology.gestalt.entitysystem.event.impl.EventReceiverMethodSupport; @@ -31,7 +32,7 @@ import modules.test.components.Sample; import modules.test.components.Second; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; @@ -48,7 +49,7 @@ public abstract class AbstractEventReceiverMethodSupportTest { protected abstract EventHandlerFactory getEventHandlerFactory(); private EventReceiverMethodSupport eventReceiverMethodSupport; - @org.junit.Before + @BeforeEach public void setup() { eventReceiverMethodSupport = new EventReceiverMethodSupport(getEventHandlerFactory()); } diff --git a/gestalt-inject-java/build.gradle.kts b/gestalt-inject-java/build.gradle.kts index 64f137dd..601757e5 100644 --- a/gestalt-inject-java/build.gradle.kts +++ b/gestalt-inject-java/build.gradle.kts @@ -13,7 +13,9 @@ dependencies { implementation("com.github.zafarkhaja:java-semver:0.10.2") testImplementation(project(":testpack:testpack-api")) - testImplementation(libs.junit) + testImplementation(libs.junit.jupiter.api) + testRuntimeOnly(libs.junit.jupiter.engine) + testRuntimeOnly(libs.junit.platform.launcher) testImplementation(libs.logback) testImplementation(libs.mockito) diff --git a/gestalt-inject-java/gradle.lockfile b/gestalt-inject-java/gradle.lockfile index f14a010a..7cc27859 100644 --- a/gestalt-inject-java/gradle.lockfile +++ b/gestalt-inject-java/gradle.lockfile @@ -17,16 +17,23 @@ com.googlecode.gentyref:gentyref:1.2.0=runtimeClasspath,testRuntimeClasspath com.squareup:javapoet:1.13.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.toasttab.android:gummy-bears-api-24:0.15.0=signature javax.inject:javax.inject:1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -junit:junit:4.12=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy-agent:1.17.7=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testRuntimeClasspath +org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.checkerframework:checker-compat-qual:2.5.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.17=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.24=animalsniffer org.codehaus.mojo:animal-sniffer:1.24=animalsniffer -org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath +org.jspecify:jspecify:1.0.0=testCompileClasspath +org.junit.jupiter:junit-jupiter-api:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter-engine:6.1.3=testRuntimeClasspath +org.junit.platform:junit-platform-commons:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-engine:6.1.3=testRuntimeClasspath +org.junit.platform:junit-platform-launcher:6.1.3=testRuntimeClasspath +org.junit:junit-bom:6.1.3=testCompileClasspath,testRuntimeClasspath org.mockito:mockito-core:5.23.0=testCompileClasspath,testRuntimeClasspath org.objenesis:objenesis:3.3=testRuntimeClasspath +org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath org.ow2.asm:asm:9.7=animalsniffer org.slf4j:slf4j-api:1.7.25=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath empty=annotationProcessor,testAnnotationProcessor diff --git a/gestalt-module/build.gradle.kts b/gestalt-module/build.gradle.kts index f4d1e230..2c37c4fc 100644 --- a/gestalt-module/build.gradle.kts +++ b/gestalt-module/build.gradle.kts @@ -21,7 +21,9 @@ dependencies { testImplementation(project(":testpack:testpack-api")) testAnnotationProcessor(project(":gestalt-inject-java")) - testImplementation(libs.junit) + testImplementation(libs.junit.jupiter.api) + testRuntimeOnly(libs.junit.jupiter.engine) + testRuntimeOnly(libs.junit.platform.launcher) testImplementation(libs.logback) testImplementation(libs.mockito) } diff --git a/gestalt-module/gradle.lockfile b/gestalt-module/gradle.lockfile index b29fe085..a9373c2c 100644 --- a/gestalt-module/gradle.lockfile +++ b/gestalt-module/gradle.lockfile @@ -17,17 +17,24 @@ com.googlecode.gentyref:gentyref:1.2.0=annotationProcessor,runtimeClasspath,test com.squareup:javapoet:1.13.0=annotationProcessor,testAnnotationProcessor com.toasttab.android:gummy-bears-api-24:0.15.0=signature javax.inject:javax.inject:1=annotationProcessor,compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -junit:junit:4.12=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy-agent:1.17.7=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testRuntimeClasspath +org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.checkerframework:checker-compat-qual:2.5.2=annotationProcessor,compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor,compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.24=animalsniffer org.codehaus.mojo:animal-sniffer:1.24=animalsniffer -org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath org.javassist:javassist:3.27.0-GA=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jspecify:jspecify:1.0.0=testCompileClasspath +org.junit.jupiter:junit-jupiter-api:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter-engine:6.1.3=testRuntimeClasspath +org.junit.platform:junit-platform-commons:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-engine:6.1.3=testRuntimeClasspath +org.junit.platform:junit-platform-launcher:6.1.3=testRuntimeClasspath +org.junit:junit-bom:6.1.3=testCompileClasspath,testRuntimeClasspath org.mockito:mockito-core:5.23.0=testCompileClasspath,testRuntimeClasspath org.objenesis:objenesis:3.3=testRuntimeClasspath +org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath org.ow2.asm:asm:9.7=animalsniffer org.slf4j:slf4j-api:1.7.25=annotationProcessor,compileClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath empty= diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/i18n/I18nMapTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/i18n/I18nMapTest.java index 38768095..d21c2c72 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/i18n/I18nMapTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/i18n/I18nMapTest.java @@ -18,14 +18,14 @@ import com.google.common.collect.ImmutableMap; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import java.util.Collections; import java.util.Locale; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author Immortius @@ -39,13 +39,13 @@ public class I18nMapTest { private static Locale originalDefault; - @BeforeClass + @BeforeAll public static void before() { originalDefault = Locale.getDefault(Locale.Category.DISPLAY); Locale.setDefault(Locale.Category.DISPLAY, DEFAULT_LOCALE); } - @AfterClass + @AfterAll public static void after() { Locale.setDefault(Locale.Category.DISPLAY, originalDefault); } diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/module/EmbeddedLibraryTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/module/EmbeddedLibraryTest.java index bfbbcf16..13cfe779 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/module/EmbeddedLibraryTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/module/EmbeddedLibraryTest.java @@ -17,8 +17,8 @@ package org.terasology.gestalt.module; import com.google.common.collect.Sets; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.module.Test1Scoped; import org.module.TestImplementation1; import org.terasology.gestalt.di.DefaultBeanContext; @@ -36,7 +36,7 @@ import java.security.Policy; import java.util.LinkedHashSet; -import static org.junit.Assert.assertFalse; +import static org.junit.jupiter.api.Assertions.assertFalse; /** * @@ -46,7 +46,7 @@ public class EmbeddedLibraryTest { private ModuleRegistry registry; private StandardPermissionProviderFactory permissionProviderFactory = new StandardPermissionProviderFactory(); - @Before + @BeforeEach public void setup() { registry = new TableModuleRegistry(); new ModulePathScanner(new ModuleFactory()).scan(registry, Paths.get("test-modules").toFile()); diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/module/ForceIncludeOptionalDependencyResolverTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/module/ForceIncludeOptionalDependencyResolverTest.java index a8236e0d..93d7386c 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/module/ForceIncludeOptionalDependencyResolverTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/module/ForceIncludeOptionalDependencyResolverTest.java @@ -18,15 +18,15 @@ import com.google.common.collect.Sets; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.module.dependencyresolution.DependencyResolver; import org.terasology.gestalt.module.dependencyresolution.OptionalResolutionStrategy; import org.terasology.gestalt.module.dependencyresolution.ResolutionResult; import org.terasology.gestalt.naming.Name; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Immortius diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/module/ModuleMetadataJsonAdapterTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/module/ModuleMetadataJsonAdapterTest.java index d9ca7247..e53c1e83 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/module/ModuleMetadataJsonAdapterTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/module/ModuleMetadataJsonAdapterTest.java @@ -18,8 +18,8 @@ import com.google.common.collect.ImmutableMap; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.i18n.I18nMap; import org.terasology.gestalt.module.dependencyresolution.DependencyInfo; import org.terasology.gestalt.naming.Name; @@ -64,6 +64,6 @@ public void testReadWrite() { ModuleMetadata parsedMeta = adapter.read(new StringReader(jsonString)); - Assert.assertEquals(meta, parsedMeta); + Assertions.assertEquals(meta, parsedMeta); } } diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/module/NormalDependencyResolverTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/module/NormalDependencyResolverTest.java index 9db42ec2..9371c8f6 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/module/NormalDependencyResolverTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/module/NormalDependencyResolverTest.java @@ -18,16 +18,16 @@ import com.google.common.collect.Sets; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.module.dependencyresolution.DependencyResolver; import org.terasology.gestalt.module.dependencyresolution.ResolutionResult; import org.terasology.gestalt.naming.Name; import org.terasology.gestalt.naming.Version; import org.terasology.gestalt.naming.VersionRange; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Immortius diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/module/PermissiveSandboxTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/module/PermissiveSandboxTest.java index b6f8c820..2a84c0fa 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/module/PermissiveSandboxTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/module/PermissiveSandboxTest.java @@ -16,8 +16,8 @@ package org.terasology.gestalt.module; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.di.DefaultBeanContext; import org.terasology.gestalt.module.dependencyresolution.DependencyResolver; import org.terasology.gestalt.module.sandbox.ModuleSecurityManager; @@ -42,7 +42,7 @@ public class PermissiveSandboxTest { private ModuleRegistry registry; private PermissionProviderFactory permissionProviderFactory; - @Before + @BeforeEach public void setup() { registry = new TableModuleRegistry(); new ModulePathScanner(new ModuleFactory()).scan(registry, Paths.get("test-modules").toFile()); diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/module/SandboxTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/module/SandboxTest.java index f1cfc749..6047b695 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/module/SandboxTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/module/SandboxTest.java @@ -17,8 +17,8 @@ package org.terasology.gestalt.module; import com.google.common.collect.Lists; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.module.Test1Scoped; import org.module.TestImplementation1; import org.terasology.context.Lifetime; @@ -43,8 +43,9 @@ import java.util.Collections; import java.util.List; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Immortius @@ -55,7 +56,7 @@ public class SandboxTest { private StandardPermissionProviderFactory permissionProviderFactory = new StandardPermissionProviderFactory(); private BeanContext root; - @Before + @BeforeEach public void setup() { permissionProviderFactory.getBasePermissionSet().addAPIPackage("java.lang"); permissionProviderFactory.getBasePermissionSet().addAPIPackage("java.util"); @@ -99,20 +100,24 @@ public void accessToNormalMethod() throws Exception { } // Ensure access to disallowed classes fails - @Test(expected = InvocationTargetException.class) - public void deniedAccessToRestrictedClassInMethod() throws Exception { - ModuleEnvironment environment = new ModuleEnvironment(root, resolver.resolve(new Name("moduleB")).getModules(), permissionProviderFactory); - - Class type = findClass("ModuleBClass", environment); - Object instance = type.newInstance(); - type.getMethod("illegalMethod").invoke(instance); + @Test + public void deniedAccessToRestrictedClassInMethod() { + assertThrows(InvocationTargetException.class, () -> { + ModuleEnvironment environment = new ModuleEnvironment(root, resolver.resolve(new Name("moduleB")).getModules(), permissionProviderFactory); + + Class type = findClass("ModuleBClass", environment); + Object instance = type.newInstance(); + type.getMethod("illegalMethod").invoke(instance); + }); } - @Test(expected = ClassNotFoundException.class) - public void deniedAccessToClassImplementingRestrictedInterface() throws Exception { - ModuleEnvironment environment = new ModuleEnvironment(root, resolver.resolve(new Name("moduleD")).getModules(), permissionProviderFactory); + @Test + public void deniedAccessToClassImplementingRestrictedInterface() { + assertThrows(ClassNotFoundException.class, () -> { + ModuleEnvironment environment = new ModuleEnvironment(root, resolver.resolve(new Name("moduleD")).getModules(), permissionProviderFactory); - findClass("ModuleDRestrictedClass", environment); + findClass("ModuleDRestrictedClass", environment); + }); } @Test @@ -135,13 +140,15 @@ public void allowedAccessToClassFromRequiredPermissionSet() throws Exception { } // Ensure that a module doesn't gain accesses required by the parent but not by itself - @Test(expected = InvocationTargetException.class) + @Test public void deniedAccessToClassPermittedToParent() throws Exception { - ModuleEnvironment environment = new ModuleEnvironment(root, resolver.resolve(new Name("moduleC")).getModules(), permissionProviderFactory); + assertThrows(InvocationTargetException.class, () -> { + ModuleEnvironment environment = new ModuleEnvironment(root, resolver.resolve(new Name("moduleC")).getModules(), permissionProviderFactory); - Class type = findClass("ModuleCClass", environment); - Object instance = type.newInstance(); - type.getMethod("requiresIoMethod").invoke(instance); + Class type = findClass("ModuleCClass", environment); + Object instance = type.newInstance(); + type.getMethod("requiresIoMethod").invoke(instance); + }); } @Test diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/module/TableModuleRegistryTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/module/TableModuleRegistryTest.java index 9cdd3eb1..49e0c2b7 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/module/TableModuleRegistryTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/module/TableModuleRegistryTest.java @@ -16,7 +16,7 @@ package org.terasology.gestalt.module; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.di.index.UrlClassIndex; import org.terasology.gestalt.module.resources.EmptyFileSource; import org.terasology.gestalt.naming.Name; @@ -24,9 +24,9 @@ import java.util.Collections; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Immortius diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/module/UseOptionalIfAvailableDependencyResolverTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/module/UseOptionalIfAvailableDependencyResolverTest.java index b571f42e..652ac2e0 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/module/UseOptionalIfAvailableDependencyResolverTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/module/UseOptionalIfAvailableDependencyResolverTest.java @@ -18,14 +18,14 @@ import com.google.common.collect.Sets; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.module.dependencyresolution.DependencyResolver; import org.terasology.gestalt.module.dependencyresolution.OptionalResolutionStrategy; import org.terasology.gestalt.module.dependencyresolution.ResolutionResult; import org.terasology.gestalt.naming.Name; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Immortius diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/module/di/BeanContextInModuleTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/module/di/BeanContextInModuleTest.java index 3e6a4407..dafcb7af 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/module/di/BeanContextInModuleTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/module/di/BeanContextInModuleTest.java @@ -1,8 +1,8 @@ package org.terasology.gestalt.module.di; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.module.TestImplementation1; import org.terasology.context.Lifetime; import org.terasology.gestalt.di.BeanContext; @@ -23,7 +23,7 @@ public class BeanContextInModuleTest { private ModuleEnvironment environment; - @Before + @BeforeEach public void setup() { ModuleServiceRegistry serviceRegistry = new ModuleServiceRegistry(new PermitAllPermissionProviderFactory()); serviceRegistry.with(ModulePathScanner.class).lifetime(Lifetime.Singleton); @@ -41,8 +41,8 @@ public void setup() { @Test public void findByInterface() { List list = environment.getBeans(TestImplementation1.class); - Assert.assertFalse(list.isEmpty()); - Assert.assertEquals( + Assertions.assertFalse(list.isEmpty()); + Assertions.assertArrayEquals( new String[]{"org.module.b.DepByInterface"}, list.stream().map(o -> o.getClass().getName()).toArray(String[]::new) ); diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/module/resources/BaseFileSourceTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/module/resources/BaseFileSourceTest.java index 8b46e9f2..1bc594ba 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/module/resources/BaseFileSourceTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/module/resources/BaseFileSourceTest.java @@ -21,7 +21,7 @@ import com.google.common.collect.Sets; import com.google.common.io.CharStreams; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.io.InputStreamReader; @@ -31,9 +31,9 @@ import java.util.Optional; import java.util.Set; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Base class for testing ModuleFileSources. The expectation is that module file source will have diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/module/resources/ClasspathFileSourceTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/module/resources/ClasspathFileSourceTest.java index c0c78472..0929943e 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/module/resources/ClasspathFileSourceTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/module/resources/ClasspathFileSourceTest.java @@ -16,13 +16,13 @@ package org.terasology.gestalt.module.resources; -import org.junit.BeforeClass; +import org.junit.jupiter.api.BeforeAll; public class ClasspathFileSourceTest extends BaseFileSourceTest { private static ClasspathFileSource source; - @BeforeClass + @BeforeAll public static void setup() { source = new ClasspathFileSource("content"); } diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/module/sandbox/APIScannerTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/module/sandbox/APIScannerTest.java index 9f9c3233..4e86eba2 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/module/sandbox/APIScannerTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/module/sandbox/APIScannerTest.java @@ -16,11 +16,11 @@ package org.terasology.gestalt.module.sandbox; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.di.index.UrlClassIndex; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/naming/NameTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/naming/NameTest.java index eff3ade8..a302739e 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/naming/NameTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/naming/NameTest.java @@ -16,10 +16,10 @@ package org.terasology.gestalt.naming; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; /** * @author Immortius diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/naming/NameVersionTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/naming/NameVersionTest.java index e55cfd25..6b6530d7 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/naming/NameVersionTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/naming/NameVersionTest.java @@ -16,10 +16,10 @@ package org.terasology.gestalt.naming; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; /** * @author Immortius diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/naming/VersionRangeTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/naming/VersionRangeTest.java index 622dede8..86b0da30 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/naming/VersionRangeTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/naming/VersionRangeTest.java @@ -16,10 +16,11 @@ package org.terasology.gestalt.naming; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Immortius @@ -59,9 +60,9 @@ public void doesNotContainHigherVersions() { assertFalse(range.contains(new Version("3.0.0"))); } - @Test(expected = IllegalArgumentException.class) + @Test public void errorIfUpperBoundLowerThanLowerBound() { - new VersionRange(new Version("2.0.0"), new Version("1.0.0")); + assertThrows(IllegalArgumentException.class, () -> new VersionRange(new Version("2.0.0"), new Version("1.0.0"))); } @Test diff --git a/gestalt-module/src/test/java/org/terasology/gestalt/naming/VersionTest.java b/gestalt-module/src/test/java/org/terasology/gestalt/naming/VersionTest.java index 59ce2172..0c4b6960 100644 --- a/gestalt-module/src/test/java/org/terasology/gestalt/naming/VersionTest.java +++ b/gestalt-module/src/test/java/org/terasology/gestalt/naming/VersionTest.java @@ -15,13 +15,14 @@ */ package org.terasology.gestalt.naming; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.terasology.gestalt.naming.exception.VersionParseException; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Immortius @@ -73,34 +74,34 @@ public void getNextPatchVersion() { assertEquals(new Version(1, 2, 4), version.getNextPatchVersion()); } - @Test(expected = IllegalArgumentException.class) + @Test public void exceptionCreatingWithNegativeMajorVersion() { - new Version(-1, 0, 0); + assertThrows(IllegalArgumentException.class, () -> new Version(-1, 0, 0)); } - @Test(expected = IllegalArgumentException.class) + @Test public void exceptionCreatingWithNegativeMinorVersion() { - new Version(0, -1, 0); + assertThrows(IllegalArgumentException.class, () -> new Version(0, -1, 0)); } - @Test(expected = IllegalArgumentException.class) + @Test public void exceptionCreatingWithNegativePatchVersion() { - new Version(0, 0, -1); + assertThrows(IllegalArgumentException.class, () -> new Version(0, 0, -1)); } - @Test(expected = VersionParseException.class) + @Test public void exceptionParsingMalformedString() { - new Version("hello"); + assertThrows(VersionParseException.class, () -> new Version("hello")); } - @Test(expected = VersionParseException.class) + @Test public void exceptionParsingMalformedSeparator() { - new Version("1,2,3"); + assertThrows(VersionParseException.class, () -> new Version("1,2,3")); } - @Test(expected = VersionParseException.class) + @Test public void exceptionParsingInvalidNumbers() { - new Version("1.1.6a"); + assertThrows(VersionParseException.class, () -> new Version("1.1.6a")); } @Test diff --git a/gestalt-util/build.gradle.kts b/gestalt-util/build.gradle.kts index 084cb32b..6374a1ca 100644 --- a/gestalt-util/build.gradle.kts +++ b/gestalt-util/build.gradle.kts @@ -13,7 +13,10 @@ dependencies { implementation(libs.android.annotation) // These dependencies are only needed for running tests - testImplementation(libs.junit) + testImplementation(libs.junit.jupiter.api) + testImplementation(libs.junit.jupiter.params) + testRuntimeOnly(libs.junit.jupiter.engine) + testRuntimeOnly(libs.junit.platform.launcher) testImplementation(libs.logback) testImplementation(libs.mockito) } diff --git a/gestalt-util/gradle.lockfile b/gestalt-util/gradle.lockfile index 8ec68493..93c563c8 100644 --- a/gestalt-util/gradle.lockfile +++ b/gestalt-util/gradle.lockfile @@ -13,16 +13,24 @@ com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=comp com.google.j2objc:j2objc-annotations:1.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.googlecode.gentyref:gentyref:1.2.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.toasttab.android:gummy-bears-api-24:0.15.0=signature -junit:junit:4.12=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy-agent:1.17.7=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testRuntimeClasspath +org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.checkerframework:checker-compat-qual:2.5.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.17=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.codehaus.mojo:animal-sniffer-annotations:1.24=animalsniffer org.codehaus.mojo:animal-sniffer:1.24=animalsniffer -org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath +org.jspecify:jspecify:1.0.0=testCompileClasspath +org.junit.jupiter:junit-jupiter-api:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter-engine:6.1.3=testRuntimeClasspath +org.junit.jupiter:junit-jupiter-params:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-commons:6.1.3=testCompileClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-engine:6.1.3=testRuntimeClasspath +org.junit.platform:junit-platform-launcher:6.1.3=testRuntimeClasspath +org.junit:junit-bom:6.1.3=testCompileClasspath,testRuntimeClasspath org.mockito:mockito-core:5.23.0=testCompileClasspath,testRuntimeClasspath org.objenesis:objenesis:3.3=testRuntimeClasspath +org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath org.ow2.asm:asm:9.7=animalsniffer org.slf4j:slf4j-api:1.7.25=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath empty=annotationProcessor,testAnnotationProcessor diff --git a/gestalt-util/src/test/java/org/terasology/gestalt/util/collection/KahnSorterTest.java b/gestalt-util/src/test/java/org/terasology/gestalt/util/collection/KahnSorterTest.java index 3c165d06..44cdbc44 100644 --- a/gestalt-util/src/test/java/org/terasology/gestalt/util/collection/KahnSorterTest.java +++ b/gestalt-util/src/test/java/org/terasology/gestalt/util/collection/KahnSorterTest.java @@ -18,9 +18,10 @@ import com.google.common.collect.Lists; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; /** * @@ -48,11 +49,11 @@ public void orderedByEdges() { assertEquals(Lists.newArrayList(3, 2, 1), sorter.sort()); } - @Test(expected = CircularDependencyException.class) + @Test public void circularDependency() { sorter.addNodes(1, 2, 3); sorter.addEdge(2, 1); sorter.addEdge(1, 2); - sorter.sort(); + assertThrows(CircularDependencyException.class, () -> sorter.sort()); } } diff --git a/gestalt-util/src/test/java/org/terasology/gestalt/util/io/FileExtensionPathMatcherTest.java b/gestalt-util/src/test/java/org/terasology/gestalt/util/io/FileExtensionPathMatcherTest.java index 9504bc75..1e7615ba 100644 --- a/gestalt-util/src/test/java/org/terasology/gestalt/util/io/FileExtensionPathMatcherTest.java +++ b/gestalt-util/src/test/java/org/terasology/gestalt/util/io/FileExtensionPathMatcherTest.java @@ -16,46 +16,37 @@ package org.terasology.gestalt.util.io; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; -import java.util.Collection; import java.util.List; +import java.util.stream.Stream; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author Immortius */ -@RunWith(Parameterized.class) public class FileExtensionPathMatcherTest { - private FileExtensionPathMatcher matcher; - private Path testPath; - private boolean shouldMatch; - public FileExtensionPathMatcherTest(List extensions, Path testPath, boolean shouldMatch) { - this.matcher = new FileExtensionPathMatcher(extensions); - this.testPath = testPath; - this.shouldMatch = shouldMatch; + static Stream data() { + return Stream.of( + Arguments.of(Arrays.asList("txt"), Paths.get("shroud.dat"), false), + Arguments.of(Arrays.asList("txt"), Paths.get("shroud.txt"), true), + Arguments.of(Arrays.asList("txt", "rbl"), Paths.get("shroud.txt"), true), + Arguments.of(Arrays.asList("txt", "rbl"), Paths.get("shroud.rbl"), true), + Arguments.of(Arrays.asList("txt", "rbl"), Paths.get("shroud.mrr"), false) + ); } - @Parameterized.Parameters - public static Collection data() { - return Arrays.asList(new Object[][]{ - {Arrays.asList("txt"), Paths.get("shroud.dat"), false}, - {Arrays.asList("txt"), Paths.get("shroud.txt"), true}, - {Arrays.asList("txt", "rbl"), Paths.get("shroud.txt"), true}, - {Arrays.asList("txt", "rbl"), Paths.get("shroud.rbl"), true}, - {Arrays.asList("txt", "rbl"), Paths.get("shroud.mrr"), false} - }); - } - - @Test - public void test() { + @ParameterizedTest + @MethodSource("data") + public void test(List extensions, Path testPath, boolean shouldMatch) { + FileExtensionPathMatcher matcher = new FileExtensionPathMatcher(extensions); assertEquals(shouldMatch, matcher.matches(testPath)); } } diff --git a/gestalt-util/src/test/java/org/terasology/gestalt/util/reflection/ClassFactoryTest.java b/gestalt-util/src/test/java/org/terasology/gestalt/util/reflection/ClassFactoryTest.java index 01da2df9..c6fe6f71 100644 --- a/gestalt-util/src/test/java/org/terasology/gestalt/util/reflection/ClassFactoryTest.java +++ b/gestalt-util/src/test/java/org/terasology/gestalt/util/reflection/ClassFactoryTest.java @@ -16,13 +16,13 @@ package org.terasology.gestalt.util.reflection; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Optional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Immortius diff --git a/gestalt-util/src/test/java/org/terasology/gestalt/util/reflection/GenericsUtilTest.java b/gestalt-util/src/test/java/org/terasology/gestalt/util/reflection/GenericsUtilTest.java index 62ed335b..46468147 100644 --- a/gestalt-util/src/test/java/org/terasology/gestalt/util/reflection/GenericsUtilTest.java +++ b/gestalt-util/src/test/java/org/terasology/gestalt/util/reflection/GenericsUtilTest.java @@ -18,15 +18,16 @@ import com.google.common.base.Predicate; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.lang.reflect.Type; import java.util.List; import java.util.Optional; -import static junit.framework.TestCase.assertFalse; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Immortius @@ -69,16 +70,16 @@ public void correctParameterForBoundClassField() throws Exception { assertEquals(String.class, result.get()); } - @Test(expected = IndexOutOfBoundsException.class) + @Test public void exceptionIfParameterIsOutOfBounds() throws Exception { Type t = GenericsUtilTest.class.getDeclaredField("boundInterface").getGenericType(); - GenericsUtil.getTypeParameterBinding(t, 1); + assertThrows(IndexOutOfBoundsException.class, () -> GenericsUtil.getTypeParameterBinding(t, 1)); } - @Test(expected = IllegalArgumentException.class) + @Test public void exceptionIfSuperClassIsNotParameterized() throws Exception { Type t = GenericsUtilTest.class.getDeclaredField("nonGenericInterface").getGenericType(); - GenericsUtil.getTypeParameterBinding(t, 0); + assertThrows(IllegalArgumentException.class, () -> GenericsUtil.getTypeParameterBinding(t, 0)); } @Test diff --git a/settings.gradle.kts b/settings.gradle.kts index 334557b2..d5df3f6f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -9,7 +9,11 @@ dependencyResolutionManagement { library("jcip", "net.jcip:jcip-annotations:1.0") library("slf4j-api", "org.slf4j:slf4j-api:1.7.25") // testing - library("junit", "junit:junit:4.12") + library("junit", "junit:junit:4.12") // still used by the (unmigrated) Android modules + library("junit-jupiter-api", "org.junit.jupiter:junit-jupiter-api:6.1.3") + library("junit-jupiter-engine", "org.junit.jupiter:junit-jupiter-engine:6.1.3") + library("junit-jupiter-params", "org.junit.jupiter:junit-jupiter-params:6.1.3") + library("junit-platform-launcher", "org.junit.platform:junit-platform-launcher:6.1.3") library("logback", "ch.qos.logback:logback-classic:1.2.3") library("mockito", "org.mockito:mockito-core:5.23.0") } From 90bb687792f6f882e866dcec93c72f8b0326ae4c Mon Sep 17 00:00:00 2001 From: soloturn Date: Thu, 27 Aug 2026 20:17:58 +0200 Subject: [PATCH 2/2] build: migrate Android local unit tests to JUnit 6 gestalt-android has no test sources; drop its unused JUnit4 dependency. gestalt-android-testbed's local unit test (src/test) now runs on the JUnit Platform via AGP's testOptions.unitTests.all.useJUnitPlatform(). androidTest stays on JUnit4 - AndroidJUnitRunner doesn't support Jupiter. The junit (JUnit4) catalog alias is now unused; removed. --- gestalt-android-testbed/build.gradle | 10 +++++++++- .../gestalt/android/testbed/ExampleUnitTest.java | 4 ++-- gestalt-android/build.gradle | 1 - settings.gradle.kts | 1 - 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/gestalt-android-testbed/build.gradle b/gestalt-android-testbed/build.gradle index 76ad6ad7..9c196b81 100644 --- a/gestalt-android-testbed/build.gradle +++ b/gestalt-android-testbed/build.gradle @@ -20,6 +20,11 @@ android { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } + testOptions { + unitTests.all { + it.useJUnitPlatform() + } + } packagingOptions { merge "META-INF/annotations/*" } @@ -45,7 +50,10 @@ dependencies { implementation(libs.slf4j.api) implementation("com.github.tony19:logback-android:1.3.0-3") implementation(project(":testpack:testpack-api")) - testImplementation(libs.junit) + testImplementation(libs.junit.jupiter.api) + testRuntimeOnly(libs.junit.jupiter.engine) + testRuntimeOnly(libs.junit.platform.launcher) + // androidTest runs on-device via AndroidJUnitRunner, which is JUnit4-only - not migrated. androidTestImplementation("androidx.test:runner:1.6.2") androidTestImplementation("androidx.test.ext:junit:1.2.1") androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1") diff --git a/gestalt-android-testbed/src/test/java/org/terasology/gestalt/android/testbed/ExampleUnitTest.java b/gestalt-android-testbed/src/test/java/org/terasology/gestalt/android/testbed/ExampleUnitTest.java index 10474df2..d8710782 100644 --- a/gestalt-android-testbed/src/test/java/org/terasology/gestalt/android/testbed/ExampleUnitTest.java +++ b/gestalt-android-testbed/src/test/java/org/terasology/gestalt/android/testbed/ExampleUnitTest.java @@ -16,9 +16,9 @@ package org.terasology.gestalt.android.testbed; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * Example local unit test, which will execute on the development machine (host). diff --git a/gestalt-android/build.gradle b/gestalt-android/build.gradle index 3dc0ffac..f4c447e0 100644 --- a/gestalt-android/build.gradle +++ b/gestalt-android/build.gradle @@ -51,7 +51,6 @@ dependencies { implementation(libs.guava) implementation("androidx.appcompat:appcompat:1.7.0") - testImplementation(libs.junit) androidTestImplementation("androidx.test:runner:1.6.2") androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1") diff --git a/settings.gradle.kts b/settings.gradle.kts index d5df3f6f..0666150c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -9,7 +9,6 @@ dependencyResolutionManagement { library("jcip", "net.jcip:jcip-annotations:1.0") library("slf4j-api", "org.slf4j:slf4j-api:1.7.25") // testing - library("junit", "junit:junit:4.12") // still used by the (unmigrated) Android modules library("junit-jupiter-api", "org.junit.jupiter:junit-jupiter-api:6.1.3") library("junit-jupiter-engine", "org.junit.jupiter:junit-jupiter-engine:6.1.3") library("junit-jupiter-params", "org.junit.jupiter:junit-jupiter-params:6.1.3")