diff --git a/src/test/java/xyz/alexcrea/cuanvil/api/MaterialGroupApiTests.java b/src/test/java/xyz/alexcrea/cuanvil/api/MaterialGroupApiTests.java new file mode 100644 index 0000000..99026bc --- /dev/null +++ b/src/test/java/xyz/alexcrea/cuanvil/api/MaterialGroupApiTests.java @@ -0,0 +1,79 @@ +package xyz.alexcrea.cuanvil.api; + +import org.junit.jupiter.api.Test; +import xyz.alexcrea.cuanvil.group.EnchantConflictGroup; +import xyz.alexcrea.cuanvil.group.IncludeGroup; +import xyz.alexcrea.cuanvil.tests.ConfigResetCustomAnvilTest; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class MaterialGroupApiTests extends ConfigResetCustomAnvilTest { + + @Test + void groupAddAndRemove() { + String groupName = "group"; + IncludeGroup group = new IncludeGroup(groupName); + + // Group not being set should not exist + assertFalse(doGroupExist(groupName)); + assertFalse(doGroupCanBeFound(groupName)); + + // Add group + assertTrue(MaterialGroupApi.addMaterialGroup(group)); + assertFalse(MaterialGroupApi.addMaterialGroup(group, true)); + + assertTrue(doGroupExist(groupName)); + assertTrue(doGroupCanBeFound(groupName)); + + // Remove group + assertTrue(MaterialGroupApi.removeGroup(group)); + assertFalse(MaterialGroupApi.removeGroup(group)); + + assertFalse(doGroupExist(groupName)); + assertFalse(doGroupCanBeFound(groupName)); + + // Re add + assertFalse(MaterialGroupApi.addMaterialGroup(group, false)); + assertTrue(MaterialGroupApi.addMaterialGroup(group, true)); + + assertTrue(doGroupExist(groupName)); + assertTrue(doGroupCanBeFound(groupName)); + + } + + @Test + void testAfterReload(){ + String groupName = "group"; + IncludeGroup group = new IncludeGroup(groupName); + + // Group not being set should not exist + assertFalse(doGroupExist(groupName)); + assertFalse(doGroupCanBeFound(groupName)); + + // Add group and reload + assertTrue(MaterialGroupApi.writeMaterialGroup(group)); + assertFalse(doGroupExist(groupName)); + assertFalse(doGroupCanBeFound(groupName)); + + // Tick so write get reloaded + server.getScheduler().performOneTick(); + + assertTrue(doGroupExist(groupName)); + assertTrue(doGroupCanBeFound(groupName)); + } + + boolean doGroupExist(String groupName) { + return MaterialGroupApi.getGroup(groupName) != null; + } + + boolean doGroupCanBeFound(String groupName) { + ConflictBuilder builder = new ConflictBuilder(groupName); + builder.addExcludedGroup(groupName); + + EnchantConflictGroup group = builder.build(); + IncludeGroup materialGroup = (IncludeGroup) group.getCantConflictGroup(); + return materialGroup.getGroups().size() == 1; + } + +} diff --git a/src/test/java/xyz/alexcrea/cuanvil/api/UnitRepairApiTest.java b/src/test/java/xyz/alexcrea/cuanvil/api/UnitRepairApiTests.java similarity index 97% rename from src/test/java/xyz/alexcrea/cuanvil/api/UnitRepairApiTest.java rename to src/test/java/xyz/alexcrea/cuanvil/api/UnitRepairApiTests.java index 56028af..730aed8 100644 --- a/src/test/java/xyz/alexcrea/cuanvil/api/UnitRepairApiTest.java +++ b/src/test/java/xyz/alexcrea/cuanvil/api/UnitRepairApiTests.java @@ -5,7 +5,6 @@ import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.AnvilInventory; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.Damageable; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.Repairable; import org.junit.jupiter.api.BeforeEach; @@ -19,7 +18,7 @@ import xyz.alexcrea.cuanvil.util.AnvilFuseTestUtil; import static org.junit.jupiter.api.Assertions.*; -public class UnitRepairApiTest extends ConfigResetCustomAnvilTest { +public class UnitRepairApiTests extends ConfigResetCustomAnvilTest { private AnvilInventory anvil; private PlayerMock player;