deduplicate assertion helpers and remove unused plugin fields
This commit is contained in:
parent
338717143a
commit
e227008af6
@ -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);
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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<Object> 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<TestResult> results) {
|
||||
Map<TestCategory, List<TestResult>> 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<TestResult> 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<TestResult> results, CommandSender sender) {
|
||||
reportResults(results, sender::sendMessage);
|
||||
}
|
||||
|
||||
private void reportResults(List<TestResult> results, Consumer<String> out) {
|
||||
Map<TestCategory, List<TestResult>> 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<TestResult> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<? extends Player> 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");
|
||||
}
|
||||
}
|
||||
|
||||
@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<Sound> 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");
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user