mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-26 05:50:39 +00:00
Isolate platform binding
- Add the PlatformBinding rule that binds a mock platform for a class or method, unbinds on teardown and restores the previous binding - Add the PlatformLeakGuard rule that fails a class when a platform is still bound or a service is still registered at class start or end - Add IrisRuntimeState so the guard reads the registered services without adding a test-only method to the SPI - Replace the inline mock-platform setup and teardown of twenty test classes with the rule - Guard the remaining sixty-four platform and service touching core test classes - Rename the pack-compat pool fixtures to PackCompatFixtures so the two CompatFixtures names cannot collide - Scope BukkitTestServer branding to a ServerBranding rule that restores the shared mock after each test
This commit is contained in:
1 parent
c332c86849
commit
03c645b66f
93 files changed
+691
-403
No files matched your search
@@ -1,6 +1,7 @@
|
|||||||
package art.arcane.iris.core;
|
package art.arcane.iris.core;
|
||||||
|
|
||||||
import art.arcane.iris.testsupport.BukkitTestServer;
|
import art.arcane.iris.testsupport.BukkitTestServer;
|
||||||
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
|
||||||
@@ -9,6 +10,9 @@ import static org.junit.Assume.assumeTrue;
|
|||||||
import static org.mockito.Mockito.mockingDetails;
|
import static org.mockito.Mockito.mockingDetails;
|
||||||
|
|
||||||
public class IrisRuntimeSchedulerModeRoutingTest {
|
public class IrisRuntimeSchedulerModeRoutingTest {
|
||||||
|
@Rule
|
||||||
|
public final BukkitTestServer.ServerBranding branding = BukkitTestServer.branding();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void autoResolvesToPaperLikeOnPurpurBranding() {
|
public void autoResolvesToPaperLikeOnPurpurBranding() {
|
||||||
installServer("Purpur", "git-Purpur-2562 (MC: 26.2)");
|
installServer("Purpur", "git-Purpur-2562 (MC: 26.2)");
|
||||||
@@ -55,6 +59,6 @@ public class IrisRuntimeSchedulerModeRoutingTest {
|
|||||||
|
|
||||||
private void installServer(String name, String version) {
|
private void installServer(String name, String version) {
|
||||||
assumeTrue(mockingDetails(BukkitTestServer.install()).isMock());
|
assumeTrue(mockingDetails(BukkitTestServer.install()).isMock());
|
||||||
BukkitTestServer.brand(name, version);
|
branding.set(name, version);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,7 +3,9 @@ package art.arcane.iris.core.gui;
|
|||||||
import art.arcane.iris.engine.framework.MeteredCache;
|
import art.arcane.iris.engine.framework.MeteredCache;
|
||||||
import art.arcane.iris.engine.framework.PreservationRegistry;
|
import art.arcane.iris.engine.framework.PreservationRegistry;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.function.NoiseProvider;
|
import art.arcane.volmlib.util.function.NoiseProvider;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
@@ -20,6 +22,9 @@ import static org.junit.Assert.assertFalse;
|
|||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
public final class NoiseExplorerGUITest {
|
public final class NoiseExplorerGUITest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void openingInitialSourceBuildsSamplerExactlyOnce() throws Exception {
|
public void openingInitialSourceBuildsSamplerExactlyOnce() throws Exception {
|
||||||
AtomicInteger factoryCalls = new AtomicInteger();
|
AtomicInteger factoryCalls = new AtomicInteger();
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import art.arcane.iris.platform.bukkit.BukkitPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.common.scheduling.J;
|
import art.arcane.iris.util.common.scheduling.J;
|
||||||
import art.arcane.volmlib.util.format.MemoryMonitor;
|
import art.arcane.volmlib.util.format.MemoryMonitor;
|
||||||
import art.arcane.volmlib.util.scheduling.FoliaScheduler;
|
import art.arcane.volmlib.util.scheduling.FoliaScheduler;
|
||||||
@@ -17,6 +18,7 @@ import org.bukkit.plugin.IllegalPluginAccessException;
|
|||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
import org.bukkit.scheduler.BukkitScheduler;
|
import org.bukkit.scheduler.BukkitScheduler;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.MockedStatic;
|
import org.mockito.MockedStatic;
|
||||||
|
|
||||||
@@ -45,6 +47,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class PregeneratorJobShutdownDispatchTest {
|
public class PregeneratorJobShutdownDispatchTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void pluginDisableCanJoinAWorkerAlreadyDispatchingSaving() throws Exception {
|
public void pluginDisableCanJoinAWorkerAlreadyDispatchingSaving() throws Exception {
|
||||||
try (Fixture fixture = new Fixture()) {
|
try (Fixture fixture = new Fixture()) {
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ package art.arcane.iris.core.lifecycle;
|
|||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.LogLevel;
|
import art.arcane.iris.spi.LogLevel;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
@@ -22,6 +24,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
* console and the runtime log but never the instance's logs/latest.log - the only log most operators read.
|
* console and the runtime log but never the instance's logs/latest.log - the only log most operators read.
|
||||||
*/
|
*/
|
||||||
public class MissingWorldStorageLogTest {
|
public class MissingWorldStorageLogTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private final List<String> emitted = new ArrayList<>();
|
private final List<String> emitted = new ArrayList<>();
|
||||||
private final List<LogLevel> levels = new ArrayList<>();
|
private final List<LogLevel> levels = new ArrayList<>();
|
||||||
private IrisPlatform previousPlatform;
|
private IrisPlatform previousPlatform;
|
||||||
|
|||||||
@@ -3,12 +3,14 @@ package art.arcane.iris.core.link;
|
|||||||
import art.arcane.iris.core.lifecycle.ManagedWorldLoader;
|
import art.arcane.iris.core.lifecycle.ManagedWorldLoader;
|
||||||
import art.arcane.iris.engine.platform.BukkitChunkGenerator;
|
import art.arcane.iris.engine.platform.BukkitChunkGenerator;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
import org.bukkit.event.server.ServerCommandEvent;
|
import org.bukkit.event.server.ServerCommandEvent;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -29,6 +31,9 @@ import static org.mockito.Mockito.mockStatic;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class MultiverseGuardListenerTest {
|
public class MultiverseGuardListenerTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,10 @@ import art.arcane.iris.core.IrisSettings;
|
|||||||
import art.arcane.iris.engine.framework.PreservationRegistry;
|
import art.arcane.iris.engine.framework.PreservationRegistry;
|
||||||
import art.arcane.iris.engine.object.IrisGenerator;
|
import art.arcane.iris.engine.object.IrisGenerator;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -22,6 +24,9 @@ import static org.junit.Assert.assertTrue;
|
|||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
public class IrisDataAuthoringCacheTest {
|
public class IrisDataAuthoringCacheTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public final TemporaryFolder temporary = new TemporaryFolder();
|
public final TemporaryFolder temporary = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ package art.arcane.iris.core.loader;
|
|||||||
import art.arcane.iris.engine.framework.MeteredCache;
|
import art.arcane.iris.engine.framework.MeteredCache;
|
||||||
import art.arcane.iris.engine.framework.PreservationRegistry;
|
import art.arcane.iris.engine.framework.PreservationRegistry;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -17,6 +19,9 @@ import static org.junit.Assert.assertSame;
|
|||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
public class IrisDataDatapackCompilerCacheTest {
|
public class IrisDataDatapackCompilerCacheTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ import art.arcane.iris.engine.framework.Engine;
|
|||||||
import art.arcane.iris.engine.framework.MeteredCache;
|
import art.arcane.iris.engine.framework.MeteredCache;
|
||||||
import art.arcane.iris.engine.framework.PreservationRegistry;
|
import art.arcane.iris.engine.framework.PreservationRegistry;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.project.context.IrisContext;
|
import art.arcane.iris.util.project.context.IrisContext;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -21,6 +23,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisDataEngineRegistryTest {
|
public class IrisDataEngineRegistryTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,10 @@ import art.arcane.iris.engine.history.GenerationRegistryContract;
|
|||||||
import art.arcane.iris.engine.object.IrisDimension;
|
import art.arcane.iris.engine.object.IrisDimension;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -20,6 +22,9 @@ import static org.mockito.Mockito.mockStatic;
|
|||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
|
|
||||||
public class IrisDataRetainedPackTest {
|
public class IrisDataRetainedPackTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
@@ -7,10 +7,12 @@ import art.arcane.iris.engine.object.IrisDimension;
|
|||||||
import art.arcane.iris.engine.object.IrisObject;
|
import art.arcane.iris.engine.object.IrisObject;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.collection.KMap;
|
import art.arcane.volmlib.util.collection.KMap;
|
||||||
import art.arcane.volmlib.util.collection.KSet;
|
import art.arcane.volmlib.util.collection.KSet;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -34,6 +36,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class ResourceLoaderPrefetchTest {
|
public class ResourceLoaderPrefetchTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
+5
@@ -5,9 +5,11 @@ import art.arcane.iris.engine.object.IrisDimension;
|
|||||||
import art.arcane.iris.engine.object.IrisPosition;
|
import art.arcane.iris.engine.object.IrisPosition;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -26,6 +28,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class ResourceLoaderStaticObjectValidationTest {
|
public class ResourceLoaderStaticObjectValidationTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
@@ -27,9 +27,11 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
import art.arcane.iris.spi.PlatformStructureHooks;
|
import art.arcane.iris.spi.PlatformStructureHooks;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.Assume;
|
import org.junit.Assume;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -67,6 +69,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class PackDownloaderTest {
|
public class PackDownloaderTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temp = new TemporaryFolder();
|
public TemporaryFolder temp = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ package art.arcane.iris.core.pack;
|
|||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -25,6 +27,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class PackImageMapValidatorTest {
|
public class PackImageMapValidatorTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
import art.arcane.iris.spi.PlatformStructureHooks;
|
import art.arcane.iris.spi.PlatformStructureHooks;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.Assume;
|
import org.junit.Assume;
|
||||||
@@ -30,6 +32,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class PackValidationCacheTest {
|
public class PackValidationCacheTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformStructureHooks;
|
import art.arcane.iris.spi.PlatformStructureHooks;
|
||||||
import art.arcane.iris.spi.PlatformStructureHooks.JigsawSourceMetadata;
|
import art.arcane.iris.spi.PlatformStructureHooks.JigsawSourceMetadata;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -27,6 +29,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class PackValidatorStructureGraphTest {
|
public class PackValidatorStructureGraphTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
Vendored
+5
@@ -3,7 +3,9 @@ package art.arcane.iris.core.pregenerator.cache;
|
|||||||
import art.arcane.iris.engine.framework.MeteredCache;
|
import art.arcane.iris.engine.framework.MeteredCache;
|
||||||
import art.arcane.iris.engine.framework.PreservationRegistry;
|
import art.arcane.iris.engine.framework.PreservationRegistry;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -16,6 +18,9 @@ import static org.junit.Assert.assertFalse;
|
|||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
public class PregenCacheExecutorRegistrationTest {
|
public class PregenCacheExecutorRegistrationTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private static final class RecordingPreservation implements PreservationRegistry {
|
private static final class RecordingPreservation implements PreservationRegistry {
|
||||||
private final List<ExecutorService> executors = new CopyOnWriteArrayList<>();
|
private final List<ExecutorService> executors = new CopyOnWriteArrayList<>();
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,11 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockProperty;
|
import art.arcane.iris.spi.PlatformBlockProperty;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.json.JSONObject;
|
import art.arcane.volmlib.util.json.JSONObject;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -20,6 +22,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class ExternalBlockSchemaTest {
|
public class ExternalBlockSchemaTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private static final String QUALIFIED_BLOCK = "craftengine:example/ores/copper";
|
private static final String QUALIFIED_BLOCK = "craftengine:example/ores/copper";
|
||||||
|
|
||||||
private IrisPlatform previous;
|
private IrisPlatform previous;
|
||||||
|
|||||||
@@ -8,10 +8,12 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.json.JSONArray;
|
import art.arcane.volmlib.util.json.JSONArray;
|
||||||
import art.arcane.volmlib.util.json.JSONObject;
|
import art.arcane.volmlib.util.json.JSONObject;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -34,6 +36,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisCodeWorkspaceTest {
|
public class IrisCodeWorkspaceTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import art.arcane.iris.engine.object.IrisBlockData;
|
|||||||
import art.arcane.iris.engine.object.IrisExpression;
|
import art.arcane.iris.engine.object.IrisExpression;
|
||||||
import art.arcane.iris.engine.object.IrisHydrology;
|
import art.arcane.iris.engine.object.IrisHydrology;
|
||||||
import art.arcane.iris.engine.object.IrisRiverPolicy;
|
import art.arcane.iris.engine.object.IrisRiverPolicy;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
import art.arcane.volmlib.util.collection.KMap;
|
import art.arcane.volmlib.util.collection.KMap;
|
||||||
import art.arcane.volmlib.util.json.JSONArray;
|
import art.arcane.volmlib.util.json.JSONArray;
|
||||||
@@ -17,6 +18,7 @@ import art.arcane.iris.spi.IrisPlatforms;
|
|||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -30,6 +32,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisRiverSchemaTest {
|
public class IrisRiverSchemaTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private IrisPlatform previousPlatform;
|
private IrisPlatform previousPlatform;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
|
|||||||
@@ -12,11 +12,13 @@ import art.arcane.iris.engine.object.annotations.ArrayType;
|
|||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
import art.arcane.volmlib.util.collection.KMap;
|
import art.arcane.volmlib.util.collection.KMap;
|
||||||
import art.arcane.volmlib.util.json.JSONObject;
|
import art.arcane.volmlib.util.json.JSONObject;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@@ -30,6 +32,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisStaticObjectSchemaTest {
|
public class IrisStaticObjectSchemaTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private IrisPlatform previousPlatform;
|
private IrisPlatform previousPlatform;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
|
|||||||
@@ -55,12 +55,14 @@ import art.arcane.iris.spi.PlatformRegistries;
|
|||||||
import art.arcane.iris.spi.PlatformScheduler;
|
import art.arcane.iris.spi.PlatformScheduler;
|
||||||
import art.arcane.iris.spi.PlatformStructureHooks;
|
import art.arcane.iris.spi.PlatformStructureHooks;
|
||||||
import art.arcane.iris.spi.PlatformWorld;
|
import art.arcane.iris.spi.PlatformWorld;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
import art.arcane.volmlib.util.collection.KMap;
|
import art.arcane.volmlib.util.collection.KMap;
|
||||||
import art.arcane.volmlib.util.json.JSONArray;
|
import art.arcane.volmlib.util.json.JSONArray;
|
||||||
import art.arcane.volmlib.util.json.JSONObject;
|
import art.arcane.volmlib.util.json.JSONObject;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -76,6 +78,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class SchemaBuilderParityTest {
|
public class SchemaBuilderParityTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private static final List<String> POTION_KEYS = List.of("minecraft:speed", "minecraft:slow_falling", "sniffer_mod:mega_boost");
|
private static final List<String> POTION_KEYS = List.of("minecraft:speed", "minecraft:slow_falling", "sniffer_mod:mega_boost");
|
||||||
private static final List<String> ENCHANT_KEYS = List.of("minecraft:sharpness", "cool_mod:vorpal");
|
private static final List<String> ENCHANT_KEYS = List.of("minecraft:sharpness", "cool_mod:vorpal");
|
||||||
private static final List<String> ITEM_KEYS = List.of("minecraft:stone", "minecraft:diamond_sword", "cool_mod:ruby");
|
private static final List<String> ITEM_KEYS = List.of("minecraft:stone", "minecraft:diamond_sword", "cool_mod:ruby");
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.common.scheduling.J;
|
import art.arcane.iris.util.common.scheduling.J;
|
||||||
import art.arcane.volmlib.util.board.Board;
|
import art.arcane.volmlib.util.board.Board;
|
||||||
import art.arcane.volmlib.util.board.BoardSettings;
|
import art.arcane.volmlib.util.board.BoardSettings;
|
||||||
@@ -24,6 +25,7 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
@@ -53,6 +55,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class BoardSVCSavedBiomeTest {
|
public class BoardSVCSavedBiomeTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private static IrisPlatform previousPlatform;
|
private static IrisPlatform previousPlatform;
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import art.arcane.iris.core.runtime.jigsaw.JigsawStudioPieceRules;
|
|||||||
import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolAction;
|
import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolAction;
|
||||||
import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolPayload;
|
import art.arcane.iris.core.runtime.jigsaw.JigsawStudioToolPayload;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.common.scheduling.J;
|
import art.arcane.iris.util.common.scheduling.J;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@@ -15,6 +16,7 @@ import org.bukkit.World;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.MockedStatic;
|
import org.mockito.MockedStatic;
|
||||||
|
|
||||||
@@ -41,6 +43,9 @@ import static org.mockito.Mockito.verifyNoInteractions;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class JigsawStudioMenuControllerTest {
|
public class JigsawStudioMenuControllerTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private static final UUID WORLD_ID = UUID.fromString("22222222-2222-2222-2222-222222222222");
|
private static final UUID WORLD_ID = UUID.fromString("22222222-2222-2222-2222-222222222222");
|
||||||
private static final UUID REQUEST_ID = UUID.fromString("77777777-7777-7777-7777-777777777777");
|
private static final UUID REQUEST_ID = UUID.fromString("77777777-7777-7777-7777-777777777777");
|
||||||
private static final JigsawStudioPieceRules RULES = new JigsawStudioPieceRules(1, 12, 2, 8, false);
|
private static final JigsawStudioPieceRules RULES = new JigsawStudioPieceRules(1, 12, 2, 8, false);
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.common.data.B;
|
import art.arcane.iris.util.common.data.B;
|
||||||
import art.arcane.iris.util.common.math.IrisBlockVector;
|
import art.arcane.iris.util.common.math.IrisBlockVector;
|
||||||
import art.arcane.iris.util.common.plugin.VolmitPlugin;
|
import art.arcane.iris.util.common.plugin.VolmitPlugin;
|
||||||
@@ -72,6 +73,7 @@ import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
|||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.bukkit.event.world.ChunkLoadEvent;
|
import org.bukkit.event.world.ChunkLoadEvent;
|
||||||
import org.bukkit.event.world.WorldUnloadEvent;
|
import org.bukkit.event.world.WorldUnloadEvent;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.MockedStatic;
|
import org.mockito.MockedStatic;
|
||||||
|
|
||||||
@@ -115,6 +117,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class JigsawStudioServiceCaptureTest {
|
public class JigsawStudioServiceCaptureTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shutdownQuiesceIsIdempotentAndResetsOnEnable() throws Exception {
|
public void shutdownQuiesceIsIdempotentAndResetsOnEnable() throws Exception {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import art.arcane.iris.core.link.MultiverseCoreLink;
|
|||||||
import art.arcane.iris.core.link.MultiverseGuardListener;
|
import art.arcane.iris.core.link.MultiverseGuardListener;
|
||||||
import art.arcane.iris.platform.bukkit.BukkitPlatform;
|
import art.arcane.iris.platform.bukkit.BukkitPlatform;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.common.plugin.VolmitPlugin;
|
import art.arcane.iris.util.common.plugin.VolmitPlugin;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@@ -11,6 +12,7 @@ import org.bukkit.event.server.PluginDisableEvent;
|
|||||||
import org.bukkit.event.server.PluginEnableEvent;
|
import org.bukkit.event.server.PluginEnableEvent;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.MockedStatic;
|
import org.mockito.MockedStatic;
|
||||||
|
|
||||||
@@ -24,6 +26,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class MultiverseSVCTest {
|
public class MultiverseSVCTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void unbindLink() {
|
public void unbindLink() {
|
||||||
IrisServices.remove(MultiverseCoreLink.class);
|
IrisServices.remove(MultiverseCoreLink.class);
|
||||||
|
|||||||
@@ -8,9 +8,11 @@ import art.arcane.iris.core.pack.PackValidationRegistry;
|
|||||||
import art.arcane.iris.core.pack.PackValidationResult;
|
import art.arcane.iris.core.pack.PackValidationResult;
|
||||||
import art.arcane.iris.engine.framework.PreservationRegistry;
|
import art.arcane.iris.engine.framework.PreservationRegistry;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.Assume;
|
import org.junit.Assume;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -32,6 +34,9 @@ import static org.junit.Assert.assertTrue;
|
|||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
public class StudioSVCWorldPackPublishTest {
|
public class StudioSVCWorldPackPublishTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ import art.arcane.iris.engine.history.GenerationPackFingerprint;
|
|||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformStructureHooks;
|
import art.arcane.iris.spi.PlatformStructureHooks;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -30,6 +32,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class StructureIndexServiceTest {
|
public class StructureIndexServiceTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
+5
@@ -4,8 +4,10 @@ import art.arcane.iris.core.loader.IrisData;
|
|||||||
import art.arcane.iris.engine.framework.MeteredCache;
|
import art.arcane.iris.engine.framework.MeteredCache;
|
||||||
import art.arcane.iris.engine.framework.PreservationRegistry;
|
import art.arcane.iris.engine.framework.PreservationRegistry;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -22,6 +24,9 @@ import static org.junit.Assert.assertArrayEquals;
|
|||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
|
|
||||||
public class IrisDataStructureRecoveryTest {
|
public class IrisDataStructureRecoveryTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
+5
@@ -20,6 +20,7 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
import art.arcane.volmlib.util.nbt.io.NBTUtil;
|
import art.arcane.volmlib.util.nbt.io.NBTUtil;
|
||||||
import art.arcane.volmlib.util.nbt.tag.CompoundTag;
|
import art.arcane.volmlib.util.nbt.tag.CompoundTag;
|
||||||
@@ -28,6 +29,7 @@ import com.google.gson.JsonObject;
|
|||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -53,6 +55,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class VanillaJigsawDatapackExporterTest {
|
public class VanillaJigsawDatapackExporterTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private static PlatformBlockState stone;
|
private static PlatformBlockState stone;
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ package art.arcane.iris.core.tools;
|
|||||||
|
|
||||||
import art.arcane.iris.core.service.StudioSVC;
|
import art.arcane.iris.core.service.StudioSVC;
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.lang.reflect.Proxy;
|
import java.lang.reflect.Proxy;
|
||||||
@@ -14,6 +16,9 @@ import static org.junit.Assert.assertNull;
|
|||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
public class IrisToolbeltPackReferenceTest {
|
public class IrisToolbeltPackReferenceTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void cleanServices() {
|
public void cleanServices() {
|
||||||
IrisServices.remove(StudioSVC.class);
|
IrisServices.remove(StudioSVC.class);
|
||||||
|
|||||||
@@ -1,13 +1,10 @@
|
|||||||
package art.arcane.iris.core.tools;
|
package art.arcane.iris.core.tools;
|
||||||
|
|
||||||
import art.arcane.iris.engine.object.IrisObject;
|
import art.arcane.iris.engine.object.IrisObject;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.util.common.math.IrisBlockVector;
|
import art.arcane.iris.util.common.math.IrisBlockVector;
|
||||||
import org.junit.AfterClass;
|
import org.junit.ClassRule;
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayDeque;
|
import java.util.ArrayDeque;
|
||||||
@@ -22,11 +19,11 @@ import static org.junit.Assert.assertEquals;
|
|||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Mockito.mock;
|
|
||||||
import static org.mockito.Mockito.when;
|
|
||||||
|
|
||||||
public class TreePlausibilizerTest {
|
public class TreePlausibilizerTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformBinding PLATFORM = PlatformBinding.mockPlatform();
|
||||||
|
|
||||||
private static final String OAK_LOG = "minecraft:oak_log[axis=y]";
|
private static final String OAK_LOG = "minecraft:oak_log[axis=y]";
|
||||||
private static final String BIRCH_LOG = "minecraft:birch_log[axis=y]";
|
private static final String BIRCH_LOG = "minecraft:birch_log[axis=y]";
|
||||||
private static final String OAK_LEAVES = "minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false]";
|
private static final String OAK_LEAVES = "minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false]";
|
||||||
@@ -42,22 +39,6 @@ public class TreePlausibilizerTest {
|
|||||||
private record Pos(int x, int y, int z) {
|
private record Pos(int x, int y, int z) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void bindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState defaultBlock = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(defaultBlock);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterClass
|
|
||||||
public static void unbindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final class TestState implements PlatformBlockState {
|
private static final class TestState implements PlatformBlockState {
|
||||||
private final String key;
|
private final String key;
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import art.arcane.iris.spi.IrisPlatforms;
|
|||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
import art.arcane.iris.testsupport.DurabilityMode;
|
import art.arcane.iris.testsupport.DurabilityMode;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.ClassRule;
|
import org.junit.ClassRule;
|
||||||
@@ -71,6 +72,9 @@ import static org.mockito.Mockito.verifyNoInteractions;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class EngineShutdownDrainTest {
|
public class EngineShutdownDrainTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@ClassRule
|
@ClassRule
|
||||||
public static final DurabilityMode DURABILITY = DurabilityMode.relaxed();
|
public static final DurabilityMode DURABILITY = DurabilityMode.relaxed();
|
||||||
|
|
||||||
|
|||||||
@@ -17,11 +17,13 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.project.context.ChunkContext;
|
import art.arcane.iris.util.project.context.ChunkContext;
|
||||||
import art.arcane.iris.util.project.context.IrisContext;
|
import art.arcane.iris.util.project.context.IrisContext;
|
||||||
import art.arcane.iris.util.project.hunk.Hunk;
|
import art.arcane.iris.util.project.hunk.Hunk;
|
||||||
import art.arcane.iris.util.project.stream.ProceduralStream;
|
import art.arcane.iris.util.project.stream.ProceduralStream;
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.MockedStatic;
|
import org.mockito.MockedStatic;
|
||||||
|
|
||||||
@@ -59,6 +61,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public final class ResolvedTerrainProviderTest {
|
public final class ResolvedTerrainProviderTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void cachedTransitionTerrainRetainsDeferredBlocksWhenCopied() {
|
public void cachedTransitionTerrainRetainsDeferredBlocksWhenCopied() {
|
||||||
Fixture fixture = new Fixture();
|
Fixture fixture = new Fixture();
|
||||||
|
|||||||
+5
@@ -13,6 +13,7 @@ import art.arcane.iris.spi.PlatformBlockState;
|
|||||||
import art.arcane.iris.spi.PlatformBiome;
|
import art.arcane.iris.spi.PlatformBiome;
|
||||||
import art.arcane.iris.spi.PlatformBiomeWriter;
|
import art.arcane.iris.spi.PlatformBiomeWriter;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.project.context.ChunkContext;
|
import art.arcane.iris.util.project.context.ChunkContext;
|
||||||
import art.arcane.iris.util.project.context.ChunkedDataCache;
|
import art.arcane.iris.util.project.context.ChunkedDataCache;
|
||||||
import art.arcane.iris.util.project.hunk.Hunk;
|
import art.arcane.iris.util.project.hunk.Hunk;
|
||||||
@@ -21,6 +22,7 @@ import art.arcane.volmlib.util.math.RNG;
|
|||||||
import art.arcane.volmlib.util.matter.Matter;
|
import art.arcane.volmlib.util.matter.Matter;
|
||||||
import art.arcane.volmlib.util.matter.MatterBiomeInject;
|
import art.arcane.volmlib.util.matter.MatterBiomeInject;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -43,6 +45,9 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisBiomeActuatorCoordinateTest {
|
public class IrisBiomeActuatorCoordinateTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void unbindPlatform() {
|
public void unbindPlatform() {
|
||||||
IrisPlatforms.unbind();
|
IrisPlatforms.unbind();
|
||||||
|
|||||||
+5
@@ -7,6 +7,7 @@ import art.arcane.iris.spi.PlatformBlockState;
|
|||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction;
|
import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction;
|
||||||
import art.arcane.iris.engine.mantle.TerrainMatterView;
|
import art.arcane.iris.engine.mantle.TerrainMatterView;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.project.matter.IrisMatterSupport;
|
import art.arcane.iris.util.project.matter.IrisMatterSupport;
|
||||||
import art.arcane.iris.util.project.matter.slices.PreObjectMatterTest;
|
import art.arcane.iris.util.project.matter.slices.PreObjectMatterTest;
|
||||||
import art.arcane.volmlib.util.matter.IrisMatter;
|
import art.arcane.volmlib.util.matter.IrisMatter;
|
||||||
@@ -23,6 +24,7 @@ import art.arcane.volmlib.util.matter.Matter;
|
|||||||
import art.arcane.volmlib.util.matter.MatterSlice;
|
import art.arcane.volmlib.util.matter.MatterSlice;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
import static org.mockito.ArgumentMatchers.anyString;
|
||||||
@@ -32,6 +34,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisDimensionStackActuatorMetadataTest {
|
public class IrisDimensionStackActuatorMetadataTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void bindPlatform() {
|
public void bindPlatform() {
|
||||||
IrisPlatforms.unbind();
|
IrisPlatforms.unbind();
|
||||||
|
|||||||
+4
-26
@@ -9,14 +9,11 @@ import art.arcane.iris.engine.object.IrisDecorationStep;
|
|||||||
import art.arcane.iris.engine.object.IrisMaterialPalette;
|
import art.arcane.iris.engine.object.IrisMaterialPalette;
|
||||||
import art.arcane.iris.engine.object.IrisRiverMaterialConfig;
|
import art.arcane.iris.engine.object.IrisRiverMaterialConfig;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
import art.arcane.volmlib.util.math.RNG;
|
import art.arcane.volmlib.util.math.RNG;
|
||||||
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.After;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -28,7 +25,6 @@ import static org.junit.Assert.assertNull;
|
|||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyDouble;
|
import static org.mockito.ArgumentMatchers.anyDouble;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.ArgumentMatchers.same;
|
import static org.mockito.ArgumentMatchers.same;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
@@ -37,27 +33,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisTerrainNormalActuatorHydrologyTest {
|
public class IrisTerrainNormalActuatorHydrologyTest {
|
||||||
private IrisPlatform previousPlatform;
|
@Rule
|
||||||
|
public final PlatformBinding platform = PlatformBinding.mockPlatform();
|
||||||
|
|
||||||
@Before
|
|
||||||
public void bindPlatform() {
|
|
||||||
previousPlatform = IrisPlatforms.isBound() ? IrisPlatforms.get() : null;
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState block = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(block);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
|
||||||
public void restorePlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
if (previousPlatform != null) {
|
|
||||||
IrisPlatforms.bind(previousPlatform);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void hydrologyOwnedFluidBypassesBiomeSeaLayers() {
|
public void hydrologyOwnedFluidBypassesBiomeSeaLayers() {
|
||||||
|
|||||||
+5
@@ -12,10 +12,12 @@ import art.arcane.iris.spi.IrisPlatforms;
|
|||||||
import art.arcane.iris.spi.PlatformBiome;
|
import art.arcane.iris.spi.PlatformBiome;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.project.context.ChunkContext;
|
import art.arcane.iris.util.project.context.ChunkContext;
|
||||||
import art.arcane.iris.util.project.hunk.Hunk;
|
import art.arcane.iris.util.project.hunk.Hunk;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -31,6 +33,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisTransitionGeometryActuatorTest {
|
public class IrisTransitionGeometryActuatorTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private IrisPlatform previous;
|
private IrisPlatform previous;
|
||||||
private PlatformRegistries registries;
|
private PlatformRegistries registries;
|
||||||
private PlatformBlockState stone;
|
private PlatformBlockState stone;
|
||||||
|
|||||||
@@ -14,7 +14,9 @@ import art.arcane.iris.spi.PlatformBlockState;
|
|||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.project.hunk.Hunk;
|
import art.arcane.iris.util.project.hunk.Hunk;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
@@ -31,6 +33,9 @@ import static org.mockito.Mockito.doReturn;
|
|||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
public class IrisDecoratorCaveContextTest {
|
public class IrisDecoratorCaveContextTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void bindPlatform() {
|
public static void bindPlatform() {
|
||||||
IrisPlatforms.unbind();
|
IrisPlatforms.unbind();
|
||||||
|
|||||||
@@ -14,10 +14,12 @@ import art.arcane.iris.spi.PlatformBlockState;
|
|||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.project.hunk.Hunk;
|
import art.arcane.iris.util.project.hunk.Hunk;
|
||||||
import art.arcane.iris.util.project.stream.ProceduralStream;
|
import art.arcane.iris.util.project.stream.ProceduralStream;
|
||||||
import org.bukkit.block.BlockSupport;
|
import org.bukkit.block.BlockSupport;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
@@ -35,6 +37,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisShoreLineDecoratorTest {
|
public class IrisShoreLineDecoratorTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private static final int FLUID_HEIGHT = 4;
|
private static final int FLUID_HEIGHT = 4;
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
|
|||||||
@@ -19,8 +19,10 @@
|
|||||||
package art.arcane.iris.engine.framework;
|
package art.arcane.iris.engine.framework;
|
||||||
|
|
||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.math.RollingSequence;
|
import art.arcane.volmlib.util.math.RollingSequence;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
@@ -28,6 +30,9 @@ import java.util.concurrent.atomic.AtomicReference;
|
|||||||
import static org.junit.Assert.assertSame;
|
import static org.junit.Assert.assertSame;
|
||||||
|
|
||||||
public class EngineComponentTest {
|
public class EngineComponentTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void removeCleanup() {
|
public void removeCleanup() {
|
||||||
IrisServices.remove(EngineComponentCleanup.class);
|
IrisServices.remove(EngineComponentCleanup.class);
|
||||||
|
|||||||
@@ -12,8 +12,10 @@ import art.arcane.iris.spi.PlatformBiome;
|
|||||||
import art.arcane.iris.spi.PlatformBiomeWriter;
|
import art.arcane.iris.spi.PlatformBiomeWriter;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -30,6 +32,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class EngineHostHeightTest {
|
public class EngineHostHeightTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void bindPlatform() {
|
public void bindPlatform() {
|
||||||
IrisPlatforms.unbind();
|
IrisPlatforms.unbind();
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
package art.arcane.iris.engine.framework;
|
package art.arcane.iris.engine.framework;
|
||||||
|
|
||||||
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.util.common.parallel.MultiBurst;
|
import art.arcane.iris.util.common.parallel.MultiBurst;
|
||||||
import art.arcane.iris.util.project.context.ChunkContext;
|
import art.arcane.iris.util.project.context.ChunkContext;
|
||||||
import art.arcane.iris.core.IrisSettings;
|
import art.arcane.iris.core.IrisSettings;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -19,29 +17,24 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
|||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Mockito.CALLS_REAL_METHODS;
|
import static org.mockito.Mockito.CALLS_REAL_METHODS;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class EngineModeBurstAroundTest {
|
public class EngineModeBurstAroundTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformBinding PLATFORM = PlatformBinding.mockPlatform();
|
||||||
|
|
||||||
private static IrisSettings previousSettings;
|
private static IrisSettings previousSettings;
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void bindPlatform() {
|
public static void bindPlatform() {
|
||||||
previousSettings = IrisSettings.settings;
|
previousSettings = IrisSettings.settings;
|
||||||
IrisSettings.settings = new IrisSettings();
|
IrisSettings.settings = new IrisSettings();
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(mock(PlatformBlockState.class));
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass
|
@AfterClass
|
||||||
public static void unbindPlatform() {
|
public static void unbindPlatform() {
|
||||||
IrisPlatforms.unbind();
|
|
||||||
IrisSettings.settings = previousSettings;
|
IrisSettings.settings = previousSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime;
|
|||||||
import art.arcane.iris.engine.history.GenerationSemanticIndex;
|
import art.arcane.iris.engine.history.GenerationSemanticIndex;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.project.stream.ProceduralStream;
|
import art.arcane.iris.util.project.stream.ProceduralStream;
|
||||||
import art.arcane.iris.util.project.stream.interpolation.Interpolated;
|
import art.arcane.iris.util.project.stream.interpolation.Interpolated;
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
@@ -24,6 +25,7 @@ import art.arcane.volmlib.util.math.Position2;
|
|||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -50,6 +52,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class HintedLocatorTest {
|
public class HintedLocatorTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private static boolean boundPlatform;
|
private static boolean boundPlatform;
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
|
|||||||
+4
-22
@@ -34,13 +34,9 @@ import art.arcane.iris.engine.object.IrisObject;
|
|||||||
import art.arcane.iris.engine.object.IrisPosition;
|
import art.arcane.iris.engine.object.IrisPosition;
|
||||||
import art.arcane.iris.engine.object.IrisStructure;
|
import art.arcane.iris.engine.object.IrisStructure;
|
||||||
import art.arcane.iris.engine.object.JigsawJoint;
|
import art.arcane.iris.engine.object.JigsawJoint;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
|
||||||
import art.arcane.volmlib.util.math.RNG;
|
import art.arcane.volmlib.util.math.RNG;
|
||||||
import org.junit.AfterClass;
|
import org.junit.ClassRule;
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -48,26 +44,12 @@ import java.util.List;
|
|||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class StructureAssemblerCompatTest {
|
public class StructureAssemblerCompatTest {
|
||||||
@BeforeClass
|
@ClassRule
|
||||||
public static void bindPlatform() {
|
public static final PlatformBinding PLATFORM = PlatformBinding.mockPlatform();
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState block = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(block);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterClass
|
|
||||||
public static void unbindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void anExcludedPieceIsNeverDrawnFromItsPool() {
|
public void anExcludedPieceIsNeverDrawnFromItsPool() {
|
||||||
|
|||||||
@@ -34,13 +34,9 @@ import art.arcane.iris.engine.object.IrisObject;
|
|||||||
import art.arcane.iris.engine.object.IrisPosition;
|
import art.arcane.iris.engine.object.IrisPosition;
|
||||||
import art.arcane.iris.engine.object.IrisStructure;
|
import art.arcane.iris.engine.object.IrisStructure;
|
||||||
import art.arcane.iris.engine.object.JigsawJoint;
|
import art.arcane.iris.engine.object.JigsawJoint;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
|
||||||
import art.arcane.volmlib.util.math.RNG;
|
import art.arcane.volmlib.util.math.RNG;
|
||||||
import org.junit.AfterClass;
|
import org.junit.ClassRule;
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -50,26 +46,12 @@ import static org.junit.Assert.assertFalse;
|
|||||||
import static org.junit.Assert.assertSame;
|
import static org.junit.Assert.assertSame;
|
||||||
import static org.junit.Assert.assertThrows;
|
import static org.junit.Assert.assertThrows;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class StructureAssemblerTest {
|
public class StructureAssemblerTest {
|
||||||
@BeforeClass
|
@ClassRule
|
||||||
public static void bindPlatform() {
|
public static final PlatformBinding PLATFORM = PlatformBinding.mockPlatform();
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState block = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(block);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterClass
|
|
||||||
public static void unbindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void attachedNonRotatablePieceKeepsItsAuthoredFacing() {
|
public void attachedNonRotatablePieceKeepsItsAuthoredFacing() {
|
||||||
|
|||||||
+4
-22
@@ -5,14 +5,10 @@ import art.arcane.iris.engine.object.IrisStructureAnchorMode;
|
|||||||
import art.arcane.iris.engine.object.IrisStructurePlacement;
|
import art.arcane.iris.engine.object.IrisStructurePlacement;
|
||||||
import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction;
|
import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction;
|
||||||
import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell;
|
import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
|
||||||
import art.arcane.volmlib.util.math.RNG;
|
import art.arcane.volmlib.util.math.RNG;
|
||||||
import art.arcane.volmlib.util.matter.MatterCavern;
|
import art.arcane.volmlib.util.matter.MatterCavern;
|
||||||
import org.junit.After;
|
import org.junit.Rule;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -27,7 +23,6 @@ import static org.junit.Assert.assertNotNull;
|
|||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
|
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
@@ -36,21 +31,8 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class StructureCaveAnchorResolverTest {
|
public class StructureCaveAnchorResolverTest {
|
||||||
@Before
|
@Rule
|
||||||
public void bindPlatform() {
|
public final PlatformBinding platform = PlatformBinding.mockPlatform();
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState block = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(block);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
|
||||||
public void unbindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void floorRequiresSolidBoundaryAndUpwardClearance() {
|
public void floorRequiresSolidBoundaryAndUpwardClearance() {
|
||||||
|
|||||||
+5
@@ -24,6 +24,8 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformStructureHooks;
|
import art.arcane.iris.spi.PlatformStructureHooks;
|
||||||
import art.arcane.iris.spi.PlatformWorld;
|
import art.arcane.iris.spi.PlatformWorld;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -35,6 +37,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class StructureReachabilityContractTest {
|
public class StructureReachabilityContractTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void reachableKeysRejectsNullEngine() {
|
public void reachableKeysRejectsNullEngine() {
|
||||||
assertThrows(NullPointerException.class, () -> StructureReachability.reachableKeys(null));
|
assertThrows(NullPointerException.class, () -> StructureReachability.reachableKeys(null));
|
||||||
|
|||||||
+4
-24
@@ -14,13 +14,9 @@ import art.arcane.iris.engine.object.IrisObject;
|
|||||||
import art.arcane.iris.engine.object.IrisPosition;
|
import art.arcane.iris.engine.object.IrisPosition;
|
||||||
import art.arcane.iris.engine.object.IrisStructure;
|
import art.arcane.iris.engine.object.IrisStructure;
|
||||||
import art.arcane.iris.engine.object.JigsawJoint;
|
import art.arcane.iris.engine.object.JigsawJoint;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
import org.junit.AfterClass;
|
import org.junit.ClassRule;
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -31,26 +27,10 @@ import java.util.Map;
|
|||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Mockito.mock;
|
|
||||||
import static org.mockito.Mockito.when;
|
|
||||||
|
|
||||||
public class StructureGraphCompilerTest {
|
public class StructureGraphCompilerTest {
|
||||||
@BeforeClass
|
@ClassRule
|
||||||
public static void bindPlatform() {
|
public static final PlatformBinding PLATFORM = PlatformBinding.mockPlatform();
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState block = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(block);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterClass
|
|
||||||
public static void unbindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void compilesACompleteTerminalGraphAndSamplesDeterministically() {
|
public void compilesACompleteTerminalGraphAndSamplesDeterministically() {
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformGenerationRegistry;
|
import art.arcane.iris.spi.PlatformGenerationRegistry;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -27,6 +29,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class ArchivedRegistryCompilerTest {
|
public class ArchivedRegistryCompilerTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public final TemporaryFolder temporary = new TemporaryFolder();
|
public final TemporaryFolder temporary = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
+5
@@ -9,6 +9,8 @@ import art.arcane.iris.core.IrisSettings;
|
|||||||
import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan;
|
import art.arcane.iris.engine.hydrology.cave.HydrologyCavePlan;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -23,6 +25,9 @@ import static org.junit.Assert.assertTrue;
|
|||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
public class HydrologyPlannerCrossTileCaveAdmissionIntegrationTest {
|
public class HydrologyPlannerCrossTileCaveAdmissionIntegrationTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private static final long SEED = 77L;
|
private static final long SEED = 77L;
|
||||||
private static final List<TilePair> ADJACENT_PAIRS = List.of(
|
private static final List<TilePair> ADJACENT_PAIRS = List.of(
|
||||||
new TilePair(new HydrologyTileKey(0, -2), new HydrologyTileKey(0, -1)),
|
new TilePair(new HydrologyTileKey(0, -2), new HydrologyTileKey(0, -1)),
|
||||||
|
|||||||
@@ -3,10 +3,8 @@ package art.arcane.iris.engine.mantle;
|
|||||||
import art.arcane.iris.core.link.Identifier;
|
import art.arcane.iris.core.link.Identifier;
|
||||||
import art.arcane.iris.engine.framework.TreeBlockMaterial;
|
import art.arcane.iris.engine.framework.TreeBlockMaterial;
|
||||||
import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell;
|
import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.util.project.matter.PreObjectMatterCell;
|
import art.arcane.iris.util.project.matter.PreObjectMatterCell;
|
||||||
import art.arcane.iris.util.project.matter.TileWrapper;
|
import art.arcane.iris.util.project.matter.TileWrapper;
|
||||||
import art.arcane.volmlib.util.mantle.flag.MantleFlag;
|
import art.arcane.volmlib.util.mantle.flag.MantleFlag;
|
||||||
@@ -15,7 +13,7 @@ import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
|||||||
import art.arcane.volmlib.util.matter.Matter;
|
import art.arcane.volmlib.util.matter.Matter;
|
||||||
import art.arcane.volmlib.util.matter.MatterCavern;
|
import art.arcane.volmlib.util.matter.MatterCavern;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.InOrder;
|
import org.mockito.InOrder;
|
||||||
|
|
||||||
@@ -27,7 +25,6 @@ import static org.junit.Assert.assertFalse;
|
|||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.Answers.CALLS_REAL_METHODS;
|
import static org.mockito.Answers.CALLS_REAL_METHODS;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.doAnswer;
|
import static org.mockito.Mockito.doAnswer;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
@@ -38,20 +35,11 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class EngineMantleCleanupTest {
|
public class EngineMantleCleanupTest {
|
||||||
@Before
|
@Rule
|
||||||
public void bindPlatform() {
|
public final PlatformBinding platform = PlatformBinding.mockPlatform();
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState block = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(block);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void unbindPlatform() {
|
public void unbindPlatform() {
|
||||||
IrisPlatforms.unbind();
|
|
||||||
MantleSliceRetention.clearForTesting();
|
MantleSliceRetention.clearForTesting();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,12 +5,14 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.mantle.flag.MantleFlag;
|
import art.arcane.volmlib.util.mantle.flag.MantleFlag;
|
||||||
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
||||||
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
||||||
import art.arcane.volmlib.util.matter.Matter;
|
import art.arcane.volmlib.util.matter.Matter;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -34,6 +36,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class EngineMantleCoverageTest {
|
public class EngineMantleCoverageTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void bindPlatform() {
|
public void bindPlatform() {
|
||||||
IrisPlatforms.unbind();
|
IrisPlatforms.unbind();
|
||||||
|
|||||||
@@ -3,24 +3,19 @@ package art.arcane.iris.engine.mantle;
|
|||||||
import art.arcane.iris.engine.framework.Engine;
|
import art.arcane.iris.engine.framework.Engine;
|
||||||
import art.arcane.iris.engine.framework.EnginePlatformHooks;
|
import art.arcane.iris.engine.framework.EnginePlatformHooks;
|
||||||
import art.arcane.iris.engine.object.IrisPosition;
|
import art.arcane.iris.engine.object.IrisPosition;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
import art.arcane.volmlib.util.function.Consumer4;
|
import art.arcane.volmlib.util.function.Consumer4;
|
||||||
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
||||||
import art.arcane.volmlib.util.matter.Matter;
|
import art.arcane.volmlib.util.matter.Matter;
|
||||||
import art.arcane.volmlib.util.matter.MatterMarker;
|
import art.arcane.volmlib.util.matter.MatterMarker;
|
||||||
import org.junit.After;
|
import org.junit.Rule;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.Answers.CALLS_REAL_METHODS;
|
import static org.mockito.Answers.CALLS_REAL_METHODS;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.doAnswer;
|
import static org.mockito.Mockito.doAnswer;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
@@ -28,21 +23,8 @@ import static org.mockito.Mockito.verifyNoInteractions;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class EngineMantleMarkerTest {
|
public class EngineMantleMarkerTest {
|
||||||
@Before
|
@Rule
|
||||||
public void bindPlatform() {
|
public final PlatformBinding platform = PlatformBinding.mockPlatform();
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState block = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(block);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
|
||||||
public void unbindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
|
|||||||
@@ -7,17 +7,15 @@ import art.arcane.iris.engine.history.TransitionGenerationPlan;
|
|||||||
import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction;
|
import art.arcane.iris.engine.hydrology.cave.HydrologyCaveAction;
|
||||||
import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell;
|
import art.arcane.iris.engine.hydrology.cave.HydrologyCaveCell;
|
||||||
import art.arcane.iris.engine.object.IrisDimension;
|
import art.arcane.iris.engine.object.IrisDimension;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
||||||
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
||||||
import art.arcane.volmlib.util.matter.Matter;
|
import art.arcane.volmlib.util.matter.Matter;
|
||||||
import art.arcane.volmlib.util.matter.MatterCavern;
|
import art.arcane.volmlib.util.matter.MatterCavern;
|
||||||
import art.arcane.volmlib.util.matter.MatterSlice;
|
import art.arcane.volmlib.util.matter.MatterSlice;
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
@@ -26,13 +24,15 @@ import static org.junit.Assert.assertTrue;
|
|||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class MantleWriterOverlayTest {
|
public class MantleWriterOverlayTest {
|
||||||
|
@Rule
|
||||||
|
public final PlatformBinding platform = PlatformBinding.mockPlatform();
|
||||||
|
|
||||||
private static final int X = 1;
|
private static final int X = 1;
|
||||||
private static final int Y = 2;
|
private static final int Y = 2;
|
||||||
private static final int Z = 3;
|
private static final int Z = 3;
|
||||||
@@ -51,14 +51,6 @@ public class MantleWriterOverlayTest {
|
|||||||
@Before
|
@Before
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState defaultBlock = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(defaultBlock);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
|
|
||||||
engineMantle = mock(EngineMantle.class);
|
engineMantle = mock(EngineMantle.class);
|
||||||
Engine engine = mock(Engine.class);
|
Engine engine = mock(Engine.class);
|
||||||
dimension = mock(IrisDimension.class);
|
dimension = mock(IrisDimension.class);
|
||||||
@@ -92,11 +84,6 @@ public class MantleWriterOverlayTest {
|
|||||||
writer = new MantleWriter(engineMantle, mantle, 0, 0, 0, false);
|
writer = new MantleWriter(engineMantle, mantle, 0, 0, 0, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
|
||||||
public void tearDown() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void existingCavernStillClearsBlockAndDeferredPlacement() {
|
public void existingCavernStillClearsBlockAndDeferredPlacement() {
|
||||||
MatterCavern existing = new MatterCavern(true, "", (byte) 3);
|
MatterCavern existing = new MatterCavern(true, "", (byte) 3);
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import art.arcane.iris.spi.IrisPlatforms;
|
|||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
import art.arcane.iris.testsupport.BukkitTestServer;
|
import art.arcane.iris.testsupport.BukkitTestServer;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.project.matter.IrisMatterSupport;
|
import art.arcane.iris.util.project.matter.IrisMatterSupport;
|
||||||
import art.arcane.iris.util.project.matter.PreObjectMatterCell;
|
import art.arcane.iris.util.project.matter.PreObjectMatterCell;
|
||||||
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
||||||
@@ -18,6 +19,7 @@ import art.arcane.volmlib.util.matter.MatterSlice;
|
|||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
@@ -37,6 +39,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class MantleWriterPreObjectJournalTest {
|
public class MantleWriterPreObjectJournalTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private static final int X = 2;
|
private static final int X = 2;
|
||||||
private static final int Y = 5;
|
private static final int Y = 5;
|
||||||
private static final int Z = 4;
|
private static final int Z = 4;
|
||||||
|
|||||||
+4
-27
@@ -3,18 +3,14 @@ package art.arcane.iris.engine.mantle;
|
|||||||
import art.arcane.iris.engine.framework.Engine;
|
import art.arcane.iris.engine.framework.Engine;
|
||||||
import art.arcane.iris.engine.framework.EnginePlatformHooks;
|
import art.arcane.iris.engine.framework.EnginePlatformHooks;
|
||||||
import art.arcane.iris.engine.object.IrisDimension;
|
import art.arcane.iris.engine.object.IrisDimension;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
|
||||||
import art.arcane.iris.util.project.context.ChunkContext;
|
import art.arcane.iris.util.project.context.ChunkContext;
|
||||||
import art.arcane.volmlib.util.mantle.flag.MantleFlag;
|
import art.arcane.volmlib.util.mantle.flag.MantleFlag;
|
||||||
import art.arcane.volmlib.util.mantle.flag.ReservedFlag;
|
import art.arcane.volmlib.util.mantle.flag.ReservedFlag;
|
||||||
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
||||||
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
||||||
import art.arcane.volmlib.util.matter.Matter;
|
import art.arcane.volmlib.util.matter.Matter;
|
||||||
import org.junit.AfterClass;
|
import org.junit.ClassRule;
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
@@ -25,33 +21,14 @@ import static org.junit.Assert.assertEquals;
|
|||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Mockito.doAnswer;
|
import static org.mockito.Mockito.doAnswer;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class MatterGeneratorCarvePassRadiusTest {
|
public class MatterGeneratorCarvePassRadiusTest {
|
||||||
private static IrisPlatform previousPlatform;
|
@ClassRule
|
||||||
|
public static final PlatformBinding PLATFORM = PlatformBinding.mockPlatform();
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void bindPlatform() {
|
|
||||||
previousPlatform = IrisPlatforms.isBound() ? IrisPlatforms.get() : null;
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState air = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(air);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterClass
|
|
||||||
public static void restorePlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
if (previousPlatform != null) {
|
|
||||||
IrisPlatforms.bind(previousPlatform);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.project.matter.IrisMatterSupport;
|
import art.arcane.iris.util.project.matter.IrisMatterSupport;
|
||||||
import art.arcane.iris.util.project.matter.PreObjectMatterCell;
|
import art.arcane.iris.util.project.matter.PreObjectMatterCell;
|
||||||
import art.arcane.iris.util.project.matter.slices.PreObjectMatterTest;
|
import art.arcane.iris.util.project.matter.slices.PreObjectMatterTest;
|
||||||
@@ -17,6 +18,7 @@ import art.arcane.volmlib.util.matter.IrisMatter;
|
|||||||
import art.arcane.volmlib.util.matter.Matter;
|
import art.arcane.volmlib.util.matter.Matter;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -39,6 +41,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class ResolvedTerrainPlacementTest {
|
public class ResolvedTerrainPlacementTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private EngineMantle engineMantle;
|
private EngineMantle engineMantle;
|
||||||
private Mantle<Matter> mantle;
|
private Mantle<Matter> mantle;
|
||||||
private PlatformBlockState stone;
|
private PlatformBlockState stone;
|
||||||
|
|||||||
+4
-22
@@ -7,17 +7,13 @@ import art.arcane.iris.engine.mantle.MantlePass;
|
|||||||
import art.arcane.iris.engine.mantle.EngineMantle;
|
import art.arcane.iris.engine.mantle.EngineMantle;
|
||||||
import art.arcane.iris.engine.mantle.MatterGenerator;
|
import art.arcane.iris.engine.mantle.MatterGenerator;
|
||||||
import art.arcane.iris.engine.object.IrisDimension;
|
import art.arcane.iris.engine.object.IrisDimension;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
|
||||||
import art.arcane.iris.util.project.context.ChunkContext;
|
import art.arcane.iris.util.project.context.ChunkContext;
|
||||||
import art.arcane.iris.util.project.stream.ProceduralStream;
|
import art.arcane.iris.util.project.stream.ProceduralStream;
|
||||||
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
||||||
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
||||||
import art.arcane.volmlib.util.matter.Matter;
|
import art.arcane.volmlib.util.matter.Matter;
|
||||||
import org.junit.After;
|
import org.junit.Rule;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -27,7 +23,6 @@ import static org.junit.Assert.assertEquals;
|
|||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyDouble;
|
import static org.mockito.ArgumentMatchers.anyDouble;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Mockito.doAnswer;
|
import static org.mockito.Mockito.doAnswer;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
@@ -36,21 +31,8 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class MantleCarvingComponentBoundaryRadiusTest {
|
public class MantleCarvingComponentBoundaryRadiusTest {
|
||||||
@Before
|
@Rule
|
||||||
public void bindPlatform() {
|
public final PlatformBinding platform = PlatformBinding.mockPlatform();
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState block = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(block);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
|
||||||
public void unbindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void boundaryWallResolutionSchedulesAdjacentCarvingChunks() {
|
public void boundaryWallResolutionSchedulesAdjacentCarvingChunks() {
|
||||||
|
|||||||
+4
-23
@@ -28,13 +28,8 @@ import art.arcane.iris.engine.object.IrisFloatingChildBiomes;
|
|||||||
import art.arcane.iris.engine.object.IrisObject;
|
import art.arcane.iris.engine.object.IrisObject;
|
||||||
import art.arcane.iris.engine.object.IrisObjectPlacement;
|
import art.arcane.iris.engine.object.IrisObjectPlacement;
|
||||||
import art.arcane.iris.engine.object.IrisObjectTranslate;
|
import art.arcane.iris.engine.object.IrisObjectTranslate;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -44,30 +39,16 @@ import java.io.File;
|
|||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class MantleFloatingObjectComponentBoundaryRadiusTest {
|
public class MantleFloatingObjectComponentBoundaryRadiusTest {
|
||||||
|
@Rule
|
||||||
|
public final PlatformBinding platform = PlatformBinding.mockPlatform();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
@Before
|
|
||||||
public void bindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState block = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(block);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
|
||||||
public void unbindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void transformedFloatingPlacementExpandsOwnerRadius() throws Exception {
|
public void transformedFloatingPlacementExpandsOwnerRadius() throws Exception {
|
||||||
|
|||||||
+5
@@ -28,6 +28,7 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.common.math.IrisBlockVector;
|
import art.arcane.iris.util.common.math.IrisBlockVector;
|
||||||
import art.arcane.iris.util.project.context.ChunkContext;
|
import art.arcane.iris.util.project.context.ChunkContext;
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
@@ -36,6 +37,7 @@ import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
|||||||
import art.arcane.volmlib.util.matter.Matter;
|
import art.arcane.volmlib.util.matter.Matter;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -59,6 +61,9 @@ import static org.mockito.Mockito.when;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
public class MantleObjectComponentBoundaryRadiusTest {
|
public class MantleObjectComponentBoundaryRadiusTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
+4
-22
@@ -9,17 +9,13 @@ import art.arcane.iris.engine.object.IrisDimension;
|
|||||||
import art.arcane.iris.engine.object.IrisDimensionCarvingResolver;
|
import art.arcane.iris.engine.object.IrisDimensionCarvingResolver;
|
||||||
import art.arcane.iris.engine.object.IrisRegion;
|
import art.arcane.iris.engine.object.IrisRegion;
|
||||||
import art.arcane.iris.engine.object.IrisWorld;
|
import art.arcane.iris.engine.object.IrisWorld;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
|
||||||
import art.arcane.iris.util.project.hunk.Hunk;
|
import art.arcane.iris.util.project.hunk.Hunk;
|
||||||
import art.arcane.iris.util.project.stream.ProceduralStream;
|
import art.arcane.iris.util.project.stream.ProceduralStream;
|
||||||
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
||||||
import art.arcane.volmlib.util.matter.MatterCavern;
|
import art.arcane.volmlib.util.matter.MatterCavern;
|
||||||
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
|
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
|
||||||
import org.junit.AfterClass;
|
import org.junit.ClassRule;
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@@ -30,27 +26,13 @@ import java.util.Map;
|
|||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertSame;
|
import static org.junit.Assert.assertSame;
|
||||||
import static org.mockito.ArgumentMatchers.anyDouble;
|
import static org.mockito.ArgumentMatchers.anyDouble;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Mockito.CALLS_REAL_METHODS;
|
import static org.mockito.Mockito.CALLS_REAL_METHODS;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
public class IrisCarveModifierInferenceIsolationTest {
|
public class IrisCarveModifierInferenceIsolationTest {
|
||||||
@BeforeClass
|
@ClassRule
|
||||||
public static void bindPlatform() {
|
public static final PlatformBinding PLATFORM = PlatformBinding.mockPlatform();
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState block = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
doReturn(block).when(registries).block(anyString());
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
doReturn(registries).when(platform).registries();
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterClass
|
|
||||||
public static void unbindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
|
|||||||
+4
-21
@@ -6,10 +6,8 @@ import art.arcane.iris.engine.object.IrisDepositGenerator;
|
|||||||
import art.arcane.iris.engine.object.IrisDepositHeightDistribution;
|
import art.arcane.iris.engine.object.IrisDepositHeightDistribution;
|
||||||
import art.arcane.iris.engine.object.IrisDepositPlacementScope;
|
import art.arcane.iris.engine.object.IrisDepositPlacementScope;
|
||||||
import art.arcane.iris.engine.object.IrisObject;
|
import art.arcane.iris.engine.object.IrisObject;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.util.common.parallel.BurstExecutor;
|
import art.arcane.iris.util.common.parallel.BurstExecutor;
|
||||||
import art.arcane.iris.util.common.parallel.MultiBurst;
|
import art.arcane.iris.util.common.parallel.MultiBurst;
|
||||||
import art.arcane.iris.util.project.context.ChunkContext;
|
import art.arcane.iris.util.project.context.ChunkContext;
|
||||||
@@ -20,9 +18,8 @@ import art.arcane.volmlib.util.mantle.runtime.Mantle;
|
|||||||
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
import art.arcane.volmlib.util.mantle.runtime.MantleChunk;
|
||||||
import art.arcane.volmlib.util.matter.Matter;
|
import art.arcane.volmlib.util.matter.Matter;
|
||||||
import art.arcane.volmlib.util.math.RNG;
|
import art.arcane.volmlib.util.math.RNG;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.AfterClass;
|
|
||||||
import org.junit.BeforeClass;
|
|
||||||
|
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
@@ -37,7 +34,6 @@ import static org.junit.Assert.assertSame;
|
|||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.junit.Assert.assertThrows;
|
import static org.junit.Assert.assertThrows;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
|
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
|
||||||
import static org.mockito.Mockito.doAnswer;
|
import static org.mockito.Mockito.doAnswer;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
@@ -49,21 +45,8 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisDepositModifierContextTest {
|
public class IrisDepositModifierContextTest {
|
||||||
@BeforeClass
|
@ClassRule
|
||||||
public static void bindPlatform() {
|
public static final PlatformBinding PLATFORM = PlatformBinding.mockPlatform();
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState block = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(block);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterClass
|
|
||||||
public static void unbindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void workerDepositsRetainRuntimeAndChunkContextUntilCompletion() throws Exception {
|
public void workerDepositsRetainRuntimeAndChunkContextUntilCompletion() throws Exception {
|
||||||
|
|||||||
+5
@@ -9,6 +9,7 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.common.data.B;
|
import art.arcane.iris.util.common.data.B;
|
||||||
import art.arcane.iris.util.common.math.IrisBlockVector;
|
import art.arcane.iris.util.common.math.IrisBlockVector;
|
||||||
import art.arcane.iris.util.common.parallel.BurstExecutor;
|
import art.arcane.iris.util.common.parallel.BurstExecutor;
|
||||||
@@ -22,6 +23,7 @@ import art.arcane.volmlib.util.matter.Matter;
|
|||||||
import art.arcane.volmlib.util.math.RNG;
|
import art.arcane.volmlib.util.math.RNG;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.MockedStatic;
|
import org.mockito.MockedStatic;
|
||||||
|
|
||||||
@@ -48,6 +50,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisDepositModifierOrderingTest {
|
public class IrisDepositModifierOrderingTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void bindPlatform() {
|
public void bindPlatform() {
|
||||||
IrisPlatforms.unbind();
|
IrisPlatforms.unbind();
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.common.data.B;
|
import art.arcane.iris.util.common.data.B;
|
||||||
import art.arcane.iris.util.common.parallel.MultiBurst;
|
import art.arcane.iris.util.common.parallel.MultiBurst;
|
||||||
import art.arcane.iris.util.project.context.ChunkContext;
|
import art.arcane.iris.util.project.context.ChunkContext;
|
||||||
@@ -24,6 +25,7 @@ import art.arcane.volmlib.util.matter.Matter;
|
|||||||
import art.arcane.volmlib.util.matter.MatterCavern;
|
import art.arcane.volmlib.util.matter.MatterCavern;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.MockedStatic;
|
import org.mockito.MockedStatic;
|
||||||
|
|
||||||
@@ -44,6 +46,9 @@ import static org.mockito.Mockito.mockStatic;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisDepositModifierParityTest {
|
public class IrisDepositModifierParityTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private final Map<String, PlatformBlockState> states = new HashMap<>();
|
private final Map<String, PlatformBlockState> states = new HashMap<>();
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ import art.arcane.iris.core.loader.ResourceLoader;
|
|||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.MISSING_BLOCK;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.MISSING_BLOCK;
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.biome;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.biome;
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.excludeBlock;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.excludeBlock;
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.find;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.find;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
@@ -23,7 +23,7 @@ import static org.mockito.Mockito.when;
|
|||||||
public class IrisBiomeCompatChildrenTest {
|
public class IrisBiomeCompatChildrenTest {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private static IrisData dataWith(PackCompatReport report, IrisBiome... biomes) {
|
private static IrisData dataWith(PackCompatReport report, IrisBiome... biomes) {
|
||||||
IrisData data = CompatFixtures.data(report);
|
IrisData data = PackCompatFixtures.data(report);
|
||||||
ResourceLoader<IrisBiome> biomeLoader = mock(ResourceLoader.class);
|
ResourceLoader<IrisBiome> biomeLoader = mock(ResourceLoader.class);
|
||||||
when(data.getBiomeLoader()).thenReturn(biomeLoader);
|
when(data.getBiomeLoader()).thenReturn(biomeLoader);
|
||||||
for (IrisBiome biome : biomes) {
|
for (IrisBiome biome : biomes) {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import static org.junit.Assert.assertEquals;
|
|||||||
public class IrisBiomeDerivativeCompatTest {
|
public class IrisBiomeDerivativeCompatTest {
|
||||||
@Test
|
@Test
|
||||||
public void droppedVanillaDerivativeFallsBackToDerivative() {
|
public void droppedVanillaDerivativeFallsBackToDerivative() {
|
||||||
IrisBiome biome = CompatFixtures.biome("cave/sulfur-grotto");
|
IrisBiome biome = PackCompatFixtures.biome("cave/sulfur-grotto");
|
||||||
biome.setDerivative("minecraft:dripstone_caves");
|
biome.setDerivative("minecraft:dripstone_caves");
|
||||||
biome.setVanillaDerivative("minecraft:sulfur_caves");
|
biome.setVanillaDerivative("minecraft:sulfur_caves");
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ public class IrisBiomeDerivativeCompatTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void blankVanillaDerivativeFallsBackToDerivative() {
|
public void blankVanillaDerivativeFallsBackToDerivative() {
|
||||||
IrisBiome biome = CompatFixtures.biome("cave/sulfur-grotto");
|
IrisBiome biome = PackCompatFixtures.biome("cave/sulfur-grotto");
|
||||||
biome.setDerivative("minecraft:dripstone_caves");
|
biome.setDerivative("minecraft:dripstone_caves");
|
||||||
biome.setVanillaDerivative("");
|
biome.setVanillaDerivative("");
|
||||||
|
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ import org.junit.Test;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.MISSING_BLOCK;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.MISSING_BLOCK;
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.excludeBlock;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.excludeBlock;
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.find;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.find;
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.region;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.region;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
@@ -26,7 +26,7 @@ import static org.mockito.Mockito.when;
|
|||||||
public class IrisDimensionCompatRegionTest {
|
public class IrisDimensionCompatRegionTest {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private static IrisData dataWith(PackCompatReport report, IrisRegion... regions) {
|
private static IrisData dataWith(PackCompatReport report, IrisRegion... regions) {
|
||||||
IrisData data = CompatFixtures.data(report);
|
IrisData data = PackCompatFixtures.data(report);
|
||||||
ResourceLoader<IrisRegion> regionLoader = mock(ResourceLoader.class);
|
ResourceLoader<IrisRegion> regionLoader = mock(ResourceLoader.class);
|
||||||
when(data.getRegionLoader()).thenReturn(regionLoader);
|
when(data.getRegionLoader()).thenReturn(regionLoader);
|
||||||
for (IrisRegion region : regions) {
|
for (IrisRegion region : regions) {
|
||||||
|
|||||||
+1
-1
@@ -176,7 +176,7 @@ public class IrisDimensionReachableBiomesTest {
|
|||||||
.setLandBiomes(new KList<>("plains"))
|
.setLandBiomes(new KList<>("plains"))
|
||||||
.setCaveBiomes(new KList<>("carving/sulfur"));
|
.setCaveBiomes(new KList<>("carving/sulfur"));
|
||||||
IrisBiome plains = biome("plains");
|
IrisBiome plains = biome("plains");
|
||||||
IrisBiome sulfur = CompatFixtures.excludeBlock(biome("carving/sulfur"))
|
IrisBiome sulfur = PackCompatFixtures.excludeBlock(biome("carving/sulfur"))
|
||||||
.setChildren(new KList<>("carving/sulfur-hollows"));
|
.setChildren(new KList<>("carving/sulfur-hollows"));
|
||||||
|
|
||||||
IrisData data = mock(IrisData.class);
|
IrisData data = mock(IrisData.class);
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ import org.junit.Test;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.find;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.find;
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.lootTable;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.lootTable;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
@@ -26,7 +26,7 @@ import static org.mockito.Mockito.when;
|
|||||||
public class IrisLootTableCompatTest {
|
public class IrisLootTableCompatTest {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private static IrisData dataWith(PackCompatReport report, IrisLootTable... tables) {
|
private static IrisData dataWith(PackCompatReport report, IrisLootTable... tables) {
|
||||||
IrisData data = CompatFixtures.data(report);
|
IrisData data = PackCompatFixtures.data(report);
|
||||||
ResourceLoader<IrisLootTable> lootLoader = mock(ResourceLoader.class);
|
ResourceLoader<IrisLootTable> lootLoader = mock(ResourceLoader.class);
|
||||||
when(data.getLootLoader()).thenReturn(lootLoader);
|
when(data.getLootLoader()).thenReturn(lootLoader);
|
||||||
for (IrisLootTable table : tables) {
|
for (IrisLootTable table : tables) {
|
||||||
@@ -43,7 +43,7 @@ public class IrisLootTableCompatTest {
|
|||||||
public void evaluateCompatExcludesTableWhoseEntriesWereAllDropped() {
|
public void evaluateCompatExcludesTableWhoseEntriesWereAllDropped() {
|
||||||
PackCompatReport report = new PackCompatReport();
|
PackCompatReport report = new PackCompatReport();
|
||||||
IrisLootTable table = lootTable("chest/sulfur-cache");
|
IrisLootTable table = lootTable("chest/sulfur-cache");
|
||||||
table.setLoader(CompatFixtures.data(report));
|
table.setLoader(PackCompatFixtures.data(report));
|
||||||
// The gate walker drops every entry with a missing item and hands the cascade its reasons.
|
// The gate walker drops every entry with a missing item and hands the cascade its reasons.
|
||||||
CompatStatus walked = new CompatStatus(false, List.of(new CompatFinding(CompatRegistry.ITEM,
|
CompatStatus walked = new CompatStatus(false, List.of(new CompatFinding(CompatRegistry.ITEM,
|
||||||
"minecraft:sulfur_dust", CompatAction.DROPPED, "loot", "chest/sulfur-cache", "loot[0]")));
|
"minecraft:sulfur_dust", CompatAction.DROPPED, "loot", "chest/sulfur-cache", "loot[0]")));
|
||||||
@@ -62,7 +62,7 @@ public class IrisLootTableCompatTest {
|
|||||||
public void evaluateCompatKeepsTableWithSurvivingEntries() {
|
public void evaluateCompatKeepsTableWithSurvivingEntries() {
|
||||||
PackCompatReport report = new PackCompatReport();
|
PackCompatReport report = new PackCompatReport();
|
||||||
IrisLootTable table = lootTable("chest/mixed");
|
IrisLootTable table = lootTable("chest/mixed");
|
||||||
table.setLoader(CompatFixtures.data(report));
|
table.setLoader(PackCompatFixtures.data(report));
|
||||||
table.setLoot(new KList<>(new IrisLoot()));
|
table.setLoot(new KList<>(new IrisLoot()));
|
||||||
CompatStatus walked = new CompatStatus(false, List.of(new CompatFinding(CompatRegistry.ITEM,
|
CompatStatus walked = new CompatStatus(false, List.of(new CompatFinding(CompatRegistry.ITEM,
|
||||||
"minecraft:sulfur_dust", CompatAction.DROPPED, "loot", "chest/mixed", "loot[1]")));
|
"minecraft:sulfur_dust", CompatAction.DROPPED, "loot", "chest/mixed", "loot[1]")));
|
||||||
@@ -74,7 +74,7 @@ public class IrisLootTableCompatTest {
|
|||||||
public void evaluateCompatKeepsTableThatNeverDeclaredLoot() {
|
public void evaluateCompatKeepsTableThatNeverDeclaredLoot() {
|
||||||
PackCompatReport report = new PackCompatReport();
|
PackCompatReport report = new PackCompatReport();
|
||||||
IrisLootTable table = lootTable("chest/empty");
|
IrisLootTable table = lootTable("chest/empty");
|
||||||
table.setLoader(CompatFixtures.data(report));
|
table.setLoader(PackCompatFixtures.data(report));
|
||||||
|
|
||||||
assertFalse(table.evaluateCompat(gate(report)).excluded());
|
assertFalse(table.evaluateCompat(gate(report)).excluded());
|
||||||
assertTrue(report.isEmpty());
|
assertTrue(report.isEmpty());
|
||||||
@@ -84,7 +84,7 @@ public class IrisLootTableCompatTest {
|
|||||||
public void lootReferenceSkipsExcludedAndUnloadableTables() {
|
public void lootReferenceSkipsExcludedAndUnloadableTables() {
|
||||||
PackCompatReport report = new PackCompatReport();
|
PackCompatReport report = new PackCompatReport();
|
||||||
IrisLootTable kept = lootTable("chest/common");
|
IrisLootTable kept = lootTable("chest/common");
|
||||||
IrisLootTable excluded = CompatFixtures.exclude(lootTable("chest/sulfur-cache"),
|
IrisLootTable excluded = PackCompatFixtures.exclude(lootTable("chest/sulfur-cache"),
|
||||||
CompatRegistry.ITEM, "minecraft:sulfur_dust");
|
CompatRegistry.ITEM, "minecraft:sulfur_dust");
|
||||||
IrisData data = dataWith(report, kept, excluded);
|
IrisData data = dataWith(report, kept, excluded);
|
||||||
IrisLootReference reference = new IrisLootReference()
|
IrisLootReference reference = new IrisLootReference()
|
||||||
|
|||||||
+5
@@ -7,6 +7,7 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
import art.arcane.volmlib.util.collection.KMap;
|
import art.arcane.volmlib.util.collection.KMap;
|
||||||
import art.arcane.volmlib.util.math.RNG;
|
import art.arcane.volmlib.util.math.RNG;
|
||||||
@@ -15,6 +16,7 @@ import org.bukkit.block.BlockFace;
|
|||||||
import org.bukkit.block.data.Directional;
|
import org.bukkit.block.data.Directional;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -40,6 +42,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisObjectPlacementRunnerRegressionTest {
|
public class IrisObjectPlacementRunnerRegressionTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private static final int ANCHOR_Y = 80;
|
private static final int ANCHOR_Y = 80;
|
||||||
|
|
||||||
private IrisData data;
|
private IrisData data;
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.common.math.IrisBlockVector;
|
import art.arcane.iris.util.common.math.IrisBlockVector;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -23,6 +25,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisObjectShapingTest {
|
public class IrisObjectShapingTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void bindPlatform() {
|
public void bindPlatform() {
|
||||||
IrisPlatforms.unbind();
|
IrisPlatforms.unbind();
|
||||||
|
|||||||
+5
-18
@@ -3,14 +3,12 @@ package art.arcane.iris.engine.object;
|
|||||||
import art.arcane.iris.core.loader.IrisData;
|
import art.arcane.iris.core.loader.IrisData;
|
||||||
import art.arcane.iris.engine.IrisComplex;
|
import art.arcane.iris.engine.IrisComplex;
|
||||||
import art.arcane.iris.engine.framework.Engine;
|
import art.arcane.iris.engine.framework.Engine;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.util.project.stream.ProceduralStream;
|
import art.arcane.iris.util.project.stream.ProceduralStream;
|
||||||
import art.arcane.volmlib.util.math.RNG;
|
import art.arcane.volmlib.util.math.RNG;
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -23,13 +21,15 @@ import static org.junit.Assert.assertFalse;
|
|||||||
import static org.junit.Assert.assertThrows;
|
import static org.junit.Assert.assertThrows;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.ArgumentMatchers.anyDouble;
|
import static org.mockito.ArgumentMatchers.anyDouble;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisObjectSurfaceSupportPlacementTest {
|
public class IrisObjectSurfaceSupportPlacementTest {
|
||||||
|
@Rule
|
||||||
|
public final PlatformBinding platform = PlatformBinding.mockPlatform();
|
||||||
|
|
||||||
private static final int SURFACE_Y = 80;
|
private static final int SURFACE_Y = 80;
|
||||||
|
|
||||||
private IrisData data;
|
private IrisData data;
|
||||||
@@ -38,14 +38,6 @@ public class IrisObjectSurfaceSupportPlacementTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void bindPlatform() {
|
public void bindPlatform() {
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState block = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(block);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
ProceduralStream<Double> heightStream = mock(ProceduralStream.class);
|
ProceduralStream<Double> heightStream = mock(ProceduralStream.class);
|
||||||
when(heightStream.get(anyDouble(), anyDouble())).thenReturn((double) SURFACE_Y);
|
when(heightStream.get(anyDouble(), anyDouble())).thenReturn((double) SURFACE_Y);
|
||||||
@@ -59,11 +51,6 @@ public class IrisObjectSurfaceSupportPlacementTest {
|
|||||||
when(data.getEngine()).thenReturn(engine);
|
when(data.getEngine()).thenReturn(engine);
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
|
||||||
public void unbindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void carvedAnchorColumnSkipsEverySurfaceAnchoredMode() {
|
public void carvedAnchorColumnSkipsEverySurfaceAnchoredMode() {
|
||||||
for (ObjectPlaceMode mode : new ObjectPlaceMode[]{
|
for (ObjectPlaceMode mode : new ObjectPlaceMode[]{
|
||||||
|
|||||||
@@ -4,11 +4,13 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.common.math.IrisBlockVector;
|
import art.arcane.iris.util.common.math.IrisBlockVector;
|
||||||
import art.arcane.iris.util.common.math.Vector3i;
|
import art.arcane.iris.util.common.math.Vector3i;
|
||||||
import art.arcane.volmlib.util.collection.KMap;
|
import art.arcane.volmlib.util.collection.KMap;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -30,6 +32,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisObjectTransformsTileTest {
|
public class IrisObjectTransformsTileTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void bindPlatform() {
|
public void bindPlatform() {
|
||||||
IrisPlatforms.unbind();
|
IrisPlatforms.unbind();
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ import org.junit.Test;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.MISSING_BLOCK;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.MISSING_BLOCK;
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.biome;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.biome;
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.excludeBlock;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.excludeBlock;
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.find;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.find;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
@@ -27,7 +27,7 @@ import static org.mockito.Mockito.when;
|
|||||||
public class IrisRegionCompatPoolTest {
|
public class IrisRegionCompatPoolTest {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private static IrisData dataWith(PackCompatReport report, IrisBiome... biomes) {
|
private static IrisData dataWith(PackCompatReport report, IrisBiome... biomes) {
|
||||||
IrisData data = CompatFixtures.data(report);
|
IrisData data = PackCompatFixtures.data(report);
|
||||||
ResourceLoader<IrisBiome> biomeLoader = mock(ResourceLoader.class);
|
ResourceLoader<IrisBiome> biomeLoader = mock(ResourceLoader.class);
|
||||||
when(data.getBiomeLoader()).thenReturn(biomeLoader);
|
when(data.getBiomeLoader()).thenReturn(biomeLoader);
|
||||||
for (IrisBiome biome : biomes) {
|
for (IrisBiome biome : biomes) {
|
||||||
@@ -46,7 +46,7 @@ public class IrisRegionCompatPoolTest {
|
|||||||
IrisBiome plains = biome("land/plains");
|
IrisBiome plains = biome("land/plains");
|
||||||
IrisBiome sulfur = excludeBlock(biome("cave/sulfur-grotto"));
|
IrisBiome sulfur = excludeBlock(biome("cave/sulfur-grotto"));
|
||||||
IrisData data = dataWith(report, plains, sulfur);
|
IrisData data = dataWith(report, plains, sulfur);
|
||||||
IrisRegion region = CompatFixtures.region("overworld");
|
IrisRegion region = PackCompatFixtures.region("overworld");
|
||||||
region.setLoader(data);
|
region.setLoader(data);
|
||||||
region.setLandBiomes(new KList<>("land/plains", "cave/sulfur-grotto"));
|
region.setLandBiomes(new KList<>("land/plains", "cave/sulfur-grotto"));
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ public class IrisRegionCompatPoolTest {
|
|||||||
PackCompatReport report = new PackCompatReport();
|
PackCompatReport report = new PackCompatReport();
|
||||||
IrisBiome shore = biome("shore/sand");
|
IrisBiome shore = biome("shore/sand");
|
||||||
IrisData data = dataWith(report, shore);
|
IrisData data = dataWith(report, shore);
|
||||||
IrisRegion region = CompatFixtures.region("overworld");
|
IrisRegion region = PackCompatFixtures.region("overworld");
|
||||||
region.setLoader(data);
|
region.setLoader(data);
|
||||||
region.setSeaBiomes(new KList<>("sea/gone"));
|
region.setSeaBiomes(new KList<>("sea/gone"));
|
||||||
region.setShoreBiomes(new KList<>("shore/sand"));
|
region.setShoreBiomes(new KList<>("shore/sand"));
|
||||||
@@ -86,7 +86,7 @@ public class IrisRegionCompatPoolTest {
|
|||||||
sulfur.setChildren(new KList<>("cave/sulfur-deep"));
|
sulfur.setChildren(new KList<>("cave/sulfur-deep"));
|
||||||
IrisBiome sulfurDeep = biome("cave/sulfur-deep");
|
IrisBiome sulfurDeep = biome("cave/sulfur-deep");
|
||||||
IrisData data = dataWith(report, plains, sulfur, sulfurDeep);
|
IrisData data = dataWith(report, plains, sulfur, sulfurDeep);
|
||||||
IrisRegion region = CompatFixtures.region("overworld");
|
IrisRegion region = PackCompatFixtures.region("overworld");
|
||||||
region.setLoader(data);
|
region.setLoader(data);
|
||||||
region.setLandBiomes(new KList<>("land/plains"));
|
region.setLandBiomes(new KList<>("land/plains"));
|
||||||
region.setCaveBiomes(new KList<>("cave/sulfur-grotto"));
|
region.setCaveBiomes(new KList<>("cave/sulfur-grotto"));
|
||||||
@@ -102,7 +102,7 @@ public class IrisRegionCompatPoolTest {
|
|||||||
PackCompatReport report = new PackCompatReport();
|
PackCompatReport report = new PackCompatReport();
|
||||||
IrisBiome sulfur = excludeBlock(biome("cave/sulfur-flats"));
|
IrisBiome sulfur = excludeBlock(biome("cave/sulfur-flats"));
|
||||||
IrisData data = dataWith(report, sulfur);
|
IrisData data = dataWith(report, sulfur);
|
||||||
IrisRegion region = CompatFixtures.region("sulfur-lands");
|
IrisRegion region = PackCompatFixtures.region("sulfur-lands");
|
||||||
region.setLoader(data);
|
region.setLoader(data);
|
||||||
region.setLandBiomes(new KList<>("cave/sulfur-flats"));
|
region.setLandBiomes(new KList<>("cave/sulfur-flats"));
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ public class IrisRegionCompatPoolTest {
|
|||||||
IrisBiome plains = biome("land/plains");
|
IrisBiome plains = biome("land/plains");
|
||||||
IrisBiome sulfur = excludeBlock(biome("cave/sulfur-flats"));
|
IrisBiome sulfur = excludeBlock(biome("cave/sulfur-flats"));
|
||||||
IrisData data = dataWith(report, plains, sulfur);
|
IrisData data = dataWith(report, plains, sulfur);
|
||||||
IrisRegion region = CompatFixtures.region("overworld");
|
IrisRegion region = PackCompatFixtures.region("overworld");
|
||||||
region.setLoader(data);
|
region.setLoader(data);
|
||||||
region.setLandBiomes(new KList<>("land/plains", "cave/sulfur-flats"));
|
region.setLandBiomes(new KList<>("land/plains", "cave/sulfur-flats"));
|
||||||
|
|
||||||
@@ -133,7 +133,7 @@ public class IrisRegionCompatPoolTest {
|
|||||||
public void evaluateCompatDoesNotExcludeRegionThatNeverDeclaredLandBiomes() {
|
public void evaluateCompatDoesNotExcludeRegionThatNeverDeclaredLandBiomes() {
|
||||||
PackCompatReport report = new PackCompatReport();
|
PackCompatReport report = new PackCompatReport();
|
||||||
IrisData data = dataWith(report);
|
IrisData data = dataWith(report);
|
||||||
IrisRegion region = CompatFixtures.region("empty");
|
IrisRegion region = PackCompatFixtures.region("empty");
|
||||||
region.setLoader(data);
|
region.setLoader(data);
|
||||||
|
|
||||||
assertFalse(region.evaluateCompat(gate(report)).excluded());
|
assertFalse(region.evaluateCompat(gate(report)).excluded());
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ import org.junit.Test;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.MISSING_ENTITY;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.MISSING_ENTITY;
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.entity;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.entity;
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.excludeEntity;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.excludeEntity;
|
||||||
import static art.arcane.iris.engine.object.CompatFixtures.find;
|
import static art.arcane.iris.engine.object.PackCompatFixtures.find;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
@@ -30,7 +30,7 @@ import static org.mockito.Mockito.when;
|
|||||||
public class IrisSpawnerCompatTest {
|
public class IrisSpawnerCompatTest {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private static IrisData dataWith(PackCompatReport report, IrisEntity... entities) {
|
private static IrisData dataWith(PackCompatReport report, IrisEntity... entities) {
|
||||||
IrisData data = CompatFixtures.data(report);
|
IrisData data = PackCompatFixtures.data(report);
|
||||||
ResourceLoader<IrisEntity> entityLoader = mock(ResourceLoader.class);
|
ResourceLoader<IrisEntity> entityLoader = mock(ResourceLoader.class);
|
||||||
when(data.getEntityLoader()).thenReturn(entityLoader);
|
when(data.getEntityLoader()).thenReturn(entityLoader);
|
||||||
for (IrisEntity entity : entities) {
|
for (IrisEntity entity : entities) {
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.common.math.IrisBlockVector;
|
import art.arcane.iris.util.common.math.IrisBlockVector;
|
||||||
import art.arcane.iris.util.project.hunk.Hunk;
|
import art.arcane.iris.util.project.hunk.Hunk;
|
||||||
import art.arcane.iris.util.project.matter.TileWrapper;
|
import art.arcane.iris.util.project.matter.TileWrapper;
|
||||||
@@ -19,6 +20,7 @@ import art.arcane.volmlib.util.matter.Matter;
|
|||||||
import art.arcane.volmlib.util.matter.MatterSlice;
|
import art.arcane.volmlib.util.matter.MatterSlice;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -40,6 +42,9 @@ import static org.mockito.Mockito.verifyNoInteractions;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisStaticObjectLayerTest {
|
public class IrisStaticObjectLayerTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private final Map<String, PlatformBlockState> states = new HashMap<>();
|
private final Map<String, PlatformBlockState> states = new HashMap<>();
|
||||||
private IrisData data;
|
private IrisData data;
|
||||||
private ResourceLoader<IrisObject> loader;
|
private ResourceLoader<IrisObject> loader;
|
||||||
|
|||||||
+5
-18
@@ -4,16 +4,14 @@ import art.arcane.iris.core.loader.IrisData;
|
|||||||
import art.arcane.iris.engine.IrisComplex;
|
import art.arcane.iris.engine.IrisComplex;
|
||||||
import art.arcane.iris.engine.framework.Engine;
|
import art.arcane.iris.engine.framework.Engine;
|
||||||
import art.arcane.iris.engine.framework.NativeStructureVolume;
|
import art.arcane.iris.engine.framework.NativeStructureVolume;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.testsupport.PlatformBinding;
|
||||||
import art.arcane.iris.util.common.math.Vector3i;
|
import art.arcane.iris.util.common.math.Vector3i;
|
||||||
import art.arcane.iris.util.project.stream.ProceduralStream;
|
import art.arcane.iris.util.project.stream.ProceduralStream;
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
import art.arcane.volmlib.util.math.RNG;
|
import art.arcane.volmlib.util.math.RNG;
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -23,11 +21,13 @@ import static org.junit.Assert.assertEquals;
|
|||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class NativeStructureObjectVetoTest {
|
public class NativeStructureObjectVetoTest {
|
||||||
|
@Rule
|
||||||
|
public final PlatformBinding platform = PlatformBinding.mockPlatform();
|
||||||
|
|
||||||
private static final int SURFACE_Y = 80;
|
private static final int SURFACE_Y = 80;
|
||||||
|
|
||||||
private IrisData data;
|
private IrisData data;
|
||||||
@@ -36,14 +36,6 @@ public class NativeStructureObjectVetoTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void bindPlatform() {
|
public void bindPlatform() {
|
||||||
IrisPlatforms.unbind();
|
|
||||||
PlatformBlockState block = mock(PlatformBlockState.class);
|
|
||||||
PlatformRegistries registries = mock(PlatformRegistries.class);
|
|
||||||
when(registries.block(anyString())).thenReturn(block);
|
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
|
||||||
when(platform.registries()).thenReturn(registries);
|
|
||||||
IrisPlatforms.bind(platform);
|
|
||||||
|
|
||||||
log = state("minecraft:oak_log", true);
|
log = state("minecraft:oak_log", true);
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
ProceduralStream<Double> heightStream = mock(ProceduralStream.class);
|
ProceduralStream<Double> heightStream = mock(ProceduralStream.class);
|
||||||
@@ -58,11 +50,6 @@ public class NativeStructureObjectVetoTest {
|
|||||||
when(data.getEngine()).thenReturn(engine);
|
when(data.getEngine()).thenReturn(engine);
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
|
||||||
public void unbindPlatform() {
|
|
||||||
IrisPlatforms.unbind();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void objectPlacesWhenNoNativeStructureIsNear() {
|
public void objectPlacesWhenNoNativeStructureIsNear() {
|
||||||
RecordingPlacer placer = new RecordingPlacer(engine);
|
RecordingPlacer placer = new RecordingPlacer(engine);
|
||||||
|
|||||||
@@ -17,11 +17,11 @@ import static org.mockito.Mockito.when;
|
|||||||
* Shared fixtures for the version-content pool cascade tests. The gate walker (lane L1) is not exercised here: the
|
* Shared fixtures for the version-content pool cascade tests. The gate walker (lane L1) is not exercised here: the
|
||||||
* tests stamp {@code compat} on a registrant directly, which is exactly what the walker stores.
|
* tests stamp {@code compat} on a registrant directly, which is exactly what the walker stores.
|
||||||
*/
|
*/
|
||||||
final class CompatFixtures {
|
final class PackCompatFixtures {
|
||||||
static final String MISSING_BLOCK = "minecraft:sulfur";
|
static final String MISSING_BLOCK = "minecraft:sulfur";
|
||||||
static final String MISSING_ENTITY = "minecraft:camel";
|
static final String MISSING_ENTITY = "minecraft:camel";
|
||||||
|
|
||||||
private CompatFixtures() {
|
private PackCompatFixtures() {
|
||||||
}
|
}
|
||||||
|
|
||||||
static IrisData data(PackCompatReport report) {
|
static IrisData data(PackCompatReport report) {
|
||||||
|
|||||||
+5
@@ -13,6 +13,7 @@ import art.arcane.iris.spi.IrisPlatforms;
|
|||||||
import art.arcane.iris.spi.IrisServices;
|
import art.arcane.iris.spi.IrisServices;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.common.scheduling.J;
|
import art.arcane.iris.util.common.scheduling.J;
|
||||||
import art.arcane.iris.util.project.matter.TileWrapper;
|
import art.arcane.iris.util.project.matter.TileWrapper;
|
||||||
import art.arcane.iris.util.project.matter.slices.PreObjectMatterTest;
|
import art.arcane.iris.util.project.matter.slices.PreObjectMatterTest;
|
||||||
@@ -30,6 +31,7 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.InOrder;
|
import org.mockito.InOrder;
|
||||||
import org.mockito.MockedStatic;
|
import org.mockito.MockedStatic;
|
||||||
@@ -59,6 +61,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class EngineBukkitOpsDeferredMaterializationTest {
|
public class EngineBukkitOpsDeferredMaterializationTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void savedMantlePlacementUsesCurrentProviderWithoutReadingCurrentMantle() {
|
public void savedMantlePlacementUsesCurrentProviderWithoutReadingCurrentMantle() {
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package art.arcane.iris.spi;
|
package art.arcane.iris.spi;
|
||||||
|
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -24,6 +26,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
* exactly one warning and would otherwise repeat per block, per sample or per chunk.
|
* exactly one warning and would otherwise repeat per block, per sample or per chunk.
|
||||||
*/
|
*/
|
||||||
public class IrisLoggingTest {
|
public class IrisLoggingTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private final List<LogLevel> levels = new ArrayList<>();
|
private final List<LogLevel> levels = new ArrayList<>();
|
||||||
private final List<String> messages = new ArrayList<>();
|
private final List<String> messages = new ArrayList<>();
|
||||||
private IrisPlatform capturingPlatform;
|
private IrisPlatform capturingPlatform;
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package art.arcane.iris.spi;
|
package art.arcane.iris.spi;
|
||||||
|
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
@@ -10,6 +12,9 @@ import static org.junit.Assert.assertTrue;
|
|||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
public class IrisPlatformsBindLifecycleTest {
|
public class IrisPlatformsBindLifecycleTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void resetBinding() {
|
public void resetBinding() {
|
||||||
IrisPlatforms.unbind();
|
IrisPlatforms.unbind();
|
||||||
|
|||||||
@@ -18,12 +18,17 @@
|
|||||||
|
|
||||||
package art.arcane.iris.spi;
|
package art.arcane.iris.spi;
|
||||||
|
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertSame;
|
import static org.junit.Assert.assertSame;
|
||||||
|
|
||||||
public class IrisServicesTest {
|
public class IrisServicesTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void removeThenReregisterRebindsService() {
|
public void removeThenReregisterRebindsService() {
|
||||||
Sample first = new Sample();
|
Sample first = new Sample();
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
import org.junit.rules.TestRule;
|
||||||
|
import org.junit.runner.Description;
|
||||||
|
import org.junit.runners.model.Statement;
|
||||||
import org.mockito.invocation.InvocationOnMock;
|
import org.mockito.invocation.InvocationOnMock;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
@@ -18,6 +21,8 @@ import static org.mockito.Mockito.doReturn;
|
|||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
public final class BukkitTestServer {
|
public final class BukkitTestServer {
|
||||||
|
private static final String DEFAULT_NAME = "IrisTestServer";
|
||||||
|
private static final String DEFAULT_VERSION = "1.0";
|
||||||
private static final Object LOCK = new Object();
|
private static final Object LOCK = new Object();
|
||||||
private static volatile Server installed;
|
private static volatile Server installed;
|
||||||
|
|
||||||
@@ -46,9 +51,7 @@ public final class BukkitTestServer {
|
|||||||
Server server = mock(Server.class);
|
Server server = mock(Server.class);
|
||||||
doReturn(Logger.getLogger("IrisTest")).when(server).getLogger();
|
doReturn(Logger.getLogger("IrisTest")).when(server).getLogger();
|
||||||
doReturn(mock(PluginManager.class)).when(server).getPluginManager();
|
doReturn(mock(PluginManager.class)).when(server).getPluginManager();
|
||||||
doReturn("IrisTestServer").when(server).getName();
|
applyBranding(server, DEFAULT_NAME, DEFAULT_VERSION);
|
||||||
doReturn("1.0").when(server).getVersion();
|
|
||||||
doReturn("1.0").when(server).getBukkitVersion();
|
|
||||||
doAnswer((InvocationOnMock invocation) -> blockData(invocation.getArgument(0, Material.class).name().toLowerCase(Locale.ROOT)))
|
doAnswer((InvocationOnMock invocation) -> blockData(invocation.getArgument(0, Material.class).name().toLowerCase(Locale.ROOT)))
|
||||||
.when(server).createBlockData(any(Material.class));
|
.when(server).createBlockData(any(Material.class));
|
||||||
doAnswer((InvocationOnMock invocation) -> blockData(invocation.getArgument(0, String.class)))
|
doAnswer((InvocationOnMock invocation) -> blockData(invocation.getArgument(0, String.class)))
|
||||||
@@ -67,13 +70,51 @@ public final class BukkitTestServer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void brand(String name, String version) {
|
public static ServerBranding branding() {
|
||||||
Server server = install();
|
return new ServerBranding();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void applyBranding(Server server, String name, String version) {
|
||||||
doReturn(name).when(server).getName();
|
doReturn(name).when(server).getName();
|
||||||
doReturn(version).when(server).getVersion();
|
doReturn(version).when(server).getVersion();
|
||||||
doReturn(version).when(server).getBukkitVersion();
|
doReturn(version).when(server).getBukkitVersion();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static final class ServerBranding implements TestRule {
|
||||||
|
private boolean applied;
|
||||||
|
|
||||||
|
private ServerBranding() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void set(String name, String version) {
|
||||||
|
applyBranding(install(), name, version);
|
||||||
|
applied = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Statement apply(Statement base, Description description) {
|
||||||
|
return new Statement() {
|
||||||
|
@Override
|
||||||
|
public void evaluate() throws Throwable {
|
||||||
|
try {
|
||||||
|
base.evaluate();
|
||||||
|
} finally {
|
||||||
|
restore();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private void restore() {
|
||||||
|
if (!applied) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
applied = false;
|
||||||
|
applyBranding(install(), DEFAULT_NAME, DEFAULT_VERSION);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static BlockData blockData(String key) {
|
public static BlockData blockData(String key) {
|
||||||
String canonical = key.indexOf(':') >= 0 ? key : "minecraft:" + key;
|
String canonical = key.indexOf(':') >= 0 ? key : "minecraft:" + key;
|
||||||
BlockData data = mock(BlockData.class);
|
BlockData data = mock(BlockData.class);
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package art.arcane.iris.testsupport;
|
||||||
|
|
||||||
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
|
import art.arcane.iris.spi.IrisServices;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.TreeSet;
|
||||||
|
|
||||||
|
public final class IrisRuntimeState {
|
||||||
|
private static final Map<Class<?>, Object> SERVICES = services();
|
||||||
|
|
||||||
|
private IrisRuntimeState() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean platformBound() {
|
||||||
|
return IrisPlatforms.isBound();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<String> registeredServices() {
|
||||||
|
TreeSet<String> names = new TreeSet<>();
|
||||||
|
|
||||||
|
for (Class<?> type : SERVICES.keySet()) {
|
||||||
|
names.add(type.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
return Collections.unmodifiableList(new ArrayList<>(names));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void reset() {
|
||||||
|
IrisPlatforms.unbind();
|
||||||
|
IrisServices.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Map<Class<?>, Object> services() {
|
||||||
|
try {
|
||||||
|
Field field = IrisServices.class.getDeclaredField("SERVICES");
|
||||||
|
field.setAccessible(true);
|
||||||
|
return castServices(field.get(null));
|
||||||
|
} catch (ReflectiveOperationException e) {
|
||||||
|
throw new IllegalStateException("IrisServices no longer exposes its backing map to the test guard", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
private static Map<Class<?>, Object> castServices(Object value) {
|
||||||
|
return (Map<Class<?>, Object>) value;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
package art.arcane.iris.testsupport;
|
||||||
|
|
||||||
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import org.junit.rules.TestRule;
|
||||||
|
import org.junit.runner.Description;
|
||||||
|
import org.junit.runners.model.Statement;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
import static org.mockito.ArgumentMatchers.anyString;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
public final class PlatformBinding implements TestRule {
|
||||||
|
private final Supplier<IrisPlatform> factory;
|
||||||
|
private IrisPlatform platform;
|
||||||
|
private PlatformRegistries registries;
|
||||||
|
private PlatformBlockState block;
|
||||||
|
|
||||||
|
private PlatformBinding(Supplier<IrisPlatform> factory) {
|
||||||
|
this.factory = factory;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PlatformBinding mockPlatform() {
|
||||||
|
return new PlatformBinding(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PlatformBinding of(Supplier<IrisPlatform> factory) {
|
||||||
|
if (factory == null) {
|
||||||
|
throw new IllegalArgumentException("A platform factory is required");
|
||||||
|
}
|
||||||
|
|
||||||
|
return new PlatformBinding(factory);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IrisPlatform platform() {
|
||||||
|
if (platform == null) {
|
||||||
|
throw new IllegalStateException("The platform binding rule is not active");
|
||||||
|
}
|
||||||
|
|
||||||
|
return platform;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlatformRegistries registries() {
|
||||||
|
if (registries == null) {
|
||||||
|
registries = platform().registries();
|
||||||
|
}
|
||||||
|
|
||||||
|
return registries;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlatformBlockState block() {
|
||||||
|
if (block == null) {
|
||||||
|
block = registries().block("minecraft:stone");
|
||||||
|
}
|
||||||
|
|
||||||
|
return block;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Statement apply(Statement base, Description description) {
|
||||||
|
String scope = description.getDisplayName();
|
||||||
|
|
||||||
|
return new Statement() {
|
||||||
|
@Override
|
||||||
|
public void evaluate() throws Throwable {
|
||||||
|
PlatformLeakGuard.requireClean(scope, "start");
|
||||||
|
bind();
|
||||||
|
|
||||||
|
try {
|
||||||
|
base.evaluate();
|
||||||
|
} finally {
|
||||||
|
IrisPlatforms.unbind();
|
||||||
|
platform = null;
|
||||||
|
registries = null;
|
||||||
|
block = null;
|
||||||
|
PlatformLeakGuard.requireClean(scope, "end");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private void bind() {
|
||||||
|
if (factory == null) {
|
||||||
|
block = mock(PlatformBlockState.class);
|
||||||
|
registries = mock(PlatformRegistries.class);
|
||||||
|
when(registries.block(anyString())).thenReturn(block);
|
||||||
|
platform = mock(IrisPlatform.class);
|
||||||
|
when(platform.registries()).thenReturn(registries);
|
||||||
|
} else {
|
||||||
|
platform = factory.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
IrisPlatforms.bind(platform);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package art.arcane.iris.testsupport;
|
||||||
|
|
||||||
|
import org.junit.rules.TestRule;
|
||||||
|
import org.junit.runner.Description;
|
||||||
|
import org.junit.runners.model.Statement;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public final class PlatformLeakGuard implements TestRule {
|
||||||
|
private PlatformLeakGuard() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PlatformLeakGuard clean() {
|
||||||
|
return new PlatformLeakGuard();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void requireClean(String scope, String phase) {
|
||||||
|
boolean bound = IrisRuntimeState.platformBound();
|
||||||
|
List<String> services = IrisRuntimeState.registeredServices();
|
||||||
|
|
||||||
|
if (!bound && services.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
IrisRuntimeState.reset();
|
||||||
|
throw new AssertionError(describe(scope, phase, bound, services));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Statement apply(Statement base, Description description) {
|
||||||
|
String scope = description.getDisplayName();
|
||||||
|
|
||||||
|
return new Statement() {
|
||||||
|
@Override
|
||||||
|
public void evaluate() throws Throwable {
|
||||||
|
requireClean(scope, "start");
|
||||||
|
|
||||||
|
try {
|
||||||
|
base.evaluate();
|
||||||
|
} finally {
|
||||||
|
requireClean(scope, "end");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String describe(String scope, String phase, boolean bound, List<String> services) {
|
||||||
|
StringBuilder message = new StringBuilder("Iris runtime state is dirty at ")
|
||||||
|
.append(phase)
|
||||||
|
.append(" of ")
|
||||||
|
.append(scope)
|
||||||
|
.append(':');
|
||||||
|
|
||||||
|
if (bound) {
|
||||||
|
message.append(" platform still bound;");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!services.isEmpty()) {
|
||||||
|
message.append(" services still registered ").append(services).append(';');
|
||||||
|
}
|
||||||
|
|
||||||
|
return message.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,9 +5,11 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformBlockState;
|
import art.arcane.iris.spi.PlatformBlockState;
|
||||||
import art.arcane.iris.spi.PlatformRegistries;
|
import art.arcane.iris.spi.PlatformRegistries;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.project.hunk.view.ChunkDataHunkHolder;
|
import art.arcane.iris.util.project.hunk.view.ChunkDataHunkHolder;
|
||||||
import org.bukkit.generator.ChunkGenerator;
|
import org.bukkit.generator.ChunkGenerator;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@@ -24,6 +26,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class PlatformStateRebindTest {
|
public class PlatformStateRebindTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
private static final List<String> CONVERTED = List.of(
|
private static final List<String> CONVERTED = List.of(
|
||||||
"art.arcane.iris.engine.actuator.IrisDimensionStackActuator",
|
"art.arcane.iris.engine.actuator.IrisDimensionStackActuator",
|
||||||
"art.arcane.iris.engine.actuator.IrisTerrainNormalActuator",
|
"art.arcane.iris.engine.actuator.IrisTerrainNormalActuator",
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import art.arcane.iris.engine.framework.Engine;
|
|||||||
import art.arcane.iris.engine.object.IrisDimension;
|
import art.arcane.iris.engine.object.IrisDimension;
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -28,6 +30,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class DirectorAuthoringDataTest {
|
public class DirectorAuthoringDataTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public final TemporaryFolder temporary = new TemporaryFolder();
|
public final TemporaryFolder temporary = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
+5
@@ -17,8 +17,10 @@ import art.arcane.iris.spi.IrisPlatform;
|
|||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformStructureHooks;
|
import art.arcane.iris.spi.PlatformStructureHooks;
|
||||||
import art.arcane.iris.spi.PlatformWorld;
|
import art.arcane.iris.spi.PlatformWorld;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.collection.KList;
|
import art.arcane.volmlib.util.collection.KList;
|
||||||
import art.arcane.volmlib.util.director.exceptions.DirectorParsingException;
|
import art.arcane.volmlib.util.director.exceptions.DirectorParsingException;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
@@ -36,6 +38,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class StructureHandlerTest {
|
public class StructureHandlerTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void registeredEligibilityMatchesFindExecutionTruthTable() {
|
public void registeredEligibilityMatchesFindExecutionTruthTable() {
|
||||||
IrisNativeStructureDecision replacement = decision(NativeStructureGenerationStatus.REPLACED_BY_IRIS);
|
IrisNativeStructureDecision replacement = decision(NativeStructureGenerationStatus.REPLACED_BY_IRIS);
|
||||||
|
|||||||
@@ -2,11 +2,13 @@ package art.arcane.iris.util.common.misc;
|
|||||||
|
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.volmlib.util.io.IO;
|
import art.arcane.volmlib.util.io.IO;
|
||||||
import com.sun.net.httpserver.HttpExchange;
|
import com.sun.net.httpserver.HttpExchange;
|
||||||
import com.sun.net.httpserver.HttpServer;
|
import com.sun.net.httpserver.HttpServer;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@@ -34,6 +36,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class WebCacheTest {
|
public class WebCacheTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TemporaryFolder temp = new TemporaryFolder();
|
public TemporaryFolder temp = new TemporaryFolder();
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ package art.arcane.iris.util.common.scheduling;
|
|||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
import art.arcane.iris.spi.PlatformScheduler;
|
import art.arcane.iris.spi.PlatformScheduler;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotEquals;
|
import static org.junit.Assert.assertNotEquals;
|
||||||
@@ -17,6 +19,9 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class JHybridPlatformTest {
|
public class JHybridPlatformTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void clearPlatform() {
|
public void clearPlatform() {
|
||||||
IrisPlatforms.unbind();
|
IrisPlatforms.unbind();
|
||||||
|
|||||||
+5
@@ -5,8 +5,10 @@ import art.arcane.iris.engine.hydrology.runtime.IrisHydrologyRuntime;
|
|||||||
import art.arcane.iris.engine.object.IrisBiome;
|
import art.arcane.iris.engine.object.IrisBiome;
|
||||||
import art.arcane.iris.engine.object.IrisRegion;
|
import art.arcane.iris.engine.object.IrisRegion;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import art.arcane.iris.util.project.stream.ProceduralStream;
|
import art.arcane.iris.util.project.stream.ProceduralStream;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.MockedStatic;
|
import org.mockito.MockedStatic;
|
||||||
|
|
||||||
@@ -29,6 +31,9 @@ import static org.mockito.Mockito.never;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
public class ChunkContextPrefillPlanTest {
|
public class ChunkContextPrefillPlanTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void noCavePrefillSkipsCaveCacheFill() {
|
public void noCavePrefillSkipsCaveCacheFill() {
|
||||||
AtomicInteger caveCalls = new AtomicInteger();
|
AtomicInteger caveCalls = new AtomicInteger();
|
||||||
|
|||||||
+5
@@ -2,7 +2,9 @@ package art.arcane.iris.util.project.matter.slices;
|
|||||||
|
|
||||||
import art.arcane.iris.spi.IrisPlatform;
|
import art.arcane.iris.spi.IrisPlatform;
|
||||||
import art.arcane.iris.spi.IrisPlatforms;
|
import art.arcane.iris.spi.IrisPlatforms;
|
||||||
|
import art.arcane.iris.testsupport.PlatformLeakGuard;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
@@ -11,6 +13,9 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
public class IrisMatterPlatformSelectionTest {
|
public class IrisMatterPlatformSelectionTest {
|
||||||
|
@ClassRule
|
||||||
|
public static final PlatformLeakGuard PLATFORM_GUARD = PlatformLeakGuard.clean();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void hybridClasspathDoesNotEnableBukkitMatterIoForModdedPlatform() {
|
public void hybridClasspathDoesNotEnableBukkitMatterIoForModdedPlatform() {
|
||||||
IrisPlatform platform = mock(IrisPlatform.class);
|
IrisPlatform platform = mock(IrisPlatform.class);
|
||||||
|
|||||||
Reference in new issue
Block a user