43 lines
2.0 KiB
Java
43 lines
2.0 KiB
Java
package games.dmg.spigottyrant;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
import org.bukkit.Material;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
final class TyrantArmorSpecTest {
|
|
@org.junit.jupiter.params.ParameterizedTest
|
|
@org.junit.jupiter.params.provider.CsvSource({
|
|
"AXE,6,6", "PICKAXE,0,6", "SWORD,6,0", "HOE,0,6", "SHOVEL,0,6"
|
|
})
|
|
void toolsHaveExactApprovedEnchantments(String name, int sharpness, int efficiency) {
|
|
TyrantArmorSpec spec = TyrantArmorSpec.forPiece(TyrantArmorPiece.valueOf(name), "Alex");
|
|
assertEquals(Material.valueOf("NETHERITE_" + name), spec.material());
|
|
assertEquals(0, spec.protectionLevel());
|
|
assertEquals(sharpness, spec.sharpnessLevel());
|
|
assertEquals(efficiency, spec.efficiencyLevel());
|
|
assertEquals(1, spec.mendingLevel());
|
|
assertTrue(spec.displayName().startsWith("Tyrant's Alex "));
|
|
assertEquals(TyrantArmorSpec.forPiece(TyrantArmorPiece.HELMET, "Alex").lore(), spec.lore());
|
|
}
|
|
|
|
@Test
|
|
void everyPieceIsNetheriteWithNamedLoreAndApprovedEnchantments() {
|
|
assertEquals(Material.NETHERITE_HELMET,
|
|
TyrantArmorSpec.forPiece(TyrantArmorPiece.HELMET, "Alex").material());
|
|
assertEquals(Material.NETHERITE_CHESTPLATE,
|
|
TyrantArmorSpec.forPiece(TyrantArmorPiece.CHESTPLATE, "Alex").material());
|
|
assertEquals(Material.NETHERITE_LEGGINGS,
|
|
TyrantArmorSpec.forPiece(TyrantArmorPiece.LEGGINGS, "Alex").material());
|
|
assertEquals(Material.NETHERITE_BOOTS,
|
|
TyrantArmorSpec.forPiece(TyrantArmorPiece.BOOTS, "Alex").material());
|
|
|
|
TyrantArmorSpec spec = TyrantArmorSpec.forPiece(TyrantArmorPiece.HELMET, "Alex");
|
|
assertEquals("Tyrant's Alex Helmet", spec.displayName());
|
|
assertTrue(spec.lore().stream().anyMatch(line -> line.contains("Alex")));
|
|
assertEquals(5, spec.protectionLevel());
|
|
assertEquals(1, spec.mendingLevel());
|
|
}
|
|
}
|