@@ -1,9 +1,8 @@
|
||||
package org.bukkit;
|
||||
|
||||
import static org.bukkit.support.MatcherAssert.*;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
import com.google.common.collect.Lists;
|
||||
import java.util.List;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import java.util.Map;
|
||||
import net.minecraft.core.BlockPosition;
|
||||
import net.minecraft.world.EnumHand;
|
||||
@@ -29,44 +28,29 @@ import org.bukkit.inventory.EquipmentSlot;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.material.MaterialData;
|
||||
import org.bukkit.support.AbstractTestingBase;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Parameterized;
|
||||
import org.junit.runners.Parameterized.Parameter;
|
||||
import org.junit.runners.Parameterized.Parameters;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.EnumSource;
|
||||
|
||||
@RunWith(Parameterized.class)
|
||||
public class PerMaterialTest extends AbstractTestingBase {
|
||||
private static Map<Block, Integer> fireValues;
|
||||
|
||||
@BeforeClass
|
||||
@BeforeAll
|
||||
public static void getFireValues() {
|
||||
fireValues = ((BlockFire) Blocks.FIRE).igniteOdds;
|
||||
}
|
||||
|
||||
@Parameters(name = "{index}: {0}")
|
||||
public static List<Object[]> data() {
|
||||
List<Object[]> list = Lists.newArrayList();
|
||||
for (Material material : Material.values()) {
|
||||
if (!material.isLegacy()) {
|
||||
list.add(new Object[] {material});
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
@Parameter public Material material;
|
||||
|
||||
@Test
|
||||
public void isBlock() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void isBlock(Material material) {
|
||||
if (material != Material.AIR && material != Material.CAVE_AIR && material != Material.VOID_AIR) {
|
||||
assertThat(material.isBlock(), is(not(CraftMagicNumbers.getBlock(material) == null)));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isSolid() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void isSolid(Material material) {
|
||||
if (material == Material.AIR) {
|
||||
assertFalse(material.isSolid());
|
||||
} else if (material.isBlock()) {
|
||||
@@ -76,8 +60,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isEdible() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = ".LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void isEdible(Material material) {
|
||||
if (material.isBlock()) {
|
||||
assertFalse(material.isEdible());
|
||||
} else {
|
||||
@@ -85,13 +70,15 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isRecord() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void isRecord(Material material) {
|
||||
assertThat(material.isRecord(), is(CraftMagicNumbers.getItem(material) instanceof ItemRecord));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void maxDurability() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void maxDurability(Material material) {
|
||||
if (INVALIDATED_MATERIALS.contains(material)) return;
|
||||
|
||||
if (material == Material.AIR) {
|
||||
@@ -102,8 +89,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void maxStackSize() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void maxStackSize(Material material) {
|
||||
if (INVALIDATED_MATERIALS.contains(material)) return;
|
||||
|
||||
final ItemStack bukkit = new ItemStack(material);
|
||||
@@ -120,8 +108,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isTransparent() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void isTransparent(Material material) {
|
||||
if (material == Material.AIR) {
|
||||
assertTrue(material.isTransparent());
|
||||
} else if (material.isBlock()) {
|
||||
@@ -131,8 +120,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isFlammable() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void isFlammable(Material material) {
|
||||
if (material != Material.AIR && material.isBlock()) {
|
||||
assertThat(material.isFlammable(), is(CraftMagicNumbers.getBlock(material).defaultBlockState().ignitedByLava()));
|
||||
} else {
|
||||
@@ -140,8 +130,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isBurnable() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void isBurnable(Material material) {
|
||||
if (material.isBlock()) {
|
||||
Block block = CraftMagicNumbers.getBlock(material);
|
||||
assertThat(material.isBurnable(), is(fireValues.containsKey(block) && fireValues.get(block) > 0));
|
||||
@@ -150,8 +141,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isFuel() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void isFuel(Material material) {
|
||||
if (material.isItem()) {
|
||||
assertThat(material.isFuel(), is(TileEntityFurnace.isFuel(new net.minecraft.world.item.ItemStack(CraftMagicNumbers.getItem(material)))));
|
||||
} else {
|
||||
@@ -159,8 +151,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isOccluding() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void isOccluding(Material material) {
|
||||
if (material.isBlock()) {
|
||||
assertThat(material.isOccluding(), is(CraftMagicNumbers.getBlock(material).defaultBlockState().isRedstoneConductor(BlockAccessAir.INSTANCE, BlockPosition.ZERO)));
|
||||
} else {
|
||||
@@ -168,8 +161,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasGravity() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void hasGravity(Material material) {
|
||||
if (material.isBlock()) {
|
||||
assertThat(material.hasGravity(), is(CraftMagicNumbers.getBlock(material) instanceof BlockFalling));
|
||||
} else {
|
||||
@@ -177,8 +171,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void usesDurability() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void usesDurability(Material material) {
|
||||
if (!material.isBlock()) {
|
||||
assertThat(EnchantmentTarget.BREAKABLE.includes(material), is(CraftMagicNumbers.getItem(material).canBeDepleted()));
|
||||
} else {
|
||||
@@ -186,8 +181,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDurability() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void testDurability(Material material) {
|
||||
if (!material.isBlock()) {
|
||||
assertThat(material.getMaxDurability(), is((short) CraftMagicNumbers.getItem(material).getMaxDamage()));
|
||||
} else {
|
||||
@@ -195,8 +191,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBlock() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void testBlock(Material material) {
|
||||
if (material == Material.AIR) {
|
||||
assertTrue(material.isBlock());
|
||||
} else {
|
||||
@@ -204,8 +201,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAir() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void testAir(Material material) {
|
||||
if (material.isBlock()) {
|
||||
assertThat(material.isAir(), is(equalTo(CraftMagicNumbers.getBlock(material).defaultBlockState().isAir())));
|
||||
} else {
|
||||
@@ -213,8 +211,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testItem() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void testItem(Material material) {
|
||||
if (material == Material.AIR) {
|
||||
assertTrue(material.isItem());
|
||||
} else {
|
||||
@@ -222,8 +221,9 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInteractable() throws ReflectiveOperationException {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void testInteractable(Material material) throws ReflectiveOperationException {
|
||||
if (material.isBlock()) {
|
||||
assertThat(material.isInteractable(),
|
||||
is(!CraftMagicNumbers.getBlock(material).getClass()
|
||||
@@ -234,36 +234,41 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBlockHardness() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void testBlockHardness(Material material) {
|
||||
if (material.isBlock()) {
|
||||
assertThat(material.getHardness(), is(CraftMagicNumbers.getBlock(material).defaultBlockState().destroySpeed));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBlastResistance() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void testBlastResistance(Material material) {
|
||||
if (material.isBlock()) {
|
||||
assertThat(material.getBlastResistance(), is(CraftMagicNumbers.getBlock(material).getExplosionResistance()));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSlipperiness() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void testSlipperiness(Material material) {
|
||||
if (material.isBlock()) {
|
||||
assertThat(material.getSlipperiness(), is(CraftMagicNumbers.getBlock(material).getFriction()));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBlockDataCreation() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void testBlockDataCreation(Material material) {
|
||||
if (material.isBlock()) {
|
||||
assertNotNull(material.createBlockData());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCraftingRemainingItem() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void testCraftingRemainingItem(Material material) {
|
||||
if (material.isItem()) {
|
||||
Item expectedItem = CraftMagicNumbers.getItem(material).getCraftingRemainingItem();
|
||||
Material expected = expectedItem == null ? null : CraftMagicNumbers.getMaterial(expectedItem);
|
||||
@@ -272,27 +277,30 @@ public class PerMaterialTest extends AbstractTestingBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEquipmentSlot() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void testEquipmentSlot(Material material) {
|
||||
if (material.isItem()) {
|
||||
EquipmentSlot expected = CraftEquipmentSlot.getSlot(EntityInsentient.getEquipmentSlotForItem(CraftItemStack.asNMSCopy(new ItemStack(material))));
|
||||
assertThat(material.getEquipmentSlot(), is(expected));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBlockDataClass() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void testBlockDataClass(Material material) {
|
||||
if (material.isBlock()) {
|
||||
Class<?> expectedClass = material.data;
|
||||
if (expectedClass != MaterialData.class) {
|
||||
BlockData blockData = Bukkit.createBlockData(material);
|
||||
assertTrue(expectedClass + " <> " + blockData.getClass(), expectedClass.isInstance(blockData));
|
||||
assertTrue(expectedClass.isInstance(blockData), expectedClass + " <> " + blockData.getClass());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreativeCategory() {
|
||||
@ParameterizedTest
|
||||
@EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE)
|
||||
public void testCreativeCategory(Material material) {
|
||||
if (material.isItem()) {
|
||||
material.getCreativeCategory();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user