mirror of https://github.com/Minestom/Minestom.git
43 lines
1.7 KiB
Java
43 lines
1.7 KiB
Java
package net.minestom.server.item;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import java.util.Map;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
public class ItemEnchantTest {
|
|
|
|
@Test
|
|
public void enchant() {
|
|
var item = ItemStack.of(Material.DIAMOND_SWORD);
|
|
var enchantments = item.meta().getEnchantmentMap();
|
|
assertTrue(enchantments.isEmpty(), "items do not have enchantments by default");
|
|
|
|
item = item.withMeta(meta -> meta.enchantment(Enchantment.EFFICIENCY, (short) 10));
|
|
enchantments = item.meta().getEnchantmentMap();
|
|
assertEquals(enchantments.size(), 1);
|
|
assertEquals(enchantments.get(Enchantment.EFFICIENCY), (short) 10);
|
|
|
|
item = item.withMeta(meta -> meta.enchantment(Enchantment.INFINITY, (short) 5));
|
|
enchantments = item.meta().getEnchantmentMap();
|
|
assertEquals(enchantments.size(), 2);
|
|
assertEquals(enchantments.get(Enchantment.EFFICIENCY), (short) 10);
|
|
assertEquals(enchantments.get(Enchantment.INFINITY), (short) 5);
|
|
|
|
item = item.withMeta(meta -> meta.enchantments(Map.of()));
|
|
enchantments = item.meta().getEnchantmentMap();
|
|
assertTrue(enchantments.isEmpty());
|
|
|
|
// Ensure that enchantments can still be modified after being emptied
|
|
item = item.withMeta(meta -> meta.enchantment(Enchantment.EFFICIENCY, (short) 10));
|
|
enchantments = item.meta().getEnchantmentMap();
|
|
assertEquals(enchantments.get(Enchantment.EFFICIENCY), (short) 10);
|
|
|
|
item = item.withMeta(ItemMeta.Builder::clearEnchantment);
|
|
enchantments = item.meta().getEnchantmentMap();
|
|
assertTrue(enchantments.isEmpty());
|
|
}
|
|
}
|