From 1d93818d6440bab7c75d0244f78011700a12db75 Mon Sep 17 00:00:00 2001 From: Joltras Date: Mon, 27 Apr 2026 18:02:03 +0200 Subject: [PATCH 1/3] test(player): add player test base --- .../cygnus/CygnusPlayerTestBase.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 game/src/test/java/net/onelitefeather/cygnus/CygnusPlayerTestBase.java diff --git a/game/src/test/java/net/onelitefeather/cygnus/CygnusPlayerTestBase.java b/game/src/test/java/net/onelitefeather/cygnus/CygnusPlayerTestBase.java new file mode 100644 index 0000000..ec8f0f8 --- /dev/null +++ b/game/src/test/java/net/onelitefeather/cygnus/CygnusPlayerTestBase.java @@ -0,0 +1,25 @@ +package net.onelitefeather.cygnus; + +import net.minestom.server.entity.Player; +import net.minestom.server.network.PlayerProvider; +import net.minestom.testing.Env; +import net.minestom.testing.extension.MicrotusExtension; +import net.onelitefeather.cygnus.player.CygnusPlayer; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.extension.ExtendWith; + +/** + * The class is a small utility class which overwrites the given {@link PlayerProvider} from the test environment to use the {@link CygnusPlayer} instead of the default {@link Player}. + * This allows us to test the stamina system and other player related features without having to create a new player provider for each test class. + * @author Joltra + * @version 1.0.0 + * @since 2.3.0 + */ +@ExtendWith(MicrotusExtension.class) +public abstract class CygnusPlayerTestBase { + + @BeforeAll + static void init(Env env) { + env.process().connection().setPlayerProvider(CygnusPlayer::new); + } +} From 5460331484886e6a21dab4596d7fa3f8fbf7ee6a Mon Sep 17 00:00:00 2001 From: Joltras Date: Mon, 27 Apr 2026 18:02:21 +0200 Subject: [PATCH 2/3] fix(test): remove disabled annotation from specific stamina tests --- .../onelitefeather/cygnus/stamina/StaminaFactoryTest.java | 8 ++------ .../onelitefeather/cygnus/stamina/StaminaServiceTest.java | 8 ++------ 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/game/src/test/java/net/onelitefeather/cygnus/stamina/StaminaFactoryTest.java b/game/src/test/java/net/onelitefeather/cygnus/stamina/StaminaFactoryTest.java index f6dd9ec..e61d3a0 100644 --- a/game/src/test/java/net/onelitefeather/cygnus/stamina/StaminaFactoryTest.java +++ b/game/src/test/java/net/onelitefeather/cygnus/stamina/StaminaFactoryTest.java @@ -3,20 +3,16 @@ import net.minestom.server.entity.Player; import net.minestom.server.instance.Instance; import net.minestom.testing.Env; -import net.minestom.testing.extension.MicrotusExtension; +import net.onelitefeather.cygnus.CygnusPlayerTestBase; import net.onelitefeather.cygnus.player.CygnusPlayer; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.*; -@Disabled("The Minestom framework doesn't support custom player implementations in tests") -@ExtendWith(MicrotusExtension.class) -class StaminaFactoryTest { +class StaminaFactoryTest extends CygnusPlayerTestBase { private static Instance instance; private static Player player; diff --git a/game/src/test/java/net/onelitefeather/cygnus/stamina/StaminaServiceTest.java b/game/src/test/java/net/onelitefeather/cygnus/stamina/StaminaServiceTest.java index 9bba1d8..2a39813 100644 --- a/game/src/test/java/net/onelitefeather/cygnus/stamina/StaminaServiceTest.java +++ b/game/src/test/java/net/onelitefeather/cygnus/stamina/StaminaServiceTest.java @@ -3,20 +3,16 @@ import net.minestom.server.entity.Player; import net.minestom.server.instance.Instance; import net.minestom.testing.Env; -import net.minestom.testing.extension.MicrotusExtension; +import net.onelitefeather.cygnus.CygnusPlayerTestBase; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import static org.junit.jupiter.api.Assertions.*; -@Disabled("The Minestom framework doesn't support custom player implementations in tests") -@ExtendWith(MicrotusExtension.class) -class StaminaServiceTest { +class StaminaServiceTest extends CygnusPlayerTestBase { private static StaminaService staminaService; From 90e4a0ff147d8d68c8295d6d61a06e68012cd8e9 Mon Sep 17 00:00:00 2001 From: Joltras Date: Mon, 27 Apr 2026 18:06:02 +0200 Subject: [PATCH 3/3] docs(test): improve styling --- .../java/net/onelitefeather/cygnus/CygnusPlayerTestBase.java | 1 + 1 file changed, 1 insertion(+) diff --git a/game/src/test/java/net/onelitefeather/cygnus/CygnusPlayerTestBase.java b/game/src/test/java/net/onelitefeather/cygnus/CygnusPlayerTestBase.java index ec8f0f8..2c420d7 100644 --- a/game/src/test/java/net/onelitefeather/cygnus/CygnusPlayerTestBase.java +++ b/game/src/test/java/net/onelitefeather/cygnus/CygnusPlayerTestBase.java @@ -11,6 +11,7 @@ /** * The class is a small utility class which overwrites the given {@link PlayerProvider} from the test environment to use the {@link CygnusPlayer} instead of the default {@link Player}. * This allows us to test the stamina system and other player related features without having to create a new player provider for each test class. + * * @author Joltra * @version 1.0.0 * @since 2.3.0