diff --git a/build.gradle.kts b/build.gradle.kts index c2a0da6..b0cf5d6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -65,7 +65,7 @@ dependencies { implementation(kotlin("stdlib")) // Test dependency - testImplementation("com.github.seeseemelk:MockBukkit-v1.21:3.133.2") + testImplementation("org.mockbukkit.mockbukkit:mockbukkit-v1.21:4.3.1") testRuntimeOnly("commons-lang:commons-lang:2.6") } diff --git a/src/test/java/io/delilaheve/util/EnchantmentUtilTests.java b/src/test/java/io/delilaheve/util/EnchantmentUtilTests.java index a5d8a79..5344c6c 100644 --- a/src/test/java/io/delilaheve/util/EnchantmentUtilTests.java +++ b/src/test/java/io/delilaheve/util/EnchantmentUtilTests.java @@ -1,7 +1,7 @@ package io.delilaheve.util; -import be.seeseemelk.mockbukkit.entity.PlayerMock; -import be.seeseemelk.mockbukkit.inventory.ItemStackMock; +import org.mockbukkit.mockbukkit.entity.PlayerMock; +import org.mockbukkit.mockbukkit.inventory.ItemStackMock; import io.delilaheve.CustomAnvil; import org.bukkit.Material; import org.bukkit.event.inventory.InventoryType; @@ -12,7 +12,6 @@ import org.bukkit.permissions.PermissionAttachment; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import xyz.alexcrea.cuanvil.api.EnchantmentApi; import xyz.alexcrea.cuanvil.config.ConfigHolder; import xyz.alexcrea.cuanvil.tests.ConfigResetCustomAnvilTest; import xyz.alexcrea.cuanvil.util.AnvilFuseTestData; diff --git a/src/test/java/xyz/alexcrea/cuanvil/anvil/AnvilFuseTests.java b/src/test/java/xyz/alexcrea/cuanvil/anvil/AnvilFuseTests.java index 0658a62..b197ed5 100644 --- a/src/test/java/xyz/alexcrea/cuanvil/anvil/AnvilFuseTests.java +++ b/src/test/java/xyz/alexcrea/cuanvil/anvil/AnvilFuseTests.java @@ -1,6 +1,6 @@ package xyz.alexcrea.cuanvil.anvil; -import be.seeseemelk.mockbukkit.entity.PlayerMock; +import org.mockbukkit.mockbukkit.entity.PlayerMock; import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.AnvilInventory; import org.bukkit.inventory.Inventory; diff --git a/src/test/java/xyz/alexcrea/cuanvil/api/ConflictApiTests.java b/src/test/java/xyz/alexcrea/cuanvil/api/ConflictApiTests.java index 94c4411..6115a17 100644 --- a/src/test/java/xyz/alexcrea/cuanvil/api/ConflictApiTests.java +++ b/src/test/java/xyz/alexcrea/cuanvil/api/ConflictApiTests.java @@ -1,6 +1,6 @@ package xyz.alexcrea.cuanvil.api; -import be.seeseemelk.mockbukkit.entity.PlayerMock; +import org.mockbukkit.mockbukkit.entity.PlayerMock; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; import org.bukkit.event.inventory.InventoryType; diff --git a/src/test/java/xyz/alexcrea/cuanvil/mock/AnvilViewMock.java b/src/test/java/xyz/alexcrea/cuanvil/mock/AnvilViewMock.java index 87e4bde..13ac233 100644 --- a/src/test/java/xyz/alexcrea/cuanvil/mock/AnvilViewMock.java +++ b/src/test/java/xyz/alexcrea/cuanvil/mock/AnvilViewMock.java @@ -1,6 +1,6 @@ package xyz.alexcrea.cuanvil.mock; -import be.seeseemelk.mockbukkit.inventory.PlayerInventoryViewMock; +import org.mockbukkit.mockbukkit.inventory.PlayerInventoryViewMock; import org.bukkit.entity.HumanEntity; import org.bukkit.inventory.AnvilInventory; import org.bukkit.inventory.view.AnvilView; diff --git a/src/test/java/xyz/alexcrea/cuanvil/mock/EnchantedItemMetaMock.java b/src/test/java/xyz/alexcrea/cuanvil/mock/EnchantedItemMetaMock.java deleted file mode 100644 index 3825f6a..0000000 --- a/src/test/java/xyz/alexcrea/cuanvil/mock/EnchantedItemMetaMock.java +++ /dev/null @@ -1,66 +0,0 @@ -package xyz.alexcrea.cuanvil.mock; - -import be.seeseemelk.mockbukkit.inventory.meta.ItemMetaMock; -import com.google.common.collect.ImmutableMap; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.inventory.meta.EnchantmentStorageMeta; -import org.bukkit.inventory.meta.ItemMeta; -import org.jetbrains.annotations.NotNull; - -import java.util.Map; - -public class EnchantedItemMetaMock extends ItemMetaMock implements EnchantmentStorageMeta { - - - public EnchantedItemMetaMock() { - - } - - public EnchantedItemMetaMock(@NotNull ItemMeta meta) { - super(meta); - } - - - @Override - public boolean hasStoredEnchants() { - return super.hasEnchants(); - } - - @Override - public boolean hasStoredEnchant(@NotNull Enchantment ench) { - return super.hasEnchant(ench); - } - - @Override - public int getStoredEnchantLevel(@NotNull Enchantment ench) { - return super.getEnchantLevel(ench); - } - - // badly imitate paper (and I hope spigot) behavior and avoid concurrent modification exception - @Override - public @NotNull Map getStoredEnchants() { - return ImmutableMap.copyOf(super.getEnchants()); - } - - @Override - public boolean addStoredEnchant(@NotNull Enchantment ench, int level, boolean ignoreLevelRestriction) { - return super.addEnchant(ench, level, ignoreLevelRestriction); - } - - @Override - public boolean removeStoredEnchant(@NotNull Enchantment ench) throws IllegalArgumentException { - return super.removeEnchant(ench); - } - - @Override - public boolean hasConflictingStoredEnchant(@NotNull Enchantment ench) { - return super.hasConflictingEnchant(ench); - } - - - @Override - public EnchantedItemMetaMock clone() { - // Not ideal but we do with what we have - return new EnchantedItemMetaMock(this); - } -} diff --git a/src/test/java/xyz/alexcrea/cuanvil/mock/EnchantedItemStackMock.java b/src/test/java/xyz/alexcrea/cuanvil/mock/EnchantedItemStackMock.java index 53d3d10..274cf9c 100644 --- a/src/test/java/xyz/alexcrea/cuanvil/mock/EnchantedItemStackMock.java +++ b/src/test/java/xyz/alexcrea/cuanvil/mock/EnchantedItemStackMock.java @@ -1,36 +1,29 @@ package xyz.alexcrea.cuanvil.mock; -import be.seeseemelk.mockbukkit.inventory.ItemStackMock; -import be.seeseemelk.mockbukkit.inventory.meta.ItemMetaMock; -import com.google.common.collect.ImmutableMap; +import org.mockbukkit.mockbukkit.inventory.ItemStackMock; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; -import javax.annotation.Nullable; -import java.util.Map; - public class EnchantedItemStackMock extends ItemStackMock { public EnchantedItemStackMock(@NotNull Material type, int amount) { super(type, amount); - updateItemMeta(); } public EnchantedItemStackMock(@NotNull Material type) { this(type, 1); - updateItemMeta(); } - public EnchantedItemStackMock(@NotNull ItemStack stack) throws IllegalArgumentException { + public EnchantedItemStackMock(@NotNull ItemStack stack) { super(stack); - updateItemMeta(); } @Override public int removeEnchantment(@NotNull Enchantment ench) { + if(!this.hasItemMeta()) return 0; + int level = this.getEnchantmentLevel(ench); this.getItemMeta().removeEnchant(ench); @@ -39,13 +32,16 @@ public class EnchantedItemStackMock extends ItemStackMock { @Override public void removeEnchantments() { + if(!this.hasItemMeta()) return; + this.getItemMeta().removeEnchantments(); } - // badly imitate paper (and I hope spigot) behavior and avoid concurrent modification exception @Override - public @NotNull Map getEnchantments() { - return ImmutableMap.copyOf(super.getEnchantments()); + public boolean equals(Object obj) { + if(!super.equals(obj)) return false; + + return getItemMeta().equals(((ItemStack)obj).getItemMeta()); } @Override @@ -53,41 +49,9 @@ public class EnchantedItemStackMock extends ItemStackMock { EnchantedItemStackMock clone = new EnchantedItemStackMock(this.getType()); clone.setAmount(this.getAmount()); + clone.setItemMeta(this.getItemMeta()); clone.setDurability(this.getDurability()); - clone.setItemMeta(this.hasItemMeta() ? this.getItemMeta().clone() : null); - clone.updateItemMeta(); return clone; } - @Override - public void setType(@NotNull Material type) { - super.setType(type); - updateItemMeta(); - } - - @Override - public boolean setItemMeta(@Nullable ItemMeta itemMeta) { - boolean success = super.setItemMeta(itemMeta); - updateItemMeta(); - return success; - } - - @Override - public void setDurability(short durability) { - if(getType().getMaxDurability() == 0) return; - super.setDurability(durability); - } - - private void updateItemMeta() { - super.setItemMeta(updateItemMeta(getType(), getItemMeta())); - } - - private static @Nullable ItemMeta updateItemMeta(Material material, ItemMeta oldMeta) { - if(oldMeta == null) return null; - if(material != Material.ENCHANTED_BOOK) return oldMeta; - if(oldMeta instanceof ItemMetaMock) return new EnchantedItemMetaMock(oldMeta); - - return oldMeta; - } - } diff --git a/src/test/java/xyz/alexcrea/cuanvil/tests/DefaultCustomAnvilTest.java b/src/test/java/xyz/alexcrea/cuanvil/tests/DefaultCustomAnvilTest.java index f411c01..f85c713 100644 --- a/src/test/java/xyz/alexcrea/cuanvil/tests/DefaultCustomAnvilTest.java +++ b/src/test/java/xyz/alexcrea/cuanvil/tests/DefaultCustomAnvilTest.java @@ -1,7 +1,7 @@ package xyz.alexcrea.cuanvil.tests; -import be.seeseemelk.mockbukkit.MockBukkit; -import be.seeseemelk.mockbukkit.ServerMock; +import org.mockbukkit.mockbukkit.MockBukkit; +import org.mockbukkit.mockbukkit.ServerMock; import io.delilaheve.CustomAnvil; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; diff --git a/src/test/java/xyz/alexcrea/cuanvil/util/AnvilFuseTestUtil.java b/src/test/java/xyz/alexcrea/cuanvil/util/AnvilFuseTestUtil.java index fa0aa02..c161497 100644 --- a/src/test/java/xyz/alexcrea/cuanvil/util/AnvilFuseTestUtil.java +++ b/src/test/java/xyz/alexcrea/cuanvil/util/AnvilFuseTestUtil.java @@ -90,8 +90,7 @@ public class AnvilFuseTestUtil { new PrepareAnvilListener().anvilCombineCheck(event); anvil.setResult(event.getResult()); } catch (Exception e){ - e.printStackTrace(); - Assertions.fail(); + Assertions.fail(e); } } @@ -141,8 +140,15 @@ public class AnvilFuseTestUtil { } public static void assertEqual(@Nullable ItemStack item1, @Nullable ItemStack item2) { - if(isAir(item1)) Assertions.assertTrue(isAir(item2),"Item "+item2+" was not AIR but was expected to be air"); - else Assertions.assertEquals(item1, item2); + boolean secondIsAir = isAir(item2); + if(isAir(item1)) Assertions.assertTrue(secondIsAir,"Item "+item2+" was not AIR but was expected to be air"); + else { + Assertions.assertFalse(secondIsAir,"Item "+item2+" was expected not to be air"); + + item1.setDurability(item1.getDurability()); + item2.setDurability(item2.getDurability()); + Assertions.assertEquals(item1, item2); + } }