From f987e6b85de15da7b17f6a9fcdb17bc40a40c213 Mon Sep 17 00:00:00 2001 From: uiytt Date: Thu, 15 Oct 2020 17:34:56 +0200 Subject: [PATCH] Added unit test for event I'm not so sure about this. I've never writed any tests before --- .../tests/researches/TestResearches.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/researches/TestResearches.java b/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/researches/TestResearches.java index ce3ff70ef..2a5cb1399 100644 --- a/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/researches/TestResearches.java +++ b/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/researches/TestResearches.java @@ -2,6 +2,10 @@ package io.github.thebusybiscuit.slimefun4.testing.tests.researches; import java.util.Optional; +import io.github.thebusybiscuit.slimefun4.api.events.PreCanUnlockResearchEvent; +import io.github.thebusybiscuit.slimefun4.api.events.ResearchUnlockEvent; +import io.github.thebusybiscuit.slimefun4.api.player.PlayerProfile; +import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuideImplementation; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.NamespacedKey; @@ -19,6 +23,7 @@ import io.github.thebusybiscuit.slimefun4.core.researching.Research; import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; import io.github.thebusybiscuit.slimefun4.testing.TestUtilities; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; +import org.mockito.Mockito; class TestResearches { @@ -182,4 +187,29 @@ class TestResearches { Assertions.assertTrue(research.canUnlock(player)); } + @Test + @DisplayName("Test PreCanUnlockResearchEvent") + void testPreCanUnlockResearchEvent() throws InterruptedException { + SlimefunPlugin.getRegistry().setResearchingEnabled(true); + + NamespacedKey key = new NamespacedKey(plugin, "simple_research"); + Research research = new Research(key, 250, "Test", 10); + research.register(); + + SlimefunGuideImplementation guide = Mockito.mock(SlimefunGuideImplementation.class); + Player player = server.addPlayer(); + PlayerProfile profile = TestUtilities.awaitProfile(player); + SlimefunItem sfItem = TestUtilities.mockSlimefunItem(plugin, "RESEARCH_TEST", new CustomItem(Material.TORCH, "&bResearch Test")); + + research.guideClickInteraction(guide,player,profile,sfItem,sfItem.getCategory(),0); + + server.getPluginManager().assertEventFired(PreCanUnlockResearchEvent.class, event -> { + Assertions.assertEquals(player, event.getPlayer()); + Assertions.assertEquals(research, event.getResearch()); + Assertions.assertEquals(sfItem,event.getSlimefunItem()); + Assertions.assertFalse(event.isCancelled()); + return true; + }); + } + }