From e227008af6ccb3e9348241e8f75f278aae8032b6 Mon Sep 17 00:00:00 2001 From: Purdze Date: Thu, 12 Feb 2026 18:22:10 +0000 Subject: [PATCH] deduplicate assertion helpers and remove unused plugin fields --- .../testplugin/PatchBukkitTestPlugin.java | 14 +-- .../testplugin/TestAssertions.java | 14 +++ .../patchbukkit/testplugin/TestFramework.java | 86 ++++++------------- .../testplugin/tests/CommandSystemTests.java | 17 +--- .../testplugin/tests/ConsoleSenderTests.java | 16 +--- .../testplugin/tests/EntityTests.java | 12 +-- .../testplugin/tests/EventSystemTests.java | 6 +- .../testplugin/tests/PermissionsTests.java | 16 +--- .../testplugin/tests/PluginManagerTests.java | 9 +- .../testplugin/tests/RegistryTests.java | 12 +-- .../testplugin/tests/ServerTests.java | 14 +-- .../testplugin/tests/StubTests.java | 12 --- .../testplugin/tests/UnsafeValuesTests.java | 16 +--- 13 files changed, 66 insertions(+), 178 deletions(-) create mode 100644 java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/TestAssertions.java diff --git a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/PatchBukkitTestPlugin.java b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/PatchBukkitTestPlugin.java index 9d00266..0dd6660 100644 --- a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/PatchBukkitTestPlugin.java +++ b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/PatchBukkitTestPlugin.java @@ -14,14 +14,14 @@ public final class PatchBukkitTestPlugin extends JavaPlugin { framework.registerSuite(new ServerTests(this)); framework.registerSuite(new PluginManagerTests(this)); - framework.registerSuite(new CommandSystemTests(this)); + framework.registerSuite(new CommandSystemTests()); framework.registerSuite(new EventSystemTests(this)); - framework.registerSuite(new PermissionsTests(this)); - framework.registerSuite(new RegistryTests(this)); - framework.registerSuite(new EntityTests(this)); - framework.registerSuite(new ConsoleSenderTests(this)); - framework.registerSuite(new UnsafeValuesTests(this)); - framework.registerSuite(new StubTests(this)); + framework.registerSuite(new PermissionsTests()); + framework.registerSuite(new RegistryTests()); + framework.registerSuite(new EntityTests()); + framework.registerSuite(new ConsoleSenderTests()); + framework.registerSuite(new UnsafeValuesTests()); + framework.registerSuite(new StubTests()); // Set executor on the PluginCommand created by PatchBukkit's Rust side PbTestCommand cmd = new PbTestCommand(framework); diff --git a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/TestAssertions.java b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/TestAssertions.java new file mode 100644 index 0000000..0cfd7f9 --- /dev/null +++ b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/TestAssertions.java @@ -0,0 +1,14 @@ +package org.patchbukkit.testplugin; + +public final class TestAssertions { + + private TestAssertions() {} + + public static void assertNotNull(Object value, String what) { + if (value == null) throw new AssertionError(what + " returned null"); + } + + public static void assertTrue(boolean condition, String what) { + if (!condition) throw new AssertionError(what); + } +} diff --git a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/TestFramework.java b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/TestFramework.java index 6900889..3eb847e 100644 --- a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/TestFramework.java +++ b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/TestFramework.java @@ -5,12 +5,21 @@ import java.util.ArrayList; import java.util.EnumMap; import java.util.List; import java.util.Map; +import java.util.function.Consumer; import java.util.logging.Logger; import org.bukkit.command.CommandSender; public final class TestFramework { + private static final String RESET = "\u001B[0m"; + private static final String BOLD = "\u001B[1m"; + private static final String RED = "\u001B[31m"; + private static final String GREEN = "\u001B[32m"; + private static final String YELLOW = "\u001B[33m"; + private static final String CYAN = "\u001B[36m"; + private static final String WHITE = "\u001B[37m"; + private final Logger logger; private final List suites = new ArrayList<>(); @@ -82,91 +91,50 @@ public final class TestFramework { } } - // ANSI color codes - private static final String RESET = "\u001B[0m"; - private static final String BOLD = "\u001B[1m"; - private static final String RED = "\u001B[31m"; - private static final String GREEN = "\u001B[32m"; - private static final String YELLOW = "\u001B[33m"; - private static final String CYAN = "\u001B[36m"; - private static final String WHITE = "\u001B[37m"; - public void reportResults(List results) { - Map> grouped = new EnumMap<>(TestCategory.class); - for (TestResult r : results) { - grouped.computeIfAbsent(r.category(), k -> new ArrayList<>()).add(r); - } - - int total = results.size(); - int passed = 0; - for (TestResult r : results) { - if (r.passed()) passed++; - } - int failed = total - passed; - - logger.info(CYAN + BOLD + "========================================" + RESET); - logger.info(CYAN + BOLD + " PatchBukkit Conformance Test Results" + RESET); - logger.info(CYAN + BOLD + "========================================" + RESET); - - for (TestCategory cat : TestCategory.values()) { - List catResults = grouped.get(cat); - if (catResults == null || catResults.isEmpty()) continue; - - logger.info(YELLOW + BOLD + "--- " + cat.name() + " ---" + RESET); - for (TestResult r : catResults) { - if (r.passed()) { - logger.info(GREEN + " PASS" + RESET + " [" + r.tag() + "] " + r.name()); - } else { - logger.info(RED + " FAIL" + RESET + " [" + r.tag() + "] " + r.name() + RED + " -- " + r.detail() + RESET); - } - } - } - - logger.info(CYAN + BOLD + "========================================" + RESET); - String summaryColor = failed == 0 ? GREEN : RED; - logger.info(BOLD + " Total: " + WHITE + total + RESET - + BOLD + " Passed: " + GREEN + passed + RESET - + BOLD + " Failed: " + summaryColor + failed + RESET); - logger.info(CYAN + BOLD + "========================================" + RESET); - logger.info("[PBTEST_SUMMARY] total=" + total + " passed=" + passed + " failed=" + failed); + reportResults(results, logger::info); + logger.info("[PBTEST_SUMMARY] total=" + results.size() + + " passed=" + results.stream().filter(TestResult::passed).count() + + " failed=" + results.stream().filter(r -> !r.passed()).count()); } public void reportResults(List results, CommandSender sender) { + reportResults(results, sender::sendMessage); + } + + private void reportResults(List results, Consumer out) { Map> grouped = new EnumMap<>(TestCategory.class); for (TestResult r : results) { grouped.computeIfAbsent(r.category(), k -> new ArrayList<>()).add(r); } int total = results.size(); - int passed = 0; - for (TestResult r : results) { - if (r.passed()) passed++; - } + int passed = (int) results.stream().filter(TestResult::passed).count(); int failed = total - passed; - sender.sendMessage(CYAN + BOLD + "========================================" + RESET); - sender.sendMessage(CYAN + BOLD + " PatchBukkit Conformance Test Results" + RESET); - sender.sendMessage(CYAN + BOLD + "========================================" + RESET); + out.accept(CYAN + BOLD + "========================================" + RESET); + out.accept(CYAN + BOLD + " PatchBukkit Conformance Test Results" + RESET); + out.accept(CYAN + BOLD + "========================================" + RESET); for (TestCategory cat : TestCategory.values()) { List catResults = grouped.get(cat); if (catResults == null || catResults.isEmpty()) continue; - sender.sendMessage(YELLOW + BOLD + "--- " + cat.name() + " ---" + RESET); + out.accept(YELLOW + BOLD + "--- " + cat.name() + " ---" + RESET); for (TestResult r : catResults) { if (r.passed()) { - sender.sendMessage(GREEN + " PASS" + RESET + " [" + r.tag() + "] " + r.name()); + out.accept(GREEN + " PASS" + RESET + " [" + r.tag() + "] " + r.name()); } else { - sender.sendMessage(RED + " FAIL" + RESET + " [" + r.tag() + "] " + r.name() + RED + " -- " + r.detail() + RESET); + out.accept(RED + " FAIL" + RESET + " [" + r.tag() + "] " + r.name() + RED + " -- " + r.detail() + RESET); } } } - sender.sendMessage(CYAN + BOLD + "========================================" + RESET); + out.accept(CYAN + BOLD + "========================================" + RESET); String summaryColor = failed == 0 ? GREEN : RED; - sender.sendMessage(BOLD + " Total: " + WHITE + total + RESET + out.accept(BOLD + " Total: " + WHITE + total + RESET + BOLD + " Passed: " + GREEN + passed + RESET + BOLD + " Failed: " + summaryColor + failed + RESET); - sender.sendMessage(CYAN + BOLD + "========================================" + RESET); + out.accept(CYAN + BOLD + "========================================" + RESET); } } diff --git a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/CommandSystemTests.java b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/CommandSystemTests.java index 59382bd..d5690d4 100644 --- a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/CommandSystemTests.java +++ b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/CommandSystemTests.java @@ -7,19 +7,13 @@ import org.bukkit.command.CommandSender; import org.bukkit.command.defaults.BukkitCommand; import org.patchbukkit.testplugin.ConformanceTest; import org.patchbukkit.testplugin.TestCategory; -import org.bukkit.plugin.java.JavaPlugin; -import java.util.Arrays; import java.util.List; +import static org.patchbukkit.testplugin.TestAssertions.*; + public final class CommandSystemTests { - private final JavaPlugin plugin; - - public CommandSystemTests(JavaPlugin plugin) { - this.plugin = plugin; - } - @ConformanceTest(name = "CommandMap.register() accepts a command", category = TestCategory.COMMAND_SYSTEM) public void testRegister() { CommandMap map = Bukkit.getServer().getCommandMap(); @@ -96,11 +90,4 @@ public final class CommandSystemTests { assertNotNull(found, "CommandMap.getCommand(\"myprefix:pbtestalias\")"); } - private static void assertNotNull(Object value, String what) { - if (value == null) throw new AssertionError(what + " returned null"); - } - - private static void assertTrue(boolean condition, String what) { - if (!condition) throw new AssertionError(what); - } } diff --git a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/ConsoleSenderTests.java b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/ConsoleSenderTests.java index fec7638..697a02d 100644 --- a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/ConsoleSenderTests.java +++ b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/ConsoleSenderTests.java @@ -5,16 +5,11 @@ import org.bukkit.Server; import org.bukkit.command.ConsoleCommandSender; import org.patchbukkit.testplugin.ConformanceTest; import org.patchbukkit.testplugin.TestCategory; -import org.bukkit.plugin.java.JavaPlugin; + +import static org.patchbukkit.testplugin.TestAssertions.*; public final class ConsoleSenderTests { - private final JavaPlugin plugin; - - public ConsoleSenderTests(JavaPlugin plugin) { - this.plugin = plugin; - } - @ConformanceTest(name = "ConsoleSender.getName() returns non-null", category = TestCategory.CONSOLE_SENDER) public void testGetName() { ConsoleCommandSender console = Bukkit.getConsoleSender(); @@ -54,11 +49,4 @@ public final class ConsoleSenderTests { assertNotNull(spigot, "ConsoleSender.spigot()"); } - private static void assertNotNull(Object value, String what) { - if (value == null) throw new AssertionError(what + " returned null"); - } - - private static void assertTrue(boolean condition, String what) { - if (!condition) throw new AssertionError(what); - } } diff --git a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/EntityTests.java b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/EntityTests.java index dd06c71..0d4e5e2 100644 --- a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/EntityTests.java +++ b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/EntityTests.java @@ -5,19 +5,14 @@ import org.bukkit.entity.Player; import org.patchbukkit.testplugin.ConformanceTest; import org.patchbukkit.testplugin.TestCategory; import org.patchbukkit.testplugin.TestExpectation; -import org.bukkit.plugin.java.JavaPlugin; import java.util.Collection; import java.util.UUID; +import static org.patchbukkit.testplugin.TestAssertions.*; + public final class EntityTests { - private final JavaPlugin plugin; - - public EntityTests(JavaPlugin plugin) { - this.plugin = plugin; - } - @ConformanceTest(name = "Server.getOnlinePlayers() returns iterable collection", category = TestCategory.ENTITY) public void testOnlinePlayersIteration() { Collection players = Bukkit.getOnlinePlayers(); @@ -34,7 +29,4 @@ public final class EntityTests { Bukkit.getServer().getEntity(UUID.randomUUID()); } - private static void assertNotNull(Object value, String what) { - if (value == null) throw new AssertionError(what + " returned null"); - } } diff --git a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/EventSystemTests.java b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/EventSystemTests.java index df63177..0ddff2f 100644 --- a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/EventSystemTests.java +++ b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/EventSystemTests.java @@ -10,6 +10,8 @@ import org.patchbukkit.testplugin.ConformanceTest; import org.patchbukkit.testplugin.TestCategory; import org.bukkit.plugin.java.JavaPlugin; +import static org.patchbukkit.testplugin.TestAssertions.*; + public final class EventSystemTests { private final JavaPlugin plugin; @@ -57,8 +59,4 @@ public final class EventSystemTests { true ); } - - private static void assertNotNull(Object value, String what) { - if (value == null) throw new AssertionError(what + " returned null"); - } } diff --git a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/PermissionsTests.java b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/PermissionsTests.java index 726fdcf..2c7cc37 100644 --- a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/PermissionsTests.java +++ b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/PermissionsTests.java @@ -6,18 +6,13 @@ import org.bukkit.permissions.PermissionDefault; import org.bukkit.plugin.PluginManager; import org.patchbukkit.testplugin.ConformanceTest; import org.patchbukkit.testplugin.TestCategory; -import org.bukkit.plugin.java.JavaPlugin; import java.util.Set; +import static org.patchbukkit.testplugin.TestAssertions.*; + public final class PermissionsTests { - private final JavaPlugin plugin; - - public PermissionsTests(JavaPlugin plugin) { - this.plugin = plugin; - } - @ConformanceTest(name = "addPermission() and getPermission()", category = TestCategory.PERMISSIONS) public void testAddAndGetPermission() { PluginManager pm = Bukkit.getPluginManager(); @@ -77,11 +72,4 @@ public final class PermissionsTests { assertTrue(hasPerm, "Console (op) should have OP-default permission"); } - private static void assertNotNull(Object value, String what) { - if (value == null) throw new AssertionError(what + " returned null"); - } - - private static void assertTrue(boolean condition, String what) { - if (!condition) throw new AssertionError(what); - } } diff --git a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/PluginManagerTests.java b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/PluginManagerTests.java index 8a6a841..032bce0 100644 --- a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/PluginManagerTests.java +++ b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/PluginManagerTests.java @@ -7,6 +7,8 @@ import org.patchbukkit.testplugin.ConformanceTest; import org.patchbukkit.testplugin.TestCategory; import org.bukkit.plugin.java.JavaPlugin; +import static org.patchbukkit.testplugin.TestAssertions.*; + public final class PluginManagerTests { private final JavaPlugin plugin; @@ -60,11 +62,4 @@ public final class PluginManagerTests { assertNotNull(perms, "PluginManager.getPermissions()"); } - private static void assertNotNull(Object value, String what) { - if (value == null) throw new AssertionError(what + " returned null"); - } - - private static void assertTrue(boolean condition, String what) { - if (!condition) throw new AssertionError(what); - } } diff --git a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/RegistryTests.java b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/RegistryTests.java index 5ab0636..e8bd1a6 100644 --- a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/RegistryTests.java +++ b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/RegistryTests.java @@ -6,16 +6,11 @@ import org.bukkit.Sound; import org.patchbukkit.testplugin.ConformanceTest; import org.patchbukkit.testplugin.TestCategory; import org.patchbukkit.testplugin.TestExpectation; -import org.bukkit.plugin.java.JavaPlugin; + +import static org.patchbukkit.testplugin.TestAssertions.*; public final class RegistryTests { - private final JavaPlugin plugin; - - public RegistryTests(JavaPlugin plugin) { - this.plugin = plugin; - } - @ConformanceTest(name = "Registry.SOUNDS is accessible", category = TestCategory.REGISTRY) public void testSoundsRegistryExists() { Registry sounds = Registry.SOUNDS; @@ -48,7 +43,4 @@ public final class RegistryTests { } } - private static void assertNotNull(Object value, String what) { - if (value == null) throw new AssertionError(what + " returned null"); - } } diff --git a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/ServerTests.java b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/ServerTests.java index c2dd5d0..1940bf5 100644 --- a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/ServerTests.java +++ b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/ServerTests.java @@ -11,6 +11,8 @@ import org.patchbukkit.testplugin.TestCategory; import org.patchbukkit.testplugin.TestExpectation; import org.bukkit.plugin.java.JavaPlugin; +import static org.patchbukkit.testplugin.TestAssertions.*; + public final class ServerTests { private final JavaPlugin plugin; @@ -75,7 +77,6 @@ public final class ServerTests { @ConformanceTest(name = "Server.suggestPlayerNamesWhenNullTabCompletions() returns boolean", category = TestCategory.SERVER) public void testSuggestPlayerNames() { - // Should return true according to implementation boolean result = Bukkit.getServer().suggestPlayerNamesWhenNullTabCompletions(); assertTrue(result, "Server.suggestPlayerNamesWhenNullTabCompletions()"); } @@ -101,15 +102,4 @@ public final class ServerTests { assertTrue(cmd == null, "Server.getPluginCommand(unknown) should be null"); } - private static void assertNotNull(Object value, String what) { - if (value == null) { - throw new AssertionError(what + " returned null"); - } - } - - private static void assertTrue(boolean condition, String what) { - if (!condition) { - throw new AssertionError(what); - } - } } diff --git a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/StubTests.java b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/StubTests.java index 09e153a..b48a02c 100644 --- a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/StubTests.java +++ b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/StubTests.java @@ -5,20 +5,11 @@ import org.bukkit.Server; import org.patchbukkit.testplugin.ConformanceTest; import org.patchbukkit.testplugin.TestCategory; import org.patchbukkit.testplugin.TestExpectation; -import org.bukkit.plugin.java.JavaPlugin; import java.util.UUID; public final class StubTests { - private final JavaPlugin plugin; - - public StubTests(JavaPlugin plugin) { - this.plugin = plugin; - } - - // --- Server stubs that should throw UnsupportedOperationException --- - @ConformanceTest(name = "Server.getWorlds() throws UnsupportedOperationException", category = TestCategory.STUBS, expectation = TestExpectation.EXPECT_UNSUPPORTED) public void testGetWorlds() { @@ -128,7 +119,4 @@ public final class StubTests { Bukkit.getServer().getAllowNether(); } - private static void assertNotNull(Object value, String what) { - if (value == null) throw new AssertionError(what + " returned null"); - } } diff --git a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/UnsafeValuesTests.java b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/UnsafeValuesTests.java index 79d4689..3a6b9c4 100644 --- a/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/UnsafeValuesTests.java +++ b/java/patchbukkit-test-plugin/src/main/java/org/patchbukkit/testplugin/tests/UnsafeValuesTests.java @@ -5,17 +5,12 @@ import org.bukkit.Bukkit; import org.bukkit.UnsafeValues; import org.patchbukkit.testplugin.ConformanceTest; import org.patchbukkit.testplugin.TestCategory; -import org.bukkit.plugin.java.JavaPlugin; + +import static org.patchbukkit.testplugin.TestAssertions.*; @SuppressWarnings("deprecation") public final class UnsafeValuesTests { - private final JavaPlugin plugin; - - public UnsafeValuesTests(JavaPlugin plugin) { - this.plugin = plugin; - } - @ConformanceTest(name = "UnsafeValues.getDataVersion() returns positive int", category = TestCategory.UNSAFE_VALUES) public void testGetDataVersion() { UnsafeValues unsafe = Bukkit.getUnsafe(); @@ -51,11 +46,4 @@ public final class UnsafeValuesTests { assertNotNull(flattener, "UnsafeValues.componentFlattener()"); } - private static void assertNotNull(Object value, String what) { - if (value == null) throw new AssertionError(what + " returned null"); - } - - private static void assertTrue(boolean condition, String what) { - if (!condition) throw new AssertionError(what); - } }