mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-23 17:09:29 +00:00
112 lines
4.0 KiB
Diff
112 lines
4.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
|
|
Date: Sat, 12 Jul 2025 15:33:40 +0800
|
|
Subject: [PATCH] Leaf JUnit test suite
|
|
|
|
|
|
diff --git a/src/test/java/org/bukkit/support/environment/LeafTest.java b/src/test/java/org/bukkit/support/environment/LeafTest.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..d8741167ee7003265540bb3010eb7b9587a181ce
|
|
--- /dev/null
|
|
+++ b/src/test/java/org/bukkit/support/environment/LeafTest.java
|
|
@@ -0,0 +1,22 @@
|
|
+package org.bukkit.support.environment;
|
|
+
|
|
+import org.junit.jupiter.api.Tag;
|
|
+import org.junit.jupiter.api.extension.ExtendWith;
|
|
+import org.bukkit.support.extension.LeafExtension;
|
|
+import org.bukkit.support.extension.VanillaFeatureExtension;
|
|
+
|
|
+import java.lang.annotation.ElementType;
|
|
+import java.lang.annotation.Retention;
|
|
+import java.lang.annotation.RetentionPolicy;
|
|
+import java.lang.annotation.Target;
|
|
+
|
|
+/**
|
|
+ * Indicates that a class or method should be tested when tested Leaf JUnit tests.
|
|
+ * All Minecraft feature flags set will be used.
|
|
+ */
|
|
+@Target({ElementType.TYPE, ElementType.METHOD})
|
|
+@Retention(RetentionPolicy.RUNTIME)
|
|
+@Tag("LeafTest")
|
|
+@ExtendWith({LeafExtension.class})
|
|
+public @interface LeafTest {
|
|
+}
|
|
diff --git a/src/test/java/org/bukkit/support/extension/LeafExtension.java b/src/test/java/org/bukkit/support/extension/LeafExtension.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..1b66f5fdb4af3cf1d1f01dc219577ab6b6f52f4e
|
|
--- /dev/null
|
|
+++ b/src/test/java/org/bukkit/support/extension/LeafExtension.java
|
|
@@ -0,0 +1,50 @@
|
|
+package org.bukkit.support.extension;
|
|
+
|
|
+import java.util.HashMap;
|
|
+import java.util.Map;
|
|
+import net.minecraft.world.flag.FeatureFlags;
|
|
+import org.bukkit.Bukkit;
|
|
+import org.bukkit.Keyed;
|
|
+import org.bukkit.Registry;
|
|
+import org.bukkit.Server;
|
|
+import org.bukkit.craftbukkit.CraftRegistry;
|
|
+import org.bukkit.support.DummyServerHelper;
|
|
+import org.bukkit.support.RegistryHelper;
|
|
+import org.junit.jupiter.api.extension.ExtensionContext;
|
|
+
|
|
+/**
|
|
+ * Identical with {@link org.bukkit.support.extension.AllFeaturesExtension}
|
|
+ */
|
|
+public class LeafExtension extends BaseExtension {
|
|
+
|
|
+ private static final Map<Class<? extends Keyed>, Registry<?>> realRegistries = new HashMap<>();
|
|
+
|
|
+ public LeafExtension() {
|
|
+ super("LeafTest");
|
|
+ }
|
|
+
|
|
+ public static <T extends Keyed> Registry<T> getRealRegistry(Class<T> clazz) {
|
|
+ return (Registry<T>) LeafExtension.realRegistries.get(clazz);
|
|
+ }
|
|
+
|
|
+ public static Map<Class<? extends Keyed>, Registry<?>> getRealRegistries() {
|
|
+ return LeafExtension.realRegistries;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void init(ExtensionContext extensionContext) {
|
|
+ RegistryHelper.setup(FeatureFlags.REGISTRY.allFlags());
|
|
+
|
|
+ Server server = DummyServerHelper.setup();
|
|
+
|
|
+ Bukkit.setServer(server);
|
|
+
|
|
+ // Paper - Add RegistryAccess for managing registries - replaced with registry access
|
|
+
|
|
+ CraftRegistry.setMinecraftRegistry(RegistryHelper.getRegistry());
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ void runBeforeEach(ExtensionContext extensionContext) {
|
|
+ }
|
|
+}
|
|
diff --git a/src/test/java/org/bukkit/support/suite/LeafTestSuite.java b/src/test/java/org/bukkit/support/suite/LeafTestSuite.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..28417468c8d5faeef37eeeb940f0cf9a90b7d9e8
|
|
--- /dev/null
|
|
+++ b/src/test/java/org/bukkit/support/suite/LeafTestSuite.java
|
|
@@ -0,0 +1,15 @@
|
|
+package org.bukkit.support.suite;
|
|
+
|
|
+import org.junit.platform.suite.api.ConfigurationParameter;
|
|
+import org.junit.platform.suite.api.IncludeTags;
|
|
+import org.junit.platform.suite.api.SelectPackages;
|
|
+import org.junit.platform.suite.api.Suite;
|
|
+import org.junit.platform.suite.api.SuiteDisplayName;
|
|
+
|
|
+@Suite(failIfNoTests = false)
|
|
+@SuiteDisplayName("Test suite for tests used by Leaf")
|
|
+@SelectPackages({"net.minecraft"})
|
|
+@IncludeTags("LeafTest")
|
|
+@ConfigurationParameter(key = "TestSuite", value = "LeafTest")
|
|
+public class LeafTestSuite {
|
|
+}
|