mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-23 08:14:00 +02:00
Add some more event listener test
This commit is contained in:
parent
e4176404ac
commit
0f1aed8156
7 changed files with 183 additions and 44 deletions
|
|
@ -51,57 +51,38 @@ public class AnvilFuseTests extends SharedCustomAnvilTest {
|
|||
anvil = null;
|
||||
}
|
||||
|
||||
public static AnvilFuseTestData mergeFuseData(Integer levelLeft, Integer levelRight, Integer levelResult) {
|
||||
ItemStack result = CommonItemUtil.sharpness(levelResult);
|
||||
if(result != null){
|
||||
Repairable meta = (Repairable) result.getItemMeta();
|
||||
meta.setRepairCost(1);
|
||||
result.setItemMeta(meta);
|
||||
}
|
||||
|
||||
return new AnvilFuseTestData(
|
||||
CommonItemUtil.sharpness(levelLeft),
|
||||
CommonItemUtil.sharpness(levelRight),
|
||||
result,
|
||||
levelResult
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mergeFuseTest(){
|
||||
// Literally just test a sharpness 4 + sharpness 4
|
||||
ItemStack sharpness4 = CommonItemUtil.sharpness(4);
|
||||
|
||||
ItemStack sharpness5Result = CommonItemUtil.sharpness(5);
|
||||
Repairable meta = (Repairable) sharpness5Result.getItemMeta();
|
||||
meta.setRepairCost(1);
|
||||
sharpness5Result.setItemMeta(meta);
|
||||
|
||||
AnvilFuseTestData data = new AnvilFuseTestData(
|
||||
sharpness4, sharpness4,
|
||||
sharpness5Result,
|
||||
5
|
||||
);
|
||||
|
||||
data.executeTest(anvil, player);
|
||||
mergeFuseData(4, 4, 5)
|
||||
.executeTest(anvil, player);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void overFuseTest(){
|
||||
// Test sharpness 4 + sharpness 5
|
||||
ItemStack sharpness4 = CommonItemUtil.sharpness(4);
|
||||
ItemStack sharpness5 = CommonItemUtil.sharpness(5);
|
||||
|
||||
ItemStack sharpness5Result = CommonItemUtil.sharpness(5);
|
||||
Repairable meta = (Repairable) sharpness5Result.getItemMeta();
|
||||
meta.setRepairCost(1);
|
||||
sharpness5Result.setItemMeta(meta);
|
||||
|
||||
AnvilFuseTestData data = new AnvilFuseTestData(
|
||||
sharpness4, sharpness5,
|
||||
sharpness5Result,
|
||||
5
|
||||
);
|
||||
|
||||
data.executeTest(anvil, player);
|
||||
mergeFuseData(4, 5, 5)
|
||||
.executeTest(anvil, player);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void underFuseTest(){
|
||||
// test sharpness 5 + 4. Custom Anvil should not allow it to be as it result as the same item as left item
|
||||
ItemStack sharpness4 = CommonItemUtil.sharpness(4);
|
||||
ItemStack sharpness5 = CommonItemUtil.sharpness(5);
|
||||
|
||||
AnvilFuseTestData data = new AnvilFuseTestData(
|
||||
sharpness5, sharpness4,
|
||||
null
|
||||
);
|
||||
|
||||
data.executeTest(anvil, player);
|
||||
mergeFuseData(5, 4, null)
|
||||
.executeTest(anvil, player);
|
||||
}
|
||||
|
||||
// Note: currently anvil can only have null name. maybe handle differently later
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
package xyz.alexcrea.cuanvil.api.event.listener;
|
||||
|
||||
public class CAClickResultBypassEventTest {
|
||||
|
||||
//TODO
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
package xyz.alexcrea.cuanvil.api.event.listener;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockbukkit.mockbukkit.matcher.plugin.PluginManagerFiredEventClassMatcher;
|
||||
import xyz.alexcrea.cuanvil.anvil.AnvilFuseTests;
|
||||
|
||||
public class CAEarlyPreAnvilBypassEventTest extends NoStartupTriggerEventTest {
|
||||
|
||||
@Override
|
||||
public Class<? extends Event> getEventClass() {
|
||||
return CAEarlyPreAnvilBypassEvent.class;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void startup() {
|
||||
Bukkit.getPluginManager().registerEvents(new Listener() {
|
||||
@EventHandler
|
||||
public void onEvent(CAEarlyPreAnvilBypassEvent event){
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
}, plugin);
|
||||
|
||||
AnvilFuseTests.mergeFuseData(4, 4, null)
|
||||
.executeTest(anvil, player);
|
||||
|
||||
boolean postEventEarly = PluginManagerFiredEventClassMatcher
|
||||
.hasFiredEventInstance(CAEarlyPreAnvilBypassEvent.class)
|
||||
.matches(server.getPluginManager());
|
||||
|
||||
boolean postEvent = PluginManagerFiredEventClassMatcher
|
||||
.hasFiredEventInstance(CAPreAnvilBypassEvent.class)
|
||||
.matches(server.getPluginManager());
|
||||
|
||||
Assertions.assertTrue(postEventEarly, "early pre event did not get fired");
|
||||
Assertions.assertFalse(postEvent, "pre event did get fired even with early cancellation");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
package xyz.alexcrea.cuanvil.api.event.listener;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockbukkit.mockbukkit.matcher.plugin.PluginManagerFiredEventClassMatcher;
|
||||
import xyz.alexcrea.cuanvil.anvil.AnvilFuseTests;
|
||||
|
||||
public class CAPreAnvilBypassEventTest extends NoStartupTriggerEventTest {
|
||||
|
||||
@Override
|
||||
public Class<? extends Event> getEventClass() {
|
||||
return CAPreAnvilBypassEvent.class;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void startup() {
|
||||
Bukkit.getPluginManager().registerEvents(new Listener() {
|
||||
@EventHandler
|
||||
public void onEvent(CAPreAnvilBypassEvent event){
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
}, plugin);
|
||||
|
||||
AnvilFuseTests.mergeFuseData(4, 4, null)
|
||||
.executeTest(anvil, player);
|
||||
|
||||
boolean postEventEarly = PluginManagerFiredEventClassMatcher
|
||||
.hasFiredEventInstance(CAEarlyPreAnvilBypassEvent.class)
|
||||
.matches(server.getPluginManager());
|
||||
|
||||
boolean postEvent = PluginManagerFiredEventClassMatcher
|
||||
.hasFiredEventInstance(CAPreAnvilBypassEvent.class)
|
||||
.matches(server.getPluginManager());
|
||||
|
||||
Assertions.assertTrue(postEventEarly, "early pre event did not get fired");
|
||||
Assertions.assertTrue(postEvent, "pre event did not get fired");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
package xyz.alexcrea.cuanvil.api.event.listener;
|
||||
|
||||
public class CATreatAnvilResultEventTest {
|
||||
|
||||
//TODO
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
package xyz.alexcrea.cuanvil.api.event.listener;
|
||||
|
||||
import io.delilaheve.CustomAnvil;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.inventory.InventoryType;
|
||||
import org.bukkit.inventory.AnvilInventory;
|
||||
import org.junit.jupiter.api.*;
|
||||
import org.mockbukkit.mockbukkit.MockBukkit;
|
||||
import org.mockbukkit.mockbukkit.matcher.plugin.PluginManagerFiredEventClassMatcher;
|
||||
import xyz.alexcrea.cuanvil.tests.SharedOnlyMockBukkit;
|
||||
|
||||
public abstract class NoStartupTriggerEventTest extends SharedOnlyMockBukkit {
|
||||
|
||||
public abstract Class<? extends Event> getEventClass();
|
||||
|
||||
public CustomAnvil plugin;
|
||||
public Player player;
|
||||
public AnvilInventory anvil;
|
||||
|
||||
@BeforeEach
|
||||
public void setUpPost() {
|
||||
Class<? extends Event> eventClass = getEventClass();
|
||||
PluginManagerFiredEventClassMatcher matcher = PluginManagerFiredEventClassMatcher
|
||||
.hasFiredEventInstance(eventClass);
|
||||
|
||||
boolean beforeStart = matcher.matches(server.getPluginManager());
|
||||
Assertions.assertFalse(beforeStart, "Somehow, event fired before plugin being loaded ?");
|
||||
|
||||
// Load the plugin
|
||||
plugin = MockBukkit.load(CustomAnvil.class);
|
||||
|
||||
// Config load phase
|
||||
server.getScheduler().performOneTick();
|
||||
|
||||
boolean postConfig = matcher.matches(server.getPluginManager());
|
||||
Assertions.assertFalse(postConfig, "Event fired before plugin finished being loaded");
|
||||
|
||||
// Simple pre anvil test
|
||||
player = server.addPlayer();
|
||||
anvil = (AnvilInventory) server.createInventory(player, InventoryType.ANVIL);
|
||||
player.openInventory(anvil);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void tearDownPost() {
|
||||
if (plugin != null) {
|
||||
server.getPluginManager().disablePlugin(plugin);
|
||||
plugin = null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -7,7 +7,9 @@ import java.util.List;
|
|||
|
||||
public class CommonItemUtil {
|
||||
|
||||
public static ItemStack sharpness(int level){
|
||||
public static ItemStack sharpness(Integer level){
|
||||
if(level == null) return null;
|
||||
|
||||
return AnvilFuseTestUtil.prepareItem(
|
||||
Material.DIAMOND_SWORD,
|
||||
List.of("sharpness"),
|
||||
|
|
@ -15,7 +17,9 @@ public class CommonItemUtil {
|
|||
);
|
||||
}
|
||||
|
||||
public static ItemStack bane_of_arthropods(int level){
|
||||
public static ItemStack bane_of_arthropods(Integer level){
|
||||
if(level == null) return null;
|
||||
|
||||
return AnvilFuseTestUtil.prepareItem(
|
||||
Material.DIAMOND_SWORD,
|
||||
List.of("bane_of_arthropods"),
|
||||
|
|
@ -23,5 +27,4 @@ public class CommonItemUtil {
|
|||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue