#1256: Update tests to JUnit 5

By: DerFrZocker <derrieple@gmail.com>
This commit is contained in:
CraftBukkit/Spigot
2023-09-23 18:10:23 +10:00
parent da860132b5
commit 07002cbfcd
62 changed files with 770 additions and 732 deletions

View File

@@ -1,7 +1,8 @@
package org.bukkit;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import com.google.common.collect.Lists;
import java.util.Collections;
import java.util.EnumMap;
@@ -14,7 +15,7 @@ import net.minecraft.resources.ResourceKey;
import net.minecraft.world.entity.decoration.PaintingVariant;
import org.bukkit.craftbukkit.CraftArt;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class ArtTest extends AbstractTestingBase {
private static final int UNIT_MULTIPLIER = 16;
@@ -32,16 +33,16 @@ public class ArtTest extends AbstractTestingBase {
Art subject = CraftArt.minecraftHolderToBukkit(enumArt);
String message = String.format("org.bukkit.Art is missing '%s'", name);
assertNotNull(message, subject);
assertNotNull(subject, message);
assertThat(Art.getByName(name), is(subject));
assertThat("Art." + subject + "'s width", subject.getBlockWidth(), is(width));
assertThat("Art." + subject + "'s height", subject.getBlockHeight(), is(height));
assertThat(subject.getBlockWidth(), is(width), "Art." + subject + "'s width");
assertThat(subject.getBlockHeight(), is(height), "Art." + subject + "'s height");
arts.remove(subject);
}
assertThat("org.bukkit.Art has too many arts", arts, is(Collections.EMPTY_LIST));
assertThat(arts, is(Collections.EMPTY_LIST), "org.bukkit.Art has too many arts");
}
@Test
@@ -49,8 +50,8 @@ public class ArtTest extends AbstractTestingBase {
Map<Holder<PaintingVariant>, Art> cache = new HashMap<>();
for (Art art : Art.values()) {
Holder<PaintingVariant> enumArt = CraftArt.bukkitToMinecraftHolder(art);
assertNotNull(art.name(), enumArt);
assertThat(art.name(), cache.put(enumArt, art), is(nullValue()));
assertNotNull(enumArt, art.name());
assertThat(cache.put(enumArt, art), is(nullValue()), art.name());
}
}
@@ -59,8 +60,8 @@ public class ArtTest extends AbstractTestingBase {
Map<Art, Holder<PaintingVariant>> cache = new EnumMap(Art.class);
for (Holder<PaintingVariant> enumArt : BuiltInRegistries.PAINTING_VARIANT.asHolderIdMap()) {
Art art = CraftArt.minecraftHolderToBukkit(enumArt);
assertNotNull("Could not CraftArt.NotchToBukkit " + enumArt, art);
assertThat("Duplicate artwork " + enumArt, cache.put(art, enumArt), is(nullValue()));
assertNotNull(art, "Could not CraftArt.NotchToBukkit " + enumArt);
assertThat(cache.put(art, enumArt), is(nullValue()), "Duplicate artwork " + enumArt);
}
}
}

View File

@@ -1,11 +1,11 @@
package org.bukkit;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.world.level.biome.BiomeBase;
import org.bukkit.block.Biome;
import org.bukkit.craftbukkit.block.CraftBiome;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class BiomeTest extends AbstractTestingBase {
@@ -16,7 +16,7 @@ public class BiomeTest extends AbstractTestingBase {
continue;
}
Assert.assertNotNull("No NMS mapping for " + biome, CraftBiome.bukkitToMinecraftHolder(biome));
assertNotNull(CraftBiome.bukkitToMinecraftHolder(biome), "No NMS mapping for " + biome);
}
}
@@ -24,7 +24,7 @@ public class BiomeTest extends AbstractTestingBase {
public void testMinecraftToBukkit() {
for (BiomeBase biomeBase : BIOMES) {
Biome biome = CraftBiome.minecraftToBukkit(biomeBase);
Assert.assertTrue("No Bukkit mapping for " + biomeBase, biome != null && biome != Biome.CUSTOM);
assertTrue(biome != null && biome != Biome.CUSTOM, "No Bukkit mapping for " + biomeBase);
}
}
}

View File

@@ -1,38 +1,30 @@
package org.bukkit;
import java.util.ArrayList;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
import java.util.stream.Stream;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.IBlockData;
import org.bukkit.craftbukkit.block.data.CraftBlockData;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
/**
* This test class ensures that all Blocks (as registered in BuiltInRegistries.BLOCK)
* can be converted into their CraftBlockData equivalent.
*/
@RunWith(Parameterized.class)
public class BlockDataConversionTest extends AbstractTestingBase {
@Parameterized.Parameters(name = "{index}: {0}")
public static List<Object[]> args() {
List<Object[]> list = new ArrayList<>();
for (Block block : (Iterable<Block>) BuiltInRegistries.BLOCK) {
list.add(new Object[]{block.defaultBlockState()});
}
return list;
public static Stream<Arguments> data() {
return BuiltInRegistries.BLOCK.stream().map(Block::defaultBlockState).map(Arguments::of);
}
@Parameterized.Parameter(0) public IBlockData data;
@Test
public void testNotNull() {
Assert.assertNotNull(data);
Assert.assertNotNull(CraftBlockData.fromData(data));
@ParameterizedTest
@MethodSource("data")
public void testNotNull(IBlockData data) {
assertNotNull(data);
assertNotNull(CraftBlockData.fromData(data));
}
}

View File

@@ -1,6 +1,8 @@
package org.bukkit;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.core.EnumDirection;
import net.minecraft.world.level.block.BlockCake;
import net.minecraft.world.level.block.BlockChest;
@@ -11,8 +13,7 @@ import org.bukkit.block.data.type.Cake;
import org.bukkit.block.data.type.Chest;
import org.bukkit.craftbukkit.block.data.CraftBlockData;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class BlockDataTest extends AbstractTestingBase {
@@ -21,48 +22,48 @@ public class BlockDataTest extends AbstractTestingBase {
BlockData cakeTest = CraftBlockData.fromData(Blocks.CAKE.defaultBlockState().setValue(BlockCake.BITES, 3));
BlockData materialString = CraftBlockData.newData(Material.CAKE, "[bites=3]");
Assert.assertThat(materialString, is(cakeTest));
assertThat(materialString, is(cakeTest));
BlockData combined = CraftBlockData.newData(null, "cake[bites=3]");
Assert.assertThat(combined, is(cakeTest));
assertThat(combined, is(cakeTest));
BlockData combinedMinecraft = CraftBlockData.newData(null, "minecraft:cake[bites=3]");
Assert.assertThat(combinedMinecraft, is(cakeTest));
assertThat(combinedMinecraft, is(cakeTest));
BlockData inverted = CraftBlockData.newData(null, cakeTest.getAsString());
Assert.assertThat(inverted, is(cakeTest));
assertThat(inverted, is(cakeTest));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testBadMaterial() {
CraftBlockData.newData(null, "invalid");
assertThrows(IllegalArgumentException.class, () -> CraftBlockData.newData(null, "invalid"));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testBadSyntax() {
CraftBlockData.newData(null, "minecraft:cake[bites=3");
assertThrows(IllegalArgumentException.class, () -> CraftBlockData.newData(null, "minecraft:cake[bites=3"));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testDoubleMaterial() {
CraftBlockData.newData(Material.CAKE, "minecraft:cake[bites=3]");
assertThrows(IllegalArgumentException.class, () -> CraftBlockData.newData(Material.CAKE, "minecraft:cake[bites=3]"));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testMistake() {
BlockData cakeTest = CraftBlockData.fromData(Blocks.CAKE.defaultBlockState().setValue(BlockCake.BITES, 3));
CraftBlockData.newData(Material.CAKE, cakeTest.toString());
assertThrows(IllegalArgumentException.class, () -> CraftBlockData.newData(Material.CAKE, cakeTest.toString()));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testItem() {
CraftBlockData.newData(Material.DIAMOND_AXE, null);
assertThrows(IllegalArgumentException.class, () -> CraftBlockData.newData(Material.DIAMOND_AXE, null));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testItemParse() {
CraftBlockData.newData(null, "minecraft:diamond_axe");
assertThrows(IllegalArgumentException.class, () -> CraftBlockData.newData(null, "minecraft:diamond_axe"));
}
@Test
@@ -70,11 +71,11 @@ public class BlockDataTest extends AbstractTestingBase {
Cake cakeTest = (Cake) CraftBlockData.fromData(Blocks.CAKE.defaultBlockState().setValue(BlockCake.BITES, 3));
Cake clone = (Cake) cakeTest.clone();
Assert.assertFalse("Clone did not return new object", cakeTest == clone);
Assert.assertThat("Clone is not equal", clone, is(cakeTest));
assertNotSame(cakeTest, clone, "Clone did not return new object");
assertThat(clone, is(cakeTest), "Clone is not equal");
clone.setBites(1);
Assert.assertThat("Clone is not actually clone", clone, is(not(cakeTest)));
assertThat(clone, is(not(cakeTest)), "Clone is not actually clone");
}
@Test
@@ -85,13 +86,13 @@ public class BlockDataTest extends AbstractTestingBase {
BlockData candidate;
Assert.assertFalse("Target and match are not yet equal", trueTarget.equals(waterlogged));
assertNotEquals(trueTarget, waterlogged, "Target and match are not yet equal");
candidate = trueTarget.merge(waterlogged);
Assert.assertTrue("Target and candidate are now equal", trueTarget.equals(candidate));
assertEquals(trueTarget, candidate, "Target and candidate are now equal");
Assert.assertFalse("Target and match are not yet equal", falseTarget.equals(waterlogged));
assertNotEquals(falseTarget, waterlogged, "Target and match are not yet equal");
candidate = falseTarget.merge(waterlogged);
Assert.assertFalse("Target and candidate are still not equal", falseTarget.equals(candidate));
assertNotEquals(falseTarget, candidate, "Target and candidate are still not equal");
}
@Test
@@ -102,24 +103,24 @@ public class BlockDataTest extends AbstractTestingBase {
BlockData candidate;
Assert.assertFalse("Target and match are not yet equal", trueTarget.equals(any));
assertNotEquals(trueTarget, any, "Target and match are not yet equal");
candidate = trueTarget.merge(any);
Assert.assertTrue("Target and candidate are now equal", trueTarget.equals(candidate));
assertEquals(trueTarget, candidate, "Target and candidate are now equal");
Assert.assertFalse("Target and match are not yet equal", falseTarget.equals(any));
assertNotEquals(falseTarget, any, "Target and match are not yet equal");
candidate = falseTarget.merge(any);
Assert.assertTrue("Target and candidate are now equal", falseTarget.equals(candidate));
assertEquals(falseTarget, candidate, "Target and candidate are now equal");
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testCannotMerge1() {
Chest one = (Chest) CraftBlockData.newData(null, "minecraft:chest[facing=east,waterlogged=true]");
Chest two = (Chest) CraftBlockData.fromData(Blocks.CHEST.defaultBlockState());
one.merge(two);
assertThrows(IllegalArgumentException.class, () -> one.merge(two));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testCannotMerge2() {
Chest one = (Chest) CraftBlockData.newData(null, "minecraft:chest[waterlogged=true]");
Chest two = (Chest) CraftBlockData.newData(null, "minecraft:chest[waterlogged=true]");
@@ -127,30 +128,30 @@ public class BlockDataTest extends AbstractTestingBase {
one.merge(two);
two.setFacing(BlockFace.NORTH);
one.merge(two);
assertThrows(IllegalArgumentException.class, () -> one.merge(two));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testCannotMerge3() {
Chest one = (Chest) CraftBlockData.newData(null, "minecraft:chest[waterlogged=true]");
Chest two = (Chest) CraftBlockData.newData(null, "minecraft:trapped_chest[waterlogged=true]");
one.merge(two);
assertThrows(IllegalArgumentException.class, () -> one.merge(two));
}
@Test
public void testMatch() {
Assert.assertTrue(CraftBlockData.newData(null, "minecraft:chest[facing=east,waterlogged=true]").matches(CraftBlockData.newData(null, "minecraft:chest[waterlogged=true]")));
Assert.assertFalse(CraftBlockData.newData(null, "minecraft:chest[facing=east,waterlogged=false]").matches(CraftBlockData.newData(null, "minecraft:chest[waterlogged=true]")));
Assert.assertTrue(CraftBlockData.newData(null, "minecraft:chest[facing=east,waterlogged=true]").matches(CraftBlockData.newData(null, "minecraft:chest")));
Assert.assertFalse(CraftBlockData.newData(null, "minecraft:trapped_chest[facing=east,waterlogged=false]").matches(CraftBlockData.newData(null, "minecraft:chest[waterlogged=true]")));
Assert.assertTrue(CraftBlockData.newData(null, "minecraft:chest[facing=east,waterlogged=true]").matches(CraftBlockData.newData(null, "minecraft:chest[waterlogged=true,facing=east]")));
assertTrue(CraftBlockData.newData(null, "minecraft:chest[facing=east,waterlogged=true]").matches(CraftBlockData.newData(null, "minecraft:chest[waterlogged=true]")));
assertFalse(CraftBlockData.newData(null, "minecraft:chest[facing=east,waterlogged=false]").matches(CraftBlockData.newData(null, "minecraft:chest[waterlogged=true]")));
assertTrue(CraftBlockData.newData(null, "minecraft:chest[facing=east,waterlogged=true]").matches(CraftBlockData.newData(null, "minecraft:chest")));
assertFalse(CraftBlockData.newData(null, "minecraft:trapped_chest[facing=east,waterlogged=false]").matches(CraftBlockData.newData(null, "minecraft:chest[waterlogged=true]")));
assertTrue(CraftBlockData.newData(null, "minecraft:chest[facing=east,waterlogged=true]").matches(CraftBlockData.newData(null, "minecraft:chest[waterlogged=true,facing=east]")));
Chest one = (Chest) CraftBlockData.fromData(Blocks.CHEST.defaultBlockState().setValue(BlockChest.FACING, EnumDirection.EAST));
Chest two = (Chest) CraftBlockData.newData(null, "minecraft:chest[waterlogged=false]");
Assert.assertTrue(one.matches(two));
Assert.assertFalse(two.matches(one));
assertTrue(one.matches(two));
assertFalse(two.matches(one));
}
@Test
@@ -158,15 +159,15 @@ public class BlockDataTest extends AbstractTestingBase {
String dataString = "minecraft:chest[facing=east,waterlogged=true]";
BlockData data = CraftBlockData.newData(null, dataString);
Assert.assertThat(data.getAsString(true), is(dataString));
Assert.assertThat(data.getAsString(false), is("minecraft:chest[facing=east,type=single,waterlogged=true]"));
assertThat(data.getAsString(true), is(dataString));
assertThat(data.getAsString(false), is("minecraft:chest[facing=east,type=single,waterlogged=true]"));
}
@Test
public void testGetAsString2() {
Chest data = (Chest) CraftBlockData.fromData(Blocks.CHEST.defaultBlockState().setValue(BlockChest.FACING, EnumDirection.EAST));
Assert.assertThat(data.getAsString(true), is("minecraft:chest[facing=east,type=single,waterlogged=false]"));
Assert.assertThat(data.getAsString(false), is("minecraft:chest[facing=east,type=single,waterlogged=false]"));
assertThat(data.getAsString(true), is("minecraft:chest[facing=east,type=single,waterlogged=false]"));
assertThat(data.getAsString(false), is("minecraft:chest[facing=east,type=single,waterlogged=false]"));
}
}

View File

@@ -1,24 +1,23 @@
package org.bukkit;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.EnumChatFormat;
import net.minecraft.network.chat.IChatBaseComponent;
import org.bukkit.craftbukkit.util.CraftChatMessage;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class ChatTest {
@Test
public void testColors() {
for (ChatColor color : ChatColor.values()) {
Assert.assertNotNull(CraftChatMessage.getColor(color));
Assert.assertEquals(color, CraftChatMessage.getColor(CraftChatMessage.getColor(color)));
assertNotNull(CraftChatMessage.getColor(color));
assertEquals(color, CraftChatMessage.getColor(CraftChatMessage.getColor(color)));
}
for (EnumChatFormat format : EnumChatFormat.values()) {
Assert.assertNotNull(CraftChatMessage.getColor(format));
Assert.assertEquals(format, CraftChatMessage.getColor(CraftChatMessage.getColor(format)));
assertNotNull(CraftChatMessage.getColor(format));
assertEquals(format, CraftChatMessage.getColor(CraftChatMessage.getColor(format)));
}
}

View File

@@ -1,41 +1,26 @@
package org.bukkit;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.world.item.EnumColor;
import org.bukkit.support.AbstractTestingBase;
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.params.ParameterizedTest;
import org.junit.jupiter.params.provider.EnumSource;
@RunWith(Parameterized.class)
public class DyeColorsTest extends AbstractTestingBase {
@Parameters(name = "{index}: {0}")
public static List<Object[]> data() {
List<Object[]> list = new ArrayList<Object[]>();
for (DyeColor dye : DyeColor.values()) {
list.add(new Object[] {dye});
}
return list;
}
@Parameter public DyeColor dye;
@Test
public void checkColor() {
@ParameterizedTest
@EnumSource(DyeColor.class)
public void checkColor(DyeColor dye) {
Color color = dye.getColor();
float[] nmsColorArray = EnumColor.byId(dye.getWoolData()).getTextureDiffuseColors();
Color nmsColor = Color.fromRGB((int) (nmsColorArray[0] * 255), (int) (nmsColorArray[1] * 255), (int) (nmsColorArray[2] * 255));
assertThat(color, is(nmsColor));
}
@Test
public void checkFireworkColor() {
@ParameterizedTest
@EnumSource(DyeColor.class)
public void checkFireworkColor(DyeColor dye) {
Color color = dye.getFireworkColor();
int nmsColor = EnumColor.byId(dye.getWoolData()).getFireworkColor();
assertThat(color, is(Color.fromRGB(nmsColor)));

View File

@@ -1,12 +1,12 @@
package org.bukkit;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.resources.MinecraftKey;
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class EnchantmentTest extends AbstractTestingBase {
@@ -17,9 +17,9 @@ public class EnchantmentTest extends AbstractTestingBase {
Enchantment bukkitById = Enchantment.getByKey(CraftNamespacedKey.fromMinecraft(key));
Assert.assertFalse("Unknown enchant name for " + key, bukkitById.getName().startsWith("UNKNOWN"));
assertFalse(bukkitById.getName().startsWith("UNKNOWN"), "Unknown enchant name for " + key);
Assert.assertNotNull("Unknown target for " + key, bukkitById.getItemTarget());
assertNotNull(bukkitById.getItemTarget(), "Unknown target for " + key);
}
}
}

View File

@@ -1,10 +1,10 @@
package org.bukkit;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.core.registries.BuiltInRegistries;
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class GameEventTest extends AbstractTestingBase {
@@ -13,7 +13,7 @@ public class GameEventTest extends AbstractTestingBase {
for (net.minecraft.world.level.gameevent.GameEvent nms : BuiltInRegistries.GAME_EVENT) {
GameEvent bukkit = GameEvent.getByKey(CraftNamespacedKey.fromMinecraft(BuiltInRegistries.GAME_EVENT.getKey(nms)));
Assert.assertNotNull("Bukkit should not be null " + nms, bukkit);
assertNotNull(bukkit, "Bukkit should not be null " + nms);
}
}
}

View File

@@ -1,10 +1,10 @@
package org.bukkit;
import static org.junit.jupiter.api.Assertions.*;
import java.util.Map;
import net.minecraft.world.level.GameRules;
import org.bukkit.craftbukkit.CraftWorld;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class GameRuleTest {
@@ -14,8 +14,8 @@ public class GameRuleTest {
for (GameRule<?> rule : rules) {
GameRule<?> registeredRule = GameRule.getByName(rule.getName());
Assert.assertNotNull("Null GameRule", registeredRule);
Assert.assertEquals("Invalid GameRule equality", rule, registeredRule);
assertNotNull(registeredRule, "Null GameRule");
assertEquals(rule, registeredRule, "Invalid GameRule equality");
}
}
@@ -26,31 +26,31 @@ public class GameRuleTest {
for (Map.Entry<String, GameRules.GameRuleKey<?>> entry : minecraftRules.entrySet()) {
GameRule<?> bukkitRule = GameRule.getByName(entry.getKey());
Assert.assertNotNull("Missing " + entry.getKey(), bukkitRule);
Assert.assertEquals("Invalid GameRule Name", bukkitRule.getName(), entry.getKey());
assertNotNull(bukkitRule, "Missing " + entry.getKey());
assertEquals(bukkitRule.getName(), entry.getKey(), "Invalid GameRule Name");
}
}
@Test(expected = NullPointerException.class)
@Test
public void nullGameRuleName() {
GameRule.getByName(null);
assertThrows(NullPointerException.class, () -> GameRule.getByName(null));
}
@Test
public void emptyGameRuleName() {
Assert.assertNull(GameRule.getByName(""));
assertNull(GameRule.getByName(""));
}
@Test
public void incorrectGameRuleName() {
Assert.assertNull(GameRule.getByName("doAnnounceAdvancements"));
Assert.assertNull(GameRule.getByName("sendCommandBlockFeedback"));
assertNull(GameRule.getByName("doAnnounceAdvancements"));
assertNull(GameRule.getByName("sendCommandBlockFeedback"));
}
@Test
public void invalidCasing() {
Assert.assertNull(GameRule.getByName("CommandBlockOutput"));
Assert.assertNull(GameRule.getByName("spAwnRadius"));
Assert.assertNull(GameRule.getByName("rand0mTickSpeEd"));
assertNull(GameRule.getByName("CommandBlockOutput"));
assertNull(GameRule.getByName("spAwnRadius"));
assertNull(GameRule.getByName("rand0mTickSpeEd"));
}
}

View File

@@ -1,12 +1,12 @@
package org.bukkit;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.resources.MinecraftKey;
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
import org.bukkit.loot.LootTable;
import org.bukkit.loot.LootTables;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class LootTablesTest extends AbstractTestingBase {
@@ -17,8 +17,8 @@ public class LootTablesTest extends AbstractTestingBase {
for (LootTables table : tables) {
LootTable lootTable = Bukkit.getLootTable(table.getKey());
Assert.assertNotNull("Unknown LootTable " + table.getKey(), lootTable);
Assert.assertEquals(lootTable.getKey(), table.getKey());
assertNotNull(lootTable, "Unknown LootTable " + table.getKey());
assertEquals(lootTable.getKey(), table.getKey());
}
}
@@ -28,8 +28,8 @@ public class LootTablesTest extends AbstractTestingBase {
NamespacedKey bukkitKey = CraftNamespacedKey.fromMinecraft(key);
LootTables lootTable = Registry.LOOT_TABLES.get(bukkitKey);
Assert.assertNotNull("Unknown LootTable " + key, lootTable);
Assert.assertEquals(lootTable.getKey(), bukkitKey);
assertNotNull(lootTable, "Unknown LootTable " + key);
assertEquals(lootTable.getKey(), bukkitKey);
}
}
}

View File

@@ -1,7 +1,8 @@
package org.bukkit;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import com.google.common.collect.Maps;
import java.util.ArrayList;
import java.util.Arrays;
@@ -16,7 +17,7 @@ import net.minecraft.resources.MinecraftKey;
import net.minecraft.world.item.Item;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class MaterialTest extends AbstractTestingBase {
@@ -42,8 +43,8 @@ public class MaterialTest extends AbstractTestingBase {
Material material = materials.remove(id);
assertThat("Missing " + name + "(" + id + ")", material, is(not(nullValue())));
assertNotNull("No item mapping for " + name, CraftMagicNumbers.getMaterial(item));
assertThat(material, is(not(nullValue())), "Missing " + name + "(" + id + ")");
assertNotNull(CraftMagicNumbers.getMaterial(item), "No item mapping for " + name);
}
assertThat(materials, is(Collections.EMPTY_MAP));

View File

@@ -1,5 +1,6 @@
package org.bukkit;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.core.registries.BuiltInRegistries;
import org.bukkit.block.data.BlockData;
import org.bukkit.craftbukkit.CraftParticle;
@@ -7,8 +8,7 @@ import org.bukkit.craftbukkit.block.data.CraftBlockData;
import org.bukkit.inventory.ItemStack;
import org.bukkit.material.MaterialData;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class ParticleTest extends AbstractTestingBase {
@@ -34,10 +34,10 @@ public class ParticleTest extends AbstractTestingBase {
data = 0;
}
Assert.assertNotNull("Missing Bukkit->NMS particle mapping for " + bukkit, CraftParticle.toNMS(bukkit, data));
assertNotNull(CraftParticle.toNMS(bukkit, data), "Missing Bukkit->NMS particle mapping for " + bukkit);
}
for (net.minecraft.core.particles.Particle nms : BuiltInRegistries.PARTICLE_TYPE) {
Assert.assertNotNull("Missing NMS->Bukkit particle mapping for " + BuiltInRegistries.PARTICLE_TYPE.getKey(nms), CraftParticle.minecraftToBukkit(nms));
assertNotNull(CraftParticle.minecraftToBukkit(nms), "Missing NMS->Bukkit particle mapping for " + BuiltInRegistries.PARTICLE_TYPE.getKey(nms));
}
}
}

View File

@@ -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();
}

View File

@@ -1,32 +1,29 @@
package org.bukkit;
import static org.junit.jupiter.api.Assertions.*;
import com.google.common.collect.Lists;
import java.lang.reflect.Field;
import java.util.List;
import java.util.Random;
import java.util.stream.Stream;
import org.bukkit.craftbukkit.CraftRegistry;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
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.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
@RunWith(Parameterized.class)
public class PerRegistryTest extends AbstractTestingBase {
private static Random random;
@BeforeClass
@BeforeAll
public static void init() {
random = new Random();
}
@Parameters(name = "{index}: {0}")
public static List<Object[]> data() {
List<Object[]> data = Lists.newArrayList();
public static Stream<Arguments> data() {
List<Arguments> data = Lists.newArrayList();
Field[] registryFields = Registry.class.getFields();
for (Field registryField : registryFields) {
@@ -37,42 +34,42 @@ public class PerRegistryTest extends AbstractTestingBase {
continue;
}
data.add(new Object[] {registry});
data.add(Arguments.of(registry));
} catch (ReflectiveOperationException e) {
e.printStackTrace();
}
}
return data;
return data.stream();
}
@Parameter public Registry<? extends Keyed> registry;
@Test
public void testGet() {
this.registry.forEach(element -> {
@ParameterizedTest
@MethodSource("data")
public void testGet(Registry<?> registry) {
registry.forEach(element -> {
// Values in the registry should be referentially equal to what is returned with #get()
// This ensures that new instances are not created each time #get() is invoked
Assert.assertSame(element, registry.get(element.getKey()));
assertSame(element, registry.get(element.getKey()));
});
}
@Test
public void testMatch() {
this.registry.forEach(element -> {
@ParameterizedTest
@MethodSource("data")
public void testMatch(Registry<?> registry) {
registry.forEach(element -> {
NamespacedKey key = element.getKey();
assertSameMatchWithKeyMessage(element, key.toString()); // namespace:key
assertSameMatchWithKeyMessage(element, key.getKey()); // key
assertSameMatchWithKeyMessage(element, key.toString().replace('_', ' ')); // namespace:key with space
assertSameMatchWithKeyMessage(element, key.getKey().replace('_', ' ')); // key with space
assertSameMatchWithKeyMessage(element, randomizeCase(key.toString())); // nAmeSPaCe:kEY
assertSameMatchWithKeyMessage(element, randomizeCase(key.getKey())); // kEy
assertSameMatchWithKeyMessage(registry, element, key.toString()); // namespace:key
assertSameMatchWithKeyMessage(registry, element, key.getKey()); // key
assertSameMatchWithKeyMessage(registry, element, key.toString().replace('_', ' ')); // namespace:key with space
assertSameMatchWithKeyMessage(registry, element, key.getKey().replace('_', ' ')); // key with space
assertSameMatchWithKeyMessage(registry, element, randomizeCase(key.toString())); // nAmeSPaCe:kEY
assertSameMatchWithKeyMessage(registry, element, randomizeCase(key.getKey())); // kEy
});
}
private void assertSameMatchWithKeyMessage(Keyed element, String key) {
Assert.assertSame(key, element, registry.match(key));
private void assertSameMatchWithKeyMessage(Registry<?> registry, Keyed element, String key) {
assertSame(element, registry.match(key), key);
}
private String randomizeCase(String input) {

View File

@@ -1,7 +1,8 @@
package org.bukkit;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import com.google.common.collect.Lists;
import java.util.Collections;
import java.util.List;
@@ -10,7 +11,7 @@ import net.minecraft.resources.MinecraftKey;
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class PotionEffectTypeTest extends AbstractTestingBase {
@@ -23,11 +24,11 @@ public class PotionEffectTypeTest extends AbstractTestingBase {
PotionEffectType effect = PotionEffectType.getByKey(CraftNamespacedKey.fromMinecraft(key));
String message = String.format("org.bukkit.PotionEffectType is missing '%s'", name);
assertNotNull(message, effect);
assertNotNull(effect, message);
effects.remove(effect);
}
assertThat("org.bukkit.PotionEffectType has too many effects", effects, is(Collections.EMPTY_LIST));
assertThat(effects, is(Collections.EMPTY_LIST), "org.bukkit.PotionEffectType has too many effects");
}
}

View File

@@ -1,5 +1,6 @@
package org.bukkit;
import static org.junit.jupiter.api.Assertions.*;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
@@ -12,8 +13,7 @@ import org.bukkit.craftbukkit.util.CraftNamespacedKey;
import org.bukkit.inventory.meta.trim.TrimMaterial;
import org.bukkit.inventory.meta.trim.TrimPattern;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class RegistryConstantsTest extends AbstractTestingBase {
@@ -45,7 +45,7 @@ public class RegistryConstantsTest extends AbstractTestingBase {
}
Assert.assertTrue(excessKeys.size() + " excess constants(s) in " + clazz.getSimpleName() + " that do not exist: " + excessKeys, excessKeys.isEmpty());
assertTrue(excessKeys.isEmpty(), excessKeys.size() + " excess constants(s) in " + clazz.getSimpleName() + " that do not exist: " + excessKeys);
}
private <T extends Keyed, M> void testMissingConstants(Class<T> clazz, ResourceKey<IRegistry<M>> nmsRegistryKey) {
@@ -59,14 +59,14 @@ public class RegistryConstantsTest extends AbstractTestingBase {
@SuppressWarnings("unchecked")
T bukkitObject = (T) clazz.getField(minecraftKey.getPath().toUpperCase()).get(null);
Assert.assertEquals("Keys are not the same for " + minecraftKey, minecraftKey, CraftNamespacedKey.toMinecraft(bukkitObject.getKey()));
assertEquals(minecraftKey, CraftNamespacedKey.toMinecraft(bukkitObject.getKey()), "Keys are not the same for " + minecraftKey);
} catch (NoSuchFieldException e) {
missingKeys.add(minecraftKey);
} catch (Exception e) {
Assert.fail(e.getMessage());
fail(e.getMessage());
}
}
Assert.assertTrue("Missing (" + missingKeys.size() + ") constants in " + clazz.getSimpleName() + ": " + missingKeys, missingKeys.isEmpty());
assertTrue(missingKeys.isEmpty(), "Missing (" + missingKeys.size() + ") constants in " + clazz.getSimpleName() + ": " + missingKeys);
}
}

View File

@@ -1,40 +1,41 @@
package org.bukkit;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.resources.MinecraftKey;
import org.bukkit.craftbukkit.CraftSound;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class SoundTest extends AbstractTestingBase {
@Test
public void testGetSound() {
for (Sound sound : Sound.values()) {
assertThat(sound.name(), CraftSound.bukkitToMinecraft(sound), is(not(nullValue())));
assertThat(CraftSound.bukkitToMinecraft(sound), is(not(nullValue())), sound.name());
}
}
@Test
public void testReverse() {
for (MinecraftKey effect : BuiltInRegistries.SOUND_EVENT.keySet()) {
assertNotNull(effect + "", Sound.valueOf(effect.getPath().replace('.', '_').toUpperCase(java.util.Locale.ENGLISH)));
assertNotNull(Sound.valueOf(effect.getPath().replace('.', '_').toUpperCase(java.util.Locale.ENGLISH)), effect + "");
}
}
@Test
public void testCategory() {
for (SoundCategory category : SoundCategory.values()) {
assertNotNull(category + "", net.minecraft.sounds.SoundCategory.valueOf(category.name()));
assertNotNull(net.minecraft.sounds.SoundCategory.valueOf(category.name()), category + "");
}
}
@Test
public void testCategoryReverse() {
for (net.minecraft.sounds.SoundCategory category : net.minecraft.sounds.SoundCategory.values()) {
assertNotNull(category + "", SoundCategory.valueOf(category.name()));
assertNotNull(SoundCategory.valueOf(category.name()), category + "");
}
}
}

View File

@@ -1,7 +1,8 @@
package org.bukkit;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import com.google.common.collect.HashMultiset;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.stats.StatisticWrapper;
@@ -9,7 +10,7 @@ import net.minecraft.world.entity.EntityTypes;
import org.bukkit.craftbukkit.CraftStatistic;
import org.bukkit.entity.EntityType;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class StatisticsAndAchievementsTest extends AbstractTestingBase {
@@ -20,7 +21,7 @@ public class StatisticsAndAchievementsTest extends AbstractTestingBase {
if (statistic.getType() == Statistic.Type.ENTITY) {
for (EntityType entity : EntityType.values()) {
if (entity.getName() != null) {
assertNotNull(statistic + " missing for " + entity, CraftStatistic.getEntityStatistic(statistic, entity));
assertNotNull(CraftStatistic.getEntityStatistic(statistic, entity), statistic + " missing for " + entity);
}
}
}
@@ -37,12 +38,12 @@ public class StatisticsAndAchievementsTest extends AbstractTestingBase {
String message = String.format("org.bukkit.Statistic is missing: '%s'", statistic);
Statistic subject = CraftStatistic.getBukkitStatistic(statistic);
assertThat(message, subject, is(not(nullValue())));
assertThat(subject, is(not(nullValue())), message);
if (wrapper.getRegistry() == BuiltInRegistries.BLOCK || wrapper.getRegistry() == BuiltInRegistries.ITEM) {
assertNotNull("Material type map missing for " + wrapper.getRegistry().getKey(child), CraftStatistic.getMaterialFromStatistic(statistic));
assertNotNull(CraftStatistic.getMaterialFromStatistic(statistic), "Material type map missing for " + wrapper.getRegistry().getKey(child));
} else if (wrapper.getRegistry() == BuiltInRegistries.ENTITY_TYPE) {
assertNotNull("Entity type map missing for " + EntityTypes.getKey((EntityTypes<?>) child), CraftStatistic.getEntityTypeFromStatistic((net.minecraft.stats.Statistic<EntityTypes<?>>) statistic));
assertNotNull(CraftStatistic.getEntityTypeFromStatistic((net.minecraft.stats.Statistic<EntityTypes<?>>) statistic), "Entity type map missing for " + EntityTypes.getKey((EntityTypes<?>) child));
}
statistics.add(subject);
@@ -51,7 +52,7 @@ public class StatisticsAndAchievementsTest extends AbstractTestingBase {
for (Statistic statistic : Statistic.values()) {
String message = String.format("org.bukkit.Statistic.%s does not have a corresponding minecraft statistic", statistic.name());
assertThat(message, statistics.remove(statistic, statistics.count(statistic)), is(greaterThan(0)));
assertThat(statistics.remove(statistic, statistics.count(statistic)), is(greaterThan(0)), message);
}
}
}

View File

@@ -1,10 +1,10 @@
package org.bukkit.block.banner;
import junit.framework.Assert;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.level.block.entity.EnumBannerPatternType;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class PatternTypeTest extends AbstractTestingBase {
@@ -13,7 +13,7 @@ public class PatternTypeTest extends AbstractTestingBase {
for (EnumBannerPatternType nms : BuiltInRegistries.BANNER_PATTERN) {
PatternType bukkit = PatternType.getByIdentifier(nms.getHashname());
Assert.assertNotNull("No Bukkit banner for " + nms + " " + nms.getHashname(), bukkit);
assertNotNull(bukkit, "No Bukkit banner for " + nms + " " + nms.getHashname());
}
}
@@ -28,7 +28,7 @@ public class PatternTypeTest extends AbstractTestingBase {
}
}
Assert.assertNotNull("No NMS banner for " + bukkit + " " + bukkit.getIdentifier(), found);
assertNotNull(found, "No NMS banner for " + bukkit + " " + bukkit.getIdentifier());
}
}
}

View File

@@ -1,22 +1,22 @@
package org.bukkit.craftbukkit;
import static org.junit.jupiter.api.Assertions.*;
import org.bukkit.HeightMap;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class HeightMapTest {
@Test
public void heightMapConversionFromNMSToBukkitShouldNotThrowExceptio() {
for (net.minecraft.world.level.levelgen.HeightMap.Type nmsHeightMapType : net.minecraft.world.level.levelgen.HeightMap.Type.values()) {
Assert.assertNotNull("fromNMS", CraftHeightMap.fromNMS(nmsHeightMapType));
assertNotNull(CraftHeightMap.fromNMS(nmsHeightMapType), "fromNMS");
}
}
@Test
public void heightMapConversionFromBukkitToNMSShouldNotThrowExceptio() {
for (HeightMap bukkitHeightMap : HeightMap.values()) {
Assert.assertNotNull("toNMS", CraftHeightMap.toNMS(bukkitHeightMap));
assertNotNull(CraftHeightMap.toNMS(bukkitHeightMap), "toNMS");
}
}
}

View File

@@ -1,11 +1,11 @@
package org.bukkit.craftbukkit.attribute;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.entity.ai.attributes.AttributeBase;
import org.bukkit.attribute.Attribute;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class AttributeTest extends AbstractTestingBase {
@@ -14,7 +14,7 @@ public class AttributeTest extends AbstractTestingBase {
for (AttributeBase nms : BuiltInRegistries.ATTRIBUTE) {
Attribute bukkit = CraftAttribute.minecraftToBukkit(nms);
Assert.assertNotNull(nms.toString(), bukkit);
assertNotNull(bukkit, nms.toString());
}
}
@@ -23,7 +23,7 @@ public class AttributeTest extends AbstractTestingBase {
for (Attribute attribute : Attribute.values()) {
AttributeBase nms = CraftAttribute.bukkitToMinecraft(attribute);
Assert.assertNotNull(attribute.name(), nms);
assertNotNull(nms, attribute.name());
}
}
}

View File

@@ -1,9 +1,6 @@
package org.bukkit.craftbukkit.block;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.core.BlockPosition;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.level.block.Block;
@@ -12,7 +9,7 @@ import net.minecraft.world.level.block.entity.TileEntity;
import org.bukkit.Material;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class BlockStateTest extends AbstractTestingBase {
@@ -24,7 +21,7 @@ public class BlockStateTest extends AbstractTestingBase {
boolean isCraftBlockEntityState = CraftBlockEntityState.class.isAssignableFrom(blockStateType);
if (block instanceof ITileEntity) {
assertTrue(material + " has BlockState of type " + blockStateType.getName() + ", but expected subtype of CraftBlockEntityState", isCraftBlockEntityState);
assertTrue(isCraftBlockEntityState, material + " has BlockState of type " + blockStateType.getName() + ", but expected subtype of CraftBlockEntityState");
// check tile entity type
TileEntity tileEntity = ((ITileEntity) block).newBlockEntity(BlockPosition.ZERO, block.defaultBlockState());
@@ -37,10 +34,10 @@ public class BlockStateTest extends AbstractTestingBase {
fail(material + " has no tile entity, it be added to CraftBlockStates#isTileEntityOptional");
}
assertNotNull(material + " has no tile entity expected tile entity of type " + tileEntity.getClass(), materialTileEntity);
assertSame(material + " has unexpected tile entity type, expected " + tileEntity.getClass() + " but got " + tileEntity.getClass(), materialTileEntity.getClass(), tileEntity.getClass());
assertNotNull(materialTileEntity, material + " has no tile entity expected tile entity of type " + tileEntity.getClass());
assertSame(materialTileEntity.getClass(), tileEntity.getClass(), material + " has unexpected tile entity type, expected " + tileEntity.getClass() + " but got " + tileEntity.getClass());
} else {
assertTrue(material + " has unexpected CraftBlockEntityState subytype " + blockStateType.getName() + " (but is not a tile)", !isCraftBlockEntityState);
assertFalse(isCraftBlockEntityState, material + " has unexpected CraftBlockEntityState subytype " + blockStateType.getName() + " (but is not a tile)");
}
}
}

View File

@@ -1,10 +1,10 @@
package org.bukkit.craftbukkit.generator;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class ChunkDataTest extends AbstractTestingBase {
@@ -35,28 +35,28 @@ public class ChunkDataTest extends AbstractTestingBase {
@Test
public void testMinHeight() {
OldCraftChunkData data = new OldCraftChunkData(-128, 128, BIOMES);
assertTrue("Could not set block below min height", testSetBlock(data, 0, -256, 0, RED_WOOL, AIR));
assertTrue("Could set block above min height", testSetBlock(data, 0, -64, 0, RED_WOOL, RED_WOOL));
assertTrue(testSetBlock(data, 0, -256, 0, RED_WOOL, AIR), "Could not set block below min height");
assertTrue(testSetBlock(data, 0, -64, 0, RED_WOOL, RED_WOOL), "Could set block above min height");
}
@Test
public void testMaxHeight() {
OldCraftChunkData data = new OldCraftChunkData(0, 128, BIOMES);
assertTrue("Could not set block above max height", testSetBlock(data, 0, 128, 0, RED_WOOL, AIR));
assertTrue("Could set block below max height", testSetBlock(data, 0, 127, 0, RED_WOOL, RED_WOOL));
assertTrue(testSetBlock(data, 0, 128, 0, RED_WOOL, AIR), "Could not set block above max height");
assertTrue(testSetBlock(data, 0, 127, 0, RED_WOOL, RED_WOOL), "Could set block below max height");
}
@Test
public void testBoundsCheckingSingle() {
OldCraftChunkData data = new OldCraftChunkData(0, 256, BIOMES);
assertTrue("Can set block inside chunk bounds", testSetBlock(data, 0, 0, 0, RED_WOOL, RED_WOOL));
assertTrue("Can set block inside chunk bounds", testSetBlock(data, 15, 255, 15, RED_WOOL, RED_WOOL));
assertTrue("Can no set block outside chunk bounds", testSetBlock(data, -1, 0, 0, RED_WOOL, AIR));
assertTrue("Can no set block outside chunk bounds", testSetBlock(data, 0, -1, 0, RED_WOOL, AIR));
assertTrue("Can no set block outside chunk bounds", testSetBlock(data, 0, 0, -1, RED_WOOL, AIR));
assertTrue("Can no set block outside chunk bounds", testSetBlock(data, 16, 0, 0, RED_WOOL, AIR));
assertTrue("Can no set block outside chunk bounds", testSetBlock(data, 0, 256, 0, RED_WOOL, AIR));
assertTrue("Can no set block outside chunk bounds", testSetBlock(data, 0, 0, 16, RED_WOOL, AIR));
assertTrue(testSetBlock(data, 0, 0, 0, RED_WOOL, RED_WOOL), "Can set block inside chunk bounds");
assertTrue(testSetBlock(data, 15, 255, 15, RED_WOOL, RED_WOOL), "Can set block inside chunk bounds");
assertTrue(testSetBlock(data, -1, 0, 0, RED_WOOL, AIR), "Can no set block outside chunk bounds");
assertTrue(testSetBlock(data, 0, -1, 0, RED_WOOL, AIR), "Can no set block outside chunk bounds");
assertTrue(testSetBlock(data, 0, 0, -1, RED_WOOL, AIR), "Can no set block outside chunk bounds");
assertTrue(testSetBlock(data, 16, 0, 0, RED_WOOL, AIR), "Can no set block outside chunk bounds");
assertTrue(testSetBlock(data, 0, 256, 0, RED_WOOL, AIR), "Can no set block outside chunk bounds");
assertTrue(testSetBlock(data, 0, 0, 16, RED_WOOL, AIR), "Can no set block outside chunk bounds");
}
@Test

View File

@@ -1,7 +1,7 @@
package org.bukkit.craftbukkit.inventory;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -13,7 +13,7 @@ import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class CompositeSerialization extends AbstractTestingBase {
@@ -63,7 +63,7 @@ public class CompositeSerialization extends AbstractTestingBase {
assertThat(stacks, hasSize(raw.size()));
for (int i = 0; i < raw.size(); i++) {
assertThat(String.valueOf(i), (Object) stacks.get(i), is((Object) raw.get(i)));
assertThat((Object) stacks.get(i), is((Object) raw.get(i)), String.valueOf(i));
}
}
}

View File

@@ -1,6 +1,6 @@
package org.bukkit.craftbukkit.inventory;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import java.io.StringReader;
import java.lang.reflect.Array;
import java.nio.ByteBuffer;
@@ -18,52 +18,52 @@ import org.bukkit.inventory.meta.tags.CustomItemTagContainer;
import org.bukkit.inventory.meta.tags.ItemTagAdapterContext;
import org.bukkit.inventory.meta.tags.ItemTagType;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
public class DeprecatedItemMetaCustomValueTest extends AbstractTestingBase {
private static NamespacedKey VALID_KEY;
@Before
public void setup() {
@BeforeAll
public static void setup() {
VALID_KEY = new NamespacedKey("test", "validkey");
}
/*
Sets a test
*/
@Test(expected = IllegalArgumentException.class)
@Test
public void testSetNoAdapter() {
ItemMeta itemMeta = createNewItemMeta();
itemMeta.getCustomTagContainer().setCustomTag(VALID_KEY, new PrimitiveTagType<>(boolean.class), true);
assertThrows(IllegalArgumentException.class, () -> itemMeta.getCustomTagContainer().setCustomTag(VALID_KEY, new PrimitiveTagType<>(boolean.class), true));
}
/*
Contains a tag
*/
@Test(expected = IllegalArgumentException.class)
@Test
public void testHasNoAdapter() {
ItemMeta itemMeta = createNewItemMeta();
itemMeta.getCustomTagContainer().setCustomTag(VALID_KEY, ItemTagType.INTEGER, 1); // We gotta set this so we at least try to compare it
itemMeta.getCustomTagContainer().hasCustomTag(VALID_KEY, new PrimitiveTagType<>(boolean.class));
assertThrows(IllegalArgumentException.class, () -> itemMeta.getCustomTagContainer().hasCustomTag(VALID_KEY, new PrimitiveTagType<>(boolean.class)));
}
/*
Getting a tag
*/
@Test(expected = IllegalArgumentException.class)
@Test
public void testGetNoAdapter() {
ItemMeta itemMeta = createNewItemMeta();
itemMeta.getCustomTagContainer().setCustomTag(VALID_KEY, ItemTagType.INTEGER, 1); //We gotta set this so we at least try to compare it
itemMeta.getCustomTagContainer().getCustomTag(VALID_KEY, new PrimitiveTagType<>(boolean.class));
assertThrows(IllegalArgumentException.class, () -> itemMeta.getCustomTagContainer().getCustomTag(VALID_KEY, new PrimitiveTagType<>(boolean.class)));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testGetWrongType() {
ItemMeta itemMeta = createNewItemMeta();
itemMeta.getCustomTagContainer().setCustomTag(VALID_KEY, ItemTagType.INTEGER, 1);
itemMeta.getCustomTagContainer().getCustomTag(VALID_KEY, ItemTagType.STRING);
assertThrows(IllegalArgumentException.class, () -> itemMeta.getCustomTagContainer().getCustomTag(VALID_KEY, ItemTagType.STRING));
}
@Test

View File

@@ -1,21 +1,20 @@
package org.bukkit.craftbukkit.inventory;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
import org.bukkit.Material;
import org.bukkit.inventory.ItemFactory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.support.AbstractTestingBase;
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.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
@RunWith(Parameterized.class)
public class FactoryItemMaterialTest extends AbstractTestingBase {
static final ItemFactory factory = CraftItemFactory.instance();
static final StringBuilder buffer = new StringBuilder();
@@ -41,19 +40,17 @@ public class FactoryItemMaterialTest extends AbstractTestingBase {
return buffer.delete(0, Integer.MAX_VALUE).append(from.getClass().getName()).append('(').append(from.name()).append(") to ").append(to.getClass().getName()).append('(').append(to.name()).append(')').toString();
}
@Parameters(name = "Material[{index}]:{0}")
public static List<Object[]> data() {
List<Object[]> list = new ArrayList<Object[]>();
public static Stream<Arguments> data() {
List<Arguments> list = new ArrayList<>();
for (Material material : materials) {
list.add(new Object[] {material});
list.add(Arguments.of(material));
}
return list;
return list.stream();
}
@Parameter(0) public Material material;
@Test
public void itemStack() {
@ParameterizedTest
@MethodSource("data")
public void itemStack(Material material) {
ItemStack bukkitStack = new ItemStack(material);
CraftItemStack craftStack = CraftItemStack.asCraftCopy(bukkitStack);
ItemMeta meta = factory.getItemMeta(material);
@@ -65,8 +62,9 @@ public class FactoryItemMaterialTest extends AbstractTestingBase {
}
}
@Test
public void generalCase() {
@ParameterizedTest
@MethodSource("data")
public void generalCase(Material material) {
CraftMetaItem meta = (CraftMetaItem) factory.getItemMeta(material);
if (meta == null) {
assertThat(material, is(Material.AIR));
@@ -80,8 +78,9 @@ public class FactoryItemMaterialTest extends AbstractTestingBase {
}
}
@Test
public void asMetaFor() {
@ParameterizedTest
@MethodSource("data")
public void asMetaFor(Material material) {
final CraftMetaItem baseMeta = (CraftMetaItem) factory.getItemMeta(material);
if (baseMeta == null) {
assertThat(material, is(Material.AIR));
@@ -96,19 +95,20 @@ public class FactoryItemMaterialTest extends AbstractTestingBase {
final String testName = name(material, other);
if (otherMeta == null) {
assertThat(testName, other, is(Material.AIR));
assertThat(other, is(Material.AIR), testName);
continue;
}
assertTrue(testName, factory.isApplicable(otherMeta, craftStack));
assertTrue(testName, factory.isApplicable(otherMeta, bukkitStack));
assertTrue(testName, factory.isApplicable(otherMeta, other));
assertTrue(testName, otherMeta.applicableTo(other));
assertTrue(factory.isApplicable(otherMeta, craftStack), testName);
assertTrue(factory.isApplicable(otherMeta, bukkitStack), testName);
assertTrue(factory.isApplicable(otherMeta, other), testName);
assertTrue(otherMeta.applicableTo(other), testName);
}
}
@Test
public void blankEqualities() {
@ParameterizedTest
@MethodSource("data")
public void blankEqualities(Material material) {
if (material == Material.AIR) {
return;
}
@@ -137,17 +137,17 @@ public class FactoryItemMaterialTest extends AbstractTestingBase {
final CraftMetaItem otherMeta = (CraftMetaItem) factory.asMetaFor(baseMetaClone, other);
if (otherMeta == null) {
assertThat(testName, other, is(Material.AIR));
assertThat(other, is(Material.AIR), testName);
continue;
}
assertTrue(testName, factory.equals(baseMeta, otherMeta));
assertTrue(testName, factory.equals(otherMeta, baseMeta));
assertTrue(factory.equals(baseMeta, otherMeta), testName);
assertTrue(factory.equals(otherMeta, baseMeta), testName);
assertThat(testName, baseMeta, is(otherMeta));
assertThat(testName, otherMeta, is(baseMeta));
assertThat(baseMeta, is(otherMeta), testName);
assertThat(otherMeta, is(baseMeta), testName);
assertThat(testName, baseMeta.hashCode(), is(otherMeta.hashCode()));
assertThat(baseMeta.hashCode(), is(otherMeta.hashCode()), testName);
}
}
}

View File

@@ -1,10 +1,11 @@
package org.bukkit.craftbukkit.inventory;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import java.lang.reflect.Method;
import org.bukkit.Material;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class ItemMetaCloneTest {
@@ -14,8 +15,8 @@ public class ItemMetaCloneTest {
Class<?> clazz = CraftItemFactory.instance().getItemMeta(material).getClass();
Method clone = clazz.getDeclaredMethod("clone");
assertNotNull("Class " + clazz + " does not override clone()", clone);
assertThat("Class " + clazz + " clone return type does not match", clone.getReturnType(), is(equalTo(clazz)));
assertNotNull(clone, "Class " + clazz + " does not override clone()");
assertThat(clone.getReturnType(), is(equalTo(clazz)), "Class " + clazz + " clone return type does not match");
}
}
}

View File

@@ -1,27 +1,24 @@
package org.bukkit.craftbukkit.inventory;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.stream.Stream;
import org.bukkit.Material;
import org.bukkit.configuration.serialization.DelegateDeserialization;
import org.bukkit.craftbukkit.Overridden;
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.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
@RunWith(Parameterized.class)
public class ItemMetaImplementationOverrideTest {
static final Class<CraftMetaItem> parent = CraftMetaItem.class;
@Parameters(name = "[{index}]:{1}")
public static List<Object[]> data() {
final List<Object[]> testData = new ArrayList<Object[]>();
public static Stream<Arguments> data() {
final List<Arguments> testData = new ArrayList<>();
List<Class<? extends CraftMetaItem>> classes = new ArrayList<Class<? extends CraftMetaItem>>();
for (Material material : ItemStackTest.COMPOUND_MATERIALS) {
@@ -42,7 +39,7 @@ public class ItemMetaImplementationOverrideTest {
for (final Class<?> clazz : classes) {
for (final Method method : list) {
testData.add(
new Object[] {
Arguments.of(
new Callable<Method>() {
@Override
public Method call() throws Exception {
@@ -50,12 +47,12 @@ public class ItemMetaImplementationOverrideTest {
}
},
clazz.getSimpleName() + " contains " + method.getName()
}
)
);
}
testData.add(
new Object[] {
Arguments.of(
new Callable<DelegateDeserialization>() {
@Override
public DelegateDeserialization call() throws Exception {
@@ -63,18 +60,16 @@ public class ItemMetaImplementationOverrideTest {
}
},
clazz.getSimpleName() + " contains annotation " + DelegateDeserialization.class
}
)
);
}
return testData;
return testData.stream();
}
@Parameter(0) public Callable<?> test;
@Parameter(1) public String name;
@Test
public void testClass() throws Throwable {
assertThat(name, test.call(), is(not(nullValue())));
@ParameterizedTest
@MethodSource("data")
public void testClass(Callable<?> test, String name) throws Throwable {
assertThat(test.call(), is(not(nullValue())), name);
}
}

View File

@@ -1,7 +1,8 @@
package org.bukkit.craftbukkit.inventory;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -61,30 +62,30 @@ import org.bukkit.potion.PotionData;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.potion.PotionType;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class ItemMetaTest extends AbstractTestingBase {
static final int MAX_FIREWORK_POWER = 127; // Please update ItemStackFireworkTest if/when this gets changed.
@Test(expected = IllegalArgumentException.class)
@Test
public void testPowerLimitExact() {
newFireworkMeta().setPower(MAX_FIREWORK_POWER + 1);
assertThrows(IllegalArgumentException.class, () -> newFireworkMeta().setPower(MAX_FIREWORK_POWER + 1));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testPowerLimitMax() {
newFireworkMeta().setPower(Integer.MAX_VALUE);
assertThrows(IllegalArgumentException.class, () -> newFireworkMeta().setPower(Integer.MAX_VALUE));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testPowerLimitMin() {
newFireworkMeta().setPower(Integer.MIN_VALUE);
assertThrows(IllegalArgumentException.class, () -> newFireworkMeta().setPower(Integer.MIN_VALUE));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testPowerLimitNegative() {
newFireworkMeta().setPower(-1);
assertThrows(IllegalArgumentException.class, () -> newFireworkMeta().setPower(-1));
}
@Test
@@ -92,7 +93,7 @@ public class ItemMetaTest extends AbstractTestingBase {
for (int i = 0; i <= MAX_FIREWORK_POWER; i++) {
FireworkMeta firework = newFireworkMeta();
firework.setPower(i);
assertThat(String.valueOf(i), firework.getPower(), is(i));
assertThat(firework.getPower(), is(i), String.valueOf(i));
}
}
@@ -152,7 +153,7 @@ public class ItemMetaTest extends AbstractTestingBase {
craft.setItemMeta(craft.getItemMeta());
ItemStack bukkit = new ItemStack(craft);
assertThat(craft, is(bukkit));
assertThat(bukkit, is((ItemStack) craft));
assertThat(bukkit, is(craft));
}
@Test
@@ -179,14 +180,14 @@ public class ItemMetaTest extends AbstractTestingBase {
ItemMeta meta = stack.getItemMeta();
if (block instanceof ITileEntity) {
assertTrue(stack + " has meta of type " + meta + " expected BlockStateMeta", meta instanceof BlockStateMeta);
assertTrue(meta instanceof BlockStateMeta, stack + " has meta of type " + meta + " expected BlockStateMeta");
BlockStateMeta blockState = (BlockStateMeta) meta;
assertNotNull(stack + " has null block state", blockState.getBlockState());
assertNotNull(blockState.getBlockState(), stack + " has null block state");
blockState.setBlockState(blockState.getBlockState());
} else {
assertTrue(stack + " has unexpected meta of type BlockStateMeta (but is not a tile)", !(meta instanceof BlockStateMeta));
assertFalse(meta instanceof BlockStateMeta, stack + " has unexpected meta of type BlockStateMeta (but is not a tile)");
}
}
}
@@ -200,9 +201,9 @@ public class ItemMetaTest extends AbstractTestingBase {
CraftMetaItem baseMeta = (CraftMetaItem) Bukkit.getItemFactory().getItemMeta(material);
ItemMeta baseMetaItem = CraftItemStack.getItemMeta(item.getDefaultInstance());
assertTrue(material + " is not handled in CraftItemFactory", baseMeta instanceof CraftMetaSpawnEgg);
assertTrue(material + " is not applicable to CraftMetaSpawnEgg", baseMeta.applicableTo(material));
assertTrue(material + " is not handled in CraftItemStack", baseMetaItem instanceof SpawnEggMeta);
assertTrue(baseMeta instanceof CraftMetaSpawnEgg, material + " is not handled in CraftItemFactory");
assertTrue(baseMeta.applicableTo(material), material + " is not applicable to CraftMetaSpawnEgg");
assertTrue(baseMetaItem instanceof SpawnEggMeta, material + " is not handled in CraftItemStack");
}
}
}
@@ -411,7 +412,7 @@ public class ItemMetaTest extends AbstractTestingBase {
}
);
assertThat("Forgotten test?", providers, hasSize(ItemStackTest.COMPOUND_MATERIALS.length - 4/* Normal item meta, skulls, eggs and tile entities */));
assertThat(providers, hasSize(ItemStackTest.COMPOUND_MATERIALS.length - 4/* Normal item meta, skulls, eggs and tile entities */), "Forgotten test?");
for (final StackProvider provider : providers) {
downCastTest(new BukkitWrapper(provider));
@@ -452,8 +453,8 @@ public class ItemMetaTest extends AbstractTestingBase {
final ItemStack craftBlank = CraftItemStack.asCraftCopy(blank);
// Check that equality and similarity works for each meta implementation
assertThat(name, provider.stack(), is(provider.stack()));
assertThat(name, provider.stack().isSimilar(provider.stack()), is(true));
assertThat(provider.stack(), is(provider.stack()), name);
assertThat(provider.stack().isSimilar(provider.stack()), is(true), name);
downCastTest(name, provider.stack(), blank);
blank.setItemMeta(blank.getItemMeta());
@@ -465,11 +466,11 @@ public class ItemMetaTest extends AbstractTestingBase {
}
private void downCastTest(final String name, final ItemStack stack, final ItemStack blank) {
assertThat(name, stack, is(not(blank)));
assertThat(name, stack.getItemMeta(), is(not(blank.getItemMeta())));
assertThat(stack, is(not(blank)), name);
assertThat(stack.getItemMeta(), is(not(blank.getItemMeta())), name);
stack.setType(Material.STONE);
assertThat(name, stack, is(blank));
assertThat(stack, is(blank), name);
}
}

View File

@@ -3,21 +3,15 @@ package org.bukkit.craftbukkit.inventory;
import com.google.common.base.Joiner;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
import org.bukkit.Material;
import org.bukkit.craftbukkit.inventory.ItemStackTest.CompoundOperator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.Operator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.StackProvider;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.BookMeta;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.provider.Arguments;
@RunWith(Parameterized.class)
public class ItemStackBookTest extends ItemStackTest {
@Parameters(name = "[{index}]:{" + NAME_PARAMETER + "}")
public static List<Object[]> data() {
public static Stream<Arguments> data() {
return StackProvider.compound(operators(), "%s %s", NAME_PARAMETER, Material.WRITTEN_BOOK, Material.WRITABLE_BOOK);
}

View File

@@ -3,22 +3,16 @@ package org.bukkit.craftbukkit.inventory;
import com.google.common.base.Joiner;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
import org.bukkit.Material;
import org.bukkit.craftbukkit.inventory.ItemStackTest.CompoundOperator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.Operator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.StackProvider;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.provider.Arguments;
@RunWith(Parameterized.class)
public class ItemStackEnchantStorageTest extends ItemStackTest {
@Parameters(name = "[{index}]:{" + NAME_PARAMETER + "}")
public static List<Object[]> data() {
public static Stream<Arguments> data() {
return StackProvider.compound(operators(), "%s %s", NAME_PARAMETER, Material.ENCHANTED_BOOK);
}

View File

@@ -3,24 +3,18 @@ package org.bukkit.craftbukkit.inventory;
import com.google.common.base.Joiner;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
import org.bukkit.Color;
import org.bukkit.FireworkEffect;
import org.bukkit.FireworkEffect.Type;
import org.bukkit.Material;
import org.bukkit.craftbukkit.inventory.ItemStackTest.CompoundOperator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.Operator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.StackProvider;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.FireworkEffectMeta;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.provider.Arguments;
@RunWith(Parameterized.class)
public class ItemStackFireworkChargeTest extends ItemStackTest {
@Parameters(name = "[{index}]:{" + NAME_PARAMETER + "}")
public static List<Object[]> data() {
public static Stream<Arguments> data() {
return StackProvider.compound(operators(), "%s %s", NAME_PARAMETER, Material.FIREWORK_STAR);
}

View File

@@ -3,24 +3,18 @@ package org.bukkit.craftbukkit.inventory;
import com.google.common.base.Joiner;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
import org.bukkit.Color;
import org.bukkit.FireworkEffect;
import org.bukkit.FireworkEffect.Type;
import org.bukkit.Material;
import org.bukkit.craftbukkit.inventory.ItemStackTest.CompoundOperator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.Operator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.StackProvider;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.FireworkMeta;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.provider.Arguments;
@RunWith(Parameterized.class)
public class ItemStackFireworkTest extends ItemStackTest {
@Parameters(name = "[{index}]:{" + NAME_PARAMETER + "}")
public static List<Object[]> data() {
public static Stream<Arguments> data() {
return StackProvider.compound(operators(), "%s %s", NAME_PARAMETER, Material.FIREWORK_ROCKET);
}

View File

@@ -3,22 +3,16 @@ package org.bukkit.craftbukkit.inventory;
import com.google.common.base.Joiner;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
import org.bukkit.Color;
import org.bukkit.Material;
import org.bukkit.craftbukkit.inventory.ItemStackTest.CompoundOperator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.Operator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.StackProvider;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.LeatherArmorMeta;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.provider.Arguments;
@RunWith(Parameterized.class)
public class ItemStackLeatherTest extends ItemStackTest {
@Parameters(name = "[{index}]:{" + NAME_PARAMETER + "}")
public static List<Object[]> data() {
public static Stream<Arguments> data() {
return StackProvider.compound(operators(), "%s %s", NAME_PARAMETER, Material.LEATHER_BOOTS, Material.LEATHER_CHESTPLATE, Material.LEATHER_HELMET, Material.LEATHER_LEGGINGS);
}

View File

@@ -3,22 +3,16 @@ package org.bukkit.craftbukkit.inventory;
import com.google.common.base.Joiner;
import java.util.Arrays;
import java.util.List;
import org.bukkit.craftbukkit.inventory.ItemStackTest.CompoundOperator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.Operator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.StackProvider;
import java.util.stream.Stream;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.Repairable;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.provider.Arguments;
@RunWith(Parameterized.class)
public class ItemStackLoreEnchantmentTest extends ItemStackTest {
@Parameters(name = "[{index}]:{" + NAME_PARAMETER + "}")
public static List<Object[]> data() {
public static Stream<Arguments> data() {
return StackProvider.compound(operators(), "%s %s", NAME_PARAMETER, ItemStackTest.COMPOUND_MATERIALS);
}

View File

@@ -3,21 +3,15 @@ package org.bukkit.craftbukkit.inventory;
import com.google.common.base.Joiner;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
import org.bukkit.Material;
import org.bukkit.craftbukkit.inventory.ItemStackTest.CompoundOperator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.Operator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.StackProvider;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.MapMeta;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.provider.Arguments;
@RunWith(Parameterized.class)
public class ItemStackMapTest extends ItemStackTest {
@Parameters(name = "[{index}]:{" + NAME_PARAMETER + "}")
public static List<Object[]> data() {
public static Stream<Arguments> data() {
return StackProvider.compound(operators(), "%s %s", NAME_PARAMETER, Material.FILLED_MAP);
}

View File

@@ -3,22 +3,16 @@ package org.bukkit.craftbukkit.inventory;
import com.google.common.base.Joiner;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
import org.bukkit.Material;
import org.bukkit.craftbukkit.inventory.ItemStackTest.CompoundOperator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.Operator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.StackProvider;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.potion.PotionEffectType;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.provider.Arguments;
@RunWith(Parameterized.class)
public class ItemStackPotionsTest extends ItemStackTest {
@Parameters(name = "[{index}]:{" + NAME_PARAMETER + "}")
public static List<Object[]> data() {
public static Stream<Arguments> data() {
return StackProvider.compound(operators(), "%s %s", NAME_PARAMETER, Material.POTION);
}

View File

@@ -3,21 +3,15 @@ package org.bukkit.craftbukkit.inventory;
import com.google.common.base.Joiner;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
import org.bukkit.Material;
import org.bukkit.craftbukkit.inventory.ItemStackTest.CompoundOperator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.Operator;
import org.bukkit.craftbukkit.inventory.ItemStackTest.StackProvider;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.junit.jupiter.params.provider.Arguments;
@RunWith(Parameterized.class)
public class ItemStackSkullTest extends ItemStackTest {
@Parameters(name = "[{index}]:{" + NAME_PARAMETER + "}")
public static List<Object[]> data() {
public static Stream<Arguments> data() {
return StackProvider.compound(operators(), "%s %s", NAME_PARAMETER, Material.PLAYER_HEAD);
}

View File

@@ -1,10 +1,9 @@
package org.bukkit.craftbukkit.inventory;
import static org.bukkit.support.Matchers.*;
import static org.bukkit.support.MatcherAssert.*;
import static org.bukkit.support.Matchers.sameHash;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -15,6 +14,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
import org.bukkit.Material;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
@@ -24,14 +24,11 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.support.AbstractTestingBase;
import org.bukkit.util.io.BukkitObjectInputStream;
import org.bukkit.util.io.BukkitObjectOutputStream;
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.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
@RunWith(Parameterized.class)
public class ItemStackTest extends AbstractTestingBase {
abstract static class StackProvider {
final Material material;
@@ -70,8 +67,8 @@ public class ItemStackTest extends AbstractTestingBase {
* @param materials
* @return
*/
static List<Object[]> compound(final List<Object[]> parameterList, final String nameFormat, final int nameIndex, final Material...materials) {
final List<Object[]> out = new ArrayList<Object[]>();
static Stream<Arguments> compound(final List<Object[]> parameterList, final String nameFormat, final int nameIndex, final Material... materials) {
final List<Arguments> out = new ArrayList<>();
for (Object[] params : parameterList) {
final int len = params.length;
for (final Material material : materials) {
@@ -89,10 +86,10 @@ public class ItemStackTest extends AbstractTestingBase {
}
}
paramsOut[nameIndex] = String.format(nameFormat, paramsOut[nameIndex], material);
out.add(paramsOut);
out.add(Arguments.of(paramsOut));
}
}
return out;
return out.stream();
}
}
@@ -305,9 +302,8 @@ public class ItemStackTest extends AbstractTestingBase {
}
}
@Parameters(name = "[{index}]:{" + NAME_PARAMETER + "}")
public static List<Object[]> data() {
return ImmutableList.of(); // TODO, test basic durability issues
public static Stream<Arguments> data() {
return Stream.empty(); // TODO, test basic durability issues
}
static final Object[][] EMPTY_ARRAY = new Object[0][];
@@ -330,26 +326,55 @@ public class ItemStackTest extends AbstractTestingBase {
COMPOUND_MATERIALS = possibleMaterials.values().toArray(new Material[possibleMaterials.size()]);
}
@Parameter(0) public StackProvider provider;
@Parameter(1) public StackProvider unequalProvider;
@Parameter(NAME_PARAMETER) public String name;
@Test
public void testBukkitInequality() {
@ParameterizedTest(name = "[{index}]:{" + NAME_PARAMETER + "}")
@MethodSource({"data",
"org.bukkit.craftbukkit.inventory.ItemStackSkullTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackPotionsTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackMapTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLoreEnchantmentTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLeatherTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkChargeTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackEnchantStorageTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackBookTest#data"
})
public void testBukkitInequality(StackProvider provider, StackProvider unequalProvider, String name) {
final StackWrapper bukkitWrapper = new CraftWrapper(provider);
testInequality(bukkitWrapper, new BukkitWrapper(unequalProvider));
testInequality(bukkitWrapper, new BukkitWrapper(new NoOpProvider(provider.material)));
}
@Test
public void testCraftInequality() {
@ParameterizedTest(name = "[{index}]:{" + NAME_PARAMETER + "}")
@MethodSource({"data",
"org.bukkit.craftbukkit.inventory.ItemStackSkullTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackPotionsTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackMapTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLoreEnchantmentTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLeatherTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkChargeTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackEnchantStorageTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackBookTest#data"
})
public void testCraftInequality(StackProvider provider, StackProvider unequalProvider, String name) {
final StackWrapper craftWrapper = new CraftWrapper(provider);
testInequality(craftWrapper, new CraftWrapper(unequalProvider));
testInequality(craftWrapper, new CraftWrapper(new NoOpProvider(provider.material)));
}
@Test
public void testMixedInequality() {
@ParameterizedTest(name = "[{index}]:{" + NAME_PARAMETER + "}")
@MethodSource({"data",
"org.bukkit.craftbukkit.inventory.ItemStackSkullTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackPotionsTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackMapTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLoreEnchantmentTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLeatherTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkChargeTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackEnchantStorageTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackBookTest#data"
})
public void testMixedInequality(StackProvider provider, StackProvider unequalProvider, String name) {
final StackWrapper craftWrapper = new CraftWrapper(provider);
testInequality(craftWrapper, new BukkitWrapper(unequalProvider));
testInequality(craftWrapper, new BukkitWrapper(new NoOpProvider(provider.material)));
@@ -400,23 +425,67 @@ public class ItemStackTest extends AbstractTestingBase {
assertThat(newUnequalCraftStack.getItemMeta(), is(not(stack.getItemMeta())));
}
@Test
public void testBukkitYamlDeserialize() throws Throwable {
@ParameterizedTest(name = "[{index}]:{" + NAME_PARAMETER + "}")
@MethodSource({"data",
"org.bukkit.craftbukkit.inventory.ItemStackSkullTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackPotionsTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackMapTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLoreEnchantmentTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLeatherTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkChargeTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackEnchantStorageTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackBookTest#data"
})
public void testBukkitYamlDeserialize(StackProvider provider, StackProvider unequalProvider, String name) throws Throwable {
testYamlDeserialize(new BukkitWrapper(provider), new BukkitWrapper(unequalProvider));
}
@Test
public void testCraftYamlDeserialize() throws Throwable {
@ParameterizedTest(name = "[{index}]:{" + NAME_PARAMETER + "}")
@MethodSource({"data",
"org.bukkit.craftbukkit.inventory.ItemStackSkullTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackPotionsTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackMapTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLoreEnchantmentTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLeatherTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkChargeTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackEnchantStorageTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackBookTest#data"
})
public void testCraftYamlDeserialize(StackProvider provider, StackProvider unequalProvider, String name) throws Throwable {
testYamlDeserialize(new CraftWrapper(provider), new CraftWrapper(unequalProvider));
}
@Test
public void testBukkitStreamDeserialize() throws Throwable {
@ParameterizedTest(name = "[{index}]:{" + NAME_PARAMETER + "}")
@MethodSource({"data",
"org.bukkit.craftbukkit.inventory.ItemStackSkullTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackPotionsTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackMapTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLoreEnchantmentTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLeatherTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkChargeTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackEnchantStorageTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackBookTest#data"
})
public void testBukkitStreamDeserialize(StackProvider provider, StackProvider unequalProvider, String name) throws Throwable {
testStreamDeserialize(new BukkitWrapper(provider), new BukkitWrapper(unequalProvider));
}
@Test
public void testCraftStreamDeserialize() throws Throwable {
@ParameterizedTest(name = "[{index}]:{" + NAME_PARAMETER + "}")
@MethodSource({"data",
"org.bukkit.craftbukkit.inventory.ItemStackSkullTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackPotionsTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackMapTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLoreEnchantmentTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackLeatherTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackFireworkChargeTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackEnchantStorageTest#data",
"org.bukkit.craftbukkit.inventory.ItemStackBookTest#data"
})
public void testCraftStreamDeserialize(StackProvider provider, StackProvider unequalProvider, String name) throws Throwable {
testStreamDeserialize(new CraftWrapper(provider), new CraftWrapper(unequalProvider));
}
@@ -486,9 +555,9 @@ public class ItemStackTest extends AbstractTestingBase {
}
static void testEqualities(String information, ItemStack primaryRead, ItemStack unequalRead, ItemStack primaryOriginal, ItemStack unequalOriginal) {
assertThat(information, primaryRead, allOf(equalTo(primaryOriginal), sameHash(primaryOriginal)));
assertThat(information, unequalRead, allOf(equalTo(unequalOriginal), sameHash(unequalOriginal)));
assertThat(information, primaryRead, is(not(unequalOriginal)));
assertThat(information, primaryRead, is(not(unequalRead)));
assertThat(primaryRead, allOf(equalTo(primaryOriginal), sameHash(primaryOriginal)), information);
assertThat(unequalRead, allOf(equalTo(unequalOriginal), sameHash(unequalOriginal)), information);
assertThat(primaryRead, is(not(unequalOriginal)), information);
assertThat(primaryRead, is(not(unequalRead)), information);
}
}

View File

@@ -1,11 +1,11 @@
package org.bukkit.craftbukkit.inventory;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import net.minecraft.world.item.enchantment.Enchantments;
import org.bukkit.inventory.ItemStack;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class NMSCraftItemStackTest extends AbstractTestingBase {

View File

@@ -1,6 +1,6 @@
package org.bukkit.craftbukkit.inventory;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import java.io.StringReader;
import java.lang.reflect.Array;
import java.nio.ByteBuffer;
@@ -17,52 +17,52 @@ import org.bukkit.persistence.PersistentDataAdapterContext;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
public class PersistentDataContainerTest extends AbstractTestingBase {
private static NamespacedKey VALID_KEY;
@Before
public void setup() {
@BeforeAll
public static void setup() {
VALID_KEY = new NamespacedKey("test", "validkey");
}
/*
Sets a test
*/
@Test(expected = IllegalArgumentException.class)
@Test
public void testSetNoAdapter() {
ItemMeta itemMeta = createNewItemMeta();
itemMeta.getPersistentDataContainer().set(VALID_KEY, new PrimitiveTagType<>(boolean.class), true);
assertThrows(IllegalArgumentException.class, () -> itemMeta.getPersistentDataContainer().set(VALID_KEY, new PrimitiveTagType<>(boolean.class), true));
}
/*
Contains a tag
*/
@Test(expected = IllegalArgumentException.class)
@Test
public void testHasNoAdapter() {
ItemMeta itemMeta = createNewItemMeta();
itemMeta.getPersistentDataContainer().set(VALID_KEY, PersistentDataType.INTEGER, 1); // We gotta set this so we at least try to compare it
itemMeta.getPersistentDataContainer().has(VALID_KEY, new PrimitiveTagType<>(boolean.class));
assertThrows(IllegalArgumentException.class, () -> itemMeta.getPersistentDataContainer().has(VALID_KEY, new PrimitiveTagType<>(boolean.class)));
}
/*
Getting a tag
*/
@Test(expected = IllegalArgumentException.class)
@Test
public void testGetNoAdapter() {
ItemMeta itemMeta = createNewItemMeta();
itemMeta.getPersistentDataContainer().set(VALID_KEY, PersistentDataType.INTEGER, 1); //We gotta set this so we at least try to compare it
itemMeta.getPersistentDataContainer().get(VALID_KEY, new PrimitiveTagType<>(boolean.class));
assertThrows(IllegalArgumentException.class, () -> itemMeta.getPersistentDataContainer().get(VALID_KEY, new PrimitiveTagType<>(boolean.class)));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testGetWrongType() {
ItemMeta itemMeta = createNewItemMeta();
itemMeta.getPersistentDataContainer().set(VALID_KEY, PersistentDataType.INTEGER, 1);
itemMeta.getPersistentDataContainer().get(VALID_KEY, PersistentDataType.STRING);
assertThrows(IllegalArgumentException.class, () -> itemMeta.getPersistentDataContainer().get(VALID_KEY, PersistentDataType.STRING));
}
@Test

View File

@@ -1,11 +1,11 @@
package org.bukkit.craftbukkit.inventory;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.world.entity.player.PlayerInventory;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class PlayerInventoryTest extends AbstractTestingBase {

View File

@@ -1,24 +1,24 @@
package org.bukkit.craftbukkit.legacy;
import static org.junit.jupiter.api.Assertions.*;
import org.bukkit.Material;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class EvilTest extends AbstractTestingBase {
@Test
public void testFrom() {
Assert.assertEquals(Material.LEGACY_STONE, CraftEvil.getMaterial(1));
assertEquals(Material.LEGACY_STONE, CraftEvil.getMaterial(1));
}
@Test
public void testTo() {
Assert.assertEquals(1, CraftEvil.getId(Material.LEGACY_STONE));
assertEquals(1, CraftEvil.getId(Material.LEGACY_STONE));
}
@Test(expected = IllegalArgumentException.class)
@Test
public void testIllegal() {
Material.STONE.getId();
assertThrows(IllegalArgumentException.class, () -> Material.STONE.getId());
}
}

View File

@@ -1,5 +1,6 @@
package org.bukkit.craftbukkit.legacy;
import static org.junit.jupiter.api.Assertions.*;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
@@ -7,8 +8,7 @@ import org.bukkit.Material;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
import org.bukkit.material.MaterialData;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class LegacyTest extends AbstractTestingBase {
@@ -125,18 +125,18 @@ public class LegacyTest extends AbstractTestingBase {
if (!INVALIDATED_MATERIALS.contains(material) && !material.isLegacy()) {
MaterialData converted = CraftLegacy.toLegacyData(material);
Assert.assertNotEquals("Could not toLegacy " + material, Material.LEGACY_AIR, converted.getItemType());
assertNotEquals(Material.LEGACY_AIR, converted.getItemType(), "Could not toLegacy " + material);
if (!INVALIDATED_MATERIALS.contains(converted.getItemType())) {
Assert.assertNotEquals("Could not fromLegacy(toLegacy) " + converted + "(" + material + ")", Material.AIR, CraftLegacy.fromLegacy(converted));
assertNotEquals(Material.AIR, CraftLegacy.fromLegacy(converted), "Could not fromLegacy(toLegacy) " + converted + "(" + material + ")");
}
if (!INVERSION_FAILS.contains(material)) {
Assert.assertEquals("Could not fromLegacy(toLegacy) " + converted + "(" + material + ")", material, CraftLegacy.fromLegacy(converted));
assertEquals(material, CraftLegacy.fromLegacy(converted), "Could not fromLegacy(toLegacy) " + converted + "(" + material + ")");
}
}
}
Assert.assertEquals("Could not toLegacy Air", Material.LEGACY_AIR, CraftLegacy.toLegacy(Material.AIR));
assertEquals(Material.LEGACY_AIR, CraftLegacy.toLegacy(Material.AIR), "Could not toLegacy Air");
}
@Test
@@ -144,32 +144,32 @@ public class LegacyTest extends AbstractTestingBase {
for (Material material : Material.values()) {
if (!INVALIDATED_MATERIALS.contains(material) && material.isLegacy()) {
Material converted = CraftLegacy.fromLegacy(material);
Assert.assertNotEquals("Could not fromLegacy " + material, Material.AIR, converted);
assertNotEquals(Material.AIR, converted, "Could not fromLegacy " + material);
Assert.assertNotEquals("Could not toLegacy(fromLegacy) " + converted + "(" + material + ")", Material.AIR, CraftLegacy.toLegacy(converted));
assertNotEquals(Material.AIR, CraftLegacy.toLegacy(converted), "Could not toLegacy(fromLegacy) " + converted + "(" + material + ")");
if (!INVERSION_FAILS.contains(material)) {
Assert.assertEquals("Could not toLegacy(fromLegacy) " + converted + "(" + material + ")", material, CraftLegacy.toLegacy(converted));
assertEquals(material, CraftLegacy.toLegacy(converted), "Could not toLegacy(fromLegacy) " + converted + "(" + material + ")");
}
}
}
Assert.assertEquals("Could not fromLegacy Air", Material.AIR, CraftLegacy.fromLegacy(Material.LEGACY_AIR));
assertEquals(Material.AIR, CraftLegacy.fromLegacy(Material.LEGACY_AIR), "Could not fromLegacy Air");
}
@Test
public void testRestricted() {
for (Material material : CraftLegacy.values()) {
Assert.assertTrue("Must iterate only legacy materials", material.isLegacy());
assertTrue(material.isLegacy(), "Must iterate only legacy materials");
}
for (Material material : org.bukkit.craftbukkit.util.CraftLegacy.modern_values()) {
Assert.assertFalse("Must iterate only modern materials", material.isLegacy());
assertFalse(material.isLegacy(), "Must iterate only modern materials");
}
}
@Test
public void testManual() {
Assert.assertEquals(Material.YELLOW_DYE, CraftMagicNumbers.INSTANCE.getMaterial("dandelion_yellow", 1631));
Assert.assertEquals(Material.OAK_WALL_SIGN, CraftMagicNumbers.INSTANCE.getMaterial("wall_sign", 1631));
assertEquals(Material.YELLOW_DYE, CraftMagicNumbers.INSTANCE.getMaterial("dandelion_yellow", 1631));
assertEquals(Material.OAK_WALL_SIGN, CraftMagicNumbers.INSTANCE.getMaterial("wall_sign", 1631));
}
}

View File

@@ -1,5 +1,6 @@
package org.bukkit.craftbukkit.profile;
import static org.junit.jupiter.api.Assertions.*;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
import java.net.MalformedURLException;
@@ -11,8 +12,7 @@ import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.configuration.serialization.ConfigurationSerialization;
import org.bukkit.profile.PlayerProfile;
import org.bukkit.profile.PlayerTextures;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class PlayerProfileTest {
@@ -62,19 +62,19 @@ public class PlayerProfileTest {
@Test
public void testProvidedValues() {
Property property = new Property(CraftPlayerTextures.PROPERTY_NAME, VALUE, SIGNATURE);
Assert.assertTrue("Invalid test property signature, has the public key changed?", CraftProfileProperty.hasValidSignature(property));
assertTrue(CraftProfileProperty.hasValidSignature(property), "Invalid test property signature, has the public key changed?");
}
@Test
public void testProfileCreation() {
// Invalid profiles:
Assert.assertThrows(IllegalArgumentException.class, () -> {
assertThrows(IllegalArgumentException.class, () -> {
new CraftPlayerProfile(null, null);
});
Assert.assertThrows(IllegalArgumentException.class, () -> {
assertThrows(IllegalArgumentException.class, () -> {
new CraftPlayerProfile(null, "");
});
Assert.assertThrows(IllegalArgumentException.class, () -> {
assertThrows(IllegalArgumentException.class, () -> {
new CraftPlayerProfile(null, " ");
});
@@ -87,48 +87,48 @@ public class PlayerProfileTest {
@Test
public void testGameProfileWrapping() {
// Invalid profiles:
Assert.assertThrows(NullPointerException.class, () -> {
assertThrows(NullPointerException.class, () -> {
new CraftPlayerProfile(null);
});
// Valid profiles:
CraftPlayerProfile profile1 = new CraftPlayerProfile(new GameProfile(UNIQUE_ID, NAME));
Assert.assertEquals("Unique id is not the same", UNIQUE_ID, profile1.getUniqueId());
Assert.assertEquals("Name is not the same", NAME, profile1.getName());
assertEquals(UNIQUE_ID, profile1.getUniqueId(), "Unique id is not the same");
assertEquals(NAME, profile1.getName(), "Name is not the same");
CraftPlayerProfile profile2 = new CraftPlayerProfile(new GameProfile(UNIQUE_ID, ""));
Assert.assertEquals("Unique id is not the same", UNIQUE_ID, profile2.getUniqueId());
Assert.assertEquals("Name is not null", null, profile2.getName());
assertEquals(UNIQUE_ID, profile2.getUniqueId(), "Unique id is not the same");
assertEquals(null, profile2.getName(), "Name is not null");
CraftPlayerProfile profile3 = new CraftPlayerProfile(new GameProfile(SystemUtils.NIL_UUID, NAME));
Assert.assertEquals("Unique id is not null", null, profile3.getUniqueId());
Assert.assertEquals("Name is not the same", NAME, profile3.getName());
assertEquals(null, profile3.getUniqueId(), "Unique id is not null");
assertEquals(NAME, profile3.getName(), "Name is not the same");
}
@Test
public void testTexturesLoading() {
CraftPlayerProfile profile = buildPlayerProfile();
Assert.assertEquals("Unique id is not the same", UNIQUE_ID, profile.getUniqueId());
Assert.assertEquals("Name is not the same", NAME, profile.getName());
Assert.assertEquals("Skin url is not the same", SKIN, profile.getTextures().getSkin());
Assert.assertEquals("Skin model is not the same", PlayerTextures.SkinModel.SLIM, profile.getTextures().getSkinModel());
Assert.assertEquals("Cape url is not the same", CAPE, profile.getTextures().getCape());
Assert.assertEquals("Timestamp is not the same", TIMESTAMP, profile.getTextures().getTimestamp());
assertEquals(UNIQUE_ID, profile.getUniqueId(), "Unique id is not the same");
assertEquals(NAME, profile.getName(), "Name is not the same");
assertEquals(SKIN, profile.getTextures().getSkin(), "Skin url is not the same");
assertEquals(PlayerTextures.SkinModel.SLIM, profile.getTextures().getSkinModel(), "Skin model is not the same");
assertEquals(CAPE, profile.getTextures().getCape(), "Cape url is not the same");
assertEquals(TIMESTAMP, profile.getTextures().getTimestamp(), "Timestamp is not the same");
}
@Test
public void testBuildGameProfile() {
CraftPlayerProfile profile = buildPlayerProfile();
GameProfile gameProfile = profile.buildGameProfile();
Assert.assertNotNull("GameProfile is null", gameProfile);
assertNotNull(gameProfile, "GameProfile is null");
Property property = CraftPlayerProfile.getProperty(gameProfile, CraftPlayerTextures.PROPERTY_NAME);
Assert.assertNotNull("Textures property is null", property);
Assert.assertEquals("Property values are not the same", VALUE, property.value());
Assert.assertEquals("Names are not the same", NAME, gameProfile.getName());
Assert.assertEquals("Unique ids are not the same", UNIQUE_ID, gameProfile.getId());
Assert.assertTrue("Signature is missing", property.hasSignature());
Assert.assertTrue("Signature is not valid", CraftProfileProperty.hasValidSignature(property));
assertNotNull(property, "Textures property is null");
assertEquals(VALUE, property.value(), "Property values are not the same");
assertEquals(NAME, gameProfile.getName(), "Names are not the same");
assertEquals(UNIQUE_ID, gameProfile.getId(), "Unique ids are not the same");
assertTrue(property.hasSignature(), "Signature is missing");
assertTrue(CraftProfileProperty.hasValidSignature(property), "Signature is not valid");
}
@Test
@@ -136,34 +136,34 @@ public class PlayerProfileTest {
CraftPlayerProfile profile = buildPlayerProfile();
GameProfile gameProfile1 = profile.buildGameProfile();
GameProfile gameProfile2 = profile.buildGameProfile();
Assert.assertTrue("CraftPlayerProfile#buildGameProfile() does not produce a new instance", gameProfile1 != gameProfile2);
assertNotSame(gameProfile1, gameProfile2, "CraftPlayerProfile#buildGameProfile() does not produce a new instance");
}
@Test
public void testSignatureValidation() {
CraftPlayerProfile profile = buildPlayerProfile();
Assert.assertTrue("Signature is not valid", profile.getTextures().isSigned());
assertTrue(profile.getTextures().isSigned(), "Signature is not valid");
}
@Test
public void testSignatureInvalidation() {
CraftPlayerProfile profile = buildPlayerProfile();
profile.getTextures().setSkin(null);
Assert.assertTrue("Textures has a timestamp", profile.getTextures().getTimestamp() == 0L);
Assert.assertTrue("Textures signature is valid", !profile.getTextures().isSigned());
assertEquals(0L, profile.getTextures().getTimestamp(), "Textures has a timestamp");
assertFalse(profile.getTextures().isSigned(), "Textures signature is valid");
// Ensure that the invalidation is preserved when the property is rebuilt:
profile.rebuildDirtyProperties();
Assert.assertTrue("Rebuilt textures has a timestamp", profile.getTextures().getTimestamp() == 0L);
Assert.assertTrue("Rebuilt textures signature is valid", !profile.getTextures().isSigned());
assertEquals(0L, profile.getTextures().getTimestamp(), "Rebuilt textures has a timestamp");
assertFalse(profile.getTextures().isSigned(), "Rebuilt textures signature is valid");
}
@Test
public void testSetSkinResetsSkinModel() {
CraftPlayerProfile profile = buildPlayerProfile();
Assert.assertEquals("Skin model is not the same", PlayerTextures.SkinModel.SLIM, profile.getTextures().getSkinModel());
assertEquals(PlayerTextures.SkinModel.SLIM, profile.getTextures().getSkinModel(), "Skin model is not the same");
profile.getTextures().setSkin(SKIN);
Assert.assertEquals("Skin model was not reset by skin change", PlayerTextures.SkinModel.CLASSIC, profile.getTextures().getSkinModel());
assertEquals(PlayerTextures.SkinModel.CLASSIC, profile.getTextures().getSkinModel(), "Skin model was not reset by skin change");
}
@Test
@@ -171,35 +171,35 @@ public class PlayerProfileTest {
CraftPlayerProfile profile = buildPlayerProfile();
CraftPlayerProfile profile2 = new CraftPlayerProfile(new GameProfile(UNIQUE_ID, NAME));
Assert.assertTrue("profile has no textures", !profile.getTextures().isEmpty());
Assert.assertTrue("profile2 has textures", profile2.getTextures().isEmpty());
assertFalse(profile.getTextures().isEmpty(), "profile has no textures");
assertTrue(profile2.getTextures().isEmpty(), "profile2 has textures");
profile2.setTextures(profile.getTextures());
Assert.assertTrue("profile2 has no textures", !profile2.getTextures().isEmpty());
Assert.assertEquals("copied profile textures are not the same", profile.getTextures(), profile2.getTextures());
assertFalse(profile2.getTextures().isEmpty(), "profile2 has no textures");
assertEquals(profile.getTextures(), profile2.getTextures(), "copied profile textures are not the same");
profile2.setTextures(null);
Assert.assertTrue("cleared profile2 has textures", profile2.getTextures().isEmpty());
Assert.assertTrue("cleared profile2 has textures timestamp", profile2.getTextures().getTimestamp() == 0L);
Assert.assertTrue("cleared profile2 has signed textures", !profile2.getTextures().isSigned());
assertTrue(profile2.getTextures().isEmpty(), "cleared profile2 has textures");
assertEquals(0L, profile2.getTextures().getTimestamp(), "cleared profile2 has textures timestamp");
assertFalse(profile2.getTextures().isSigned(), "cleared profile2 has signed textures");
}
@Test
public void testClearTextures() {
CraftPlayerProfile profile = buildPlayerProfile();
Assert.assertTrue("profile has no textures", !profile.getTextures().isEmpty());
assertFalse(profile.getTextures().isEmpty(), "profile has no textures");
profile.getTextures().clear();
Assert.assertTrue("cleared profile has textures", profile.getTextures().isEmpty());
Assert.assertTrue("cleared profile has textures timestamp", profile.getTextures().getTimestamp() == 0L);
Assert.assertTrue("cleared profile has signed textures", !profile.getTextures().isSigned());
assertTrue(profile.getTextures().isEmpty(), "cleared profile has textures");
assertEquals(0L, profile.getTextures().getTimestamp(), "cleared profile has textures timestamp");
assertFalse(profile.getTextures().isSigned(), "cleared profile has signed textures");
}
@Test
public void testCustomSkin() {
CraftPlayerProfile profile = new CraftPlayerProfile(UNIQUE_ID, NAME);
profile.getTextures().setSkin(SKIN);
Assert.assertEquals("profile with custom skin does not match expected value", COMPACT_VALUE, profile.getTextures().getProperty().value());
assertEquals(COMPACT_VALUE, profile.getTextures().getProperty().value(), "profile with custom skin does not match expected value");
}
@Test
@@ -211,35 +211,35 @@ public class PlayerProfileTest {
CraftPlayerProfile profile5 = new CraftPlayerProfile(UNIQUE_ID, null);
CraftPlayerProfile profile6 = new CraftPlayerProfile(null, NAME);
Assert.assertEquals("profile1 and profile2 are not equal", profile1, profile2);
Assert.assertEquals("profile3 and profile4 are not equal", profile3, profile4);
Assert.assertNotEquals("profile1 and profile3 are equal", profile1, profile3);
Assert.assertNotEquals("profile4 and profile5 are equal", profile4, profile5);
Assert.assertNotEquals("profile4 and profile6 are equal", profile4, profile6);
assertEquals(profile1, profile2, "profile1 and profile2 are not equal");
assertEquals(profile3, profile4, "profile3 and profile4 are not equal");
assertNotEquals(profile1, profile3, "profile1 and profile3 are equal");
assertNotEquals(profile4, profile5, "profile4 and profile5 are equal");
assertNotEquals(profile4, profile6, "profile4 and profile6 are equal");
}
@Test
public void testTexturesEquals() {
CraftPlayerProfile profile1 = buildPlayerProfile();
CraftPlayerProfile profile2 = buildPlayerProfile();
Assert.assertEquals("Profile textures are not equal", profile1.getTextures(), profile2.getTextures());
assertEquals(profile1.getTextures(), profile2.getTextures(), "Profile textures are not equal");
profile1.getTextures().setCape(null);
Assert.assertNotEquals("Modified profile textures are still equal", profile1.getTextures(), profile2.getTextures());
assertNotEquals(profile1.getTextures(), profile2.getTextures(), "Modified profile textures are still equal");
profile2.getTextures().setCape(null);
Assert.assertEquals("Modified profile textures are not equal", profile1.getTextures(), profile2.getTextures());
assertEquals(profile1.getTextures(), profile2.getTextures(), "Modified profile textures are not equal");
}
@Test
public void testClone() {
PlayerProfile profile = buildPlayerProfile();
PlayerProfile copy = profile.clone();
Assert.assertEquals("profile and copy are not equal", profile, copy);
assertEquals(profile, copy, "profile and copy are not equal");
// New copies are independent (don't affect the original profile):
copy.getTextures().setSkin(null);
Assert.assertEquals("copy is not independent", SKIN, profile.getTextures().getSkin());
assertEquals(SKIN, profile.getTextures().getSkin(), "copy is not independent");
}
@Test
@@ -255,7 +255,7 @@ public class PlayerProfileTest {
configuration = new YamlConfiguration();
configuration.loadFromString(saved);
Assert.assertTrue(configuration.contains("test"));
Assert.assertEquals("Profiles are not equal", playerProfile, configuration.get("test"));
assertTrue(configuration.contains("test"));
assertEquals(playerProfile, configuration.get("test"), "Profiles are not equal");
}
}

View File

@@ -1,11 +1,11 @@
package org.bukkit.craftbukkit.util;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.network.chat.ComponentContents;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.chat.IChatMutableComponent;
import net.minecraft.network.chat.contents.LiteralContents;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class CraftChatMessageTest {
@@ -35,7 +35,7 @@ public class CraftChatMessageTest {
// dont retain line returns multiple components
IChatBaseComponent[] components = CraftChatMessage.fromString("Hello§0\n§rFoo\n§5Test");
assertEquals("Has 3 components", 3, components.length);
assertEquals(3, components.length, "Has 3 components");
assertEquals("Hello§0", CraftChatMessage.fromComponent(components[0]));
assertEquals(/*§r*/"Foo", CraftChatMessage.fromComponent(components[1]));
assertEquals("§5Test", CraftChatMessage.fromComponent(components[2]));
@@ -85,14 +85,14 @@ public class CraftChatMessageTest {
private void testString(String input, String expected, boolean keepNewLines) {
IChatBaseComponent cmp = CraftChatMessage.fromString(input, keepNewLines)[0];
String actual = CraftChatMessage.fromComponent(cmp);
assertEquals("\nComponent: " + cmp + "\n", expected, actual);
assertEquals(expected, actual, "\nComponent: " + cmp + "\n");
}
private void testPlainString(String expected) {
IChatBaseComponent component = CraftChatMessage.fromString(expected, false, true)[0];
String actual = CraftChatMessage.fromComponent(component);
assertEquals("fromComponent does not match input: " + component, expected, actual);
assertTrue("Non-plain component: " + component, !containsNonPlainComponent(component));
assertEquals(expected, actual, "fromComponent does not match input: " + component);
assertFalse(containsNonPlainComponent(component), "Non-plain component: " + component);
}
private boolean containsNonPlainComponent(IChatBaseComponent component) {
@@ -106,10 +106,10 @@ public class CraftChatMessageTest {
private void testComponent(String expected, IChatBaseComponent cmp) {
String actual = CraftChatMessage.fromComponent(cmp);
assertEquals("\nComponent: " + cmp + "\n", expected, actual);
assertEquals(expected, actual, "\nComponent: " + cmp + "\n");
IChatBaseComponent expectedCmp = CraftChatMessage.fromString(expected, true)[0];
String actualExpectedCmp = CraftChatMessage.fromComponent(expectedCmp);
assertEquals("\nComponent: " + expectedCmp + "\n", expected, actualExpectedCmp);
assertEquals(expected, actualExpectedCmp, "\nComponent: " + expectedCmp + "\n");
}
}

View File

@@ -1,13 +1,13 @@
package org.bukkit.enchantments;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.enchantment.EnchantmentSlotType;
import org.bukkit.Material;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class EnchantmentTargetTest extends AbstractTestingBase {
@@ -27,7 +27,7 @@ public class EnchantmentTargetTest extends AbstractTestingBase {
break;
}
Assert.assertNotNull("No bukkit target for slot " + nmsSlot, bukkitTarget);
assertNotNull(bukkitTarget, "No bukkit target for slot " + nmsSlot);
for (Item item : BuiltInRegistries.ITEM) {
Material material = CraftMagicNumbers.getMaterial(item);
@@ -35,7 +35,7 @@ public class EnchantmentTargetTest extends AbstractTestingBase {
boolean nms = nmsSlot.canEnchant(item);
boolean bukkit = bukkitTarget.includes(material);
Assert.assertEquals("Slot mismatch for " + bukkitTarget + " and " + material, nms, bukkit);
assertEquals(nms, bukkit, "Slot mismatch for " + bukkitTarget + " and " + material);
}
}
}

View File

@@ -3,7 +3,7 @@ package org.bukkit.entity;
import net.minecraft.world.entity.vehicle.EntityBoat;
import org.bukkit.craftbukkit.entity.CraftBoat;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class BoatTest extends AbstractTestingBase {

View File

@@ -1,9 +1,9 @@
package org.bukkit.entity;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.world.entity.boss.enderdragon.phases.DragonControllerPhase;
import org.bukkit.craftbukkit.entity.CraftEnderDragon;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class EnderDragonPhaseTest {
@@ -11,38 +11,38 @@ public class EnderDragonPhaseTest {
public void testNotNull() {
for (EnderDragon.Phase phase : EnderDragon.Phase.values()) {
DragonControllerPhase dragonControllerPhase = CraftEnderDragon.getMinecraftPhase(phase);
Assert.assertNotNull(phase.name(), dragonControllerPhase);
Assert.assertNotNull(phase.name(), CraftEnderDragon.getBukkitPhase(dragonControllerPhase));
assertNotNull(dragonControllerPhase, phase.name());
assertNotNull(CraftEnderDragon.getBukkitPhase(dragonControllerPhase), phase.name());
}
}
@Test
public void testBukkitToMinecraft() {
Assert.assertEquals("CIRCLING", CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.CIRCLING), DragonControllerPhase.HOLDING_PATTERN);
Assert.assertEquals("STRAFING", CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.STRAFING), DragonControllerPhase.STRAFE_PLAYER);
Assert.assertEquals("FLY_TO_PORTAL", CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.FLY_TO_PORTAL), DragonControllerPhase.LANDING_APPROACH);
Assert.assertEquals("LAND_ON_PORTAL", CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.LAND_ON_PORTAL), DragonControllerPhase.LANDING);
Assert.assertEquals("LEAVE_PORTAL", CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.LEAVE_PORTAL), DragonControllerPhase.TAKEOFF);
Assert.assertEquals("BREATH_ATTACK", CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.BREATH_ATTACK), DragonControllerPhase.SITTING_FLAMING);
Assert.assertEquals("SEARCH_FOR_BREATH_ATTACK_TARGET", CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.SEARCH_FOR_BREATH_ATTACK_TARGET), DragonControllerPhase.SITTING_SCANNING);
Assert.assertEquals("ROAR_BEFORE_ATTACK", CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.ROAR_BEFORE_ATTACK), DragonControllerPhase.SITTING_ATTACKING);
Assert.assertEquals("CHARGE_PLAYER", CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.CHARGE_PLAYER), DragonControllerPhase.CHARGING_PLAYER);
Assert.assertEquals("DYING", CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.DYING), DragonControllerPhase.DYING);
Assert.assertEquals("HOVER", CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.HOVER), DragonControllerPhase.HOVERING);
assertEquals(CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.CIRCLING), DragonControllerPhase.HOLDING_PATTERN, "CIRCLING");
assertEquals(CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.STRAFING), DragonControllerPhase.STRAFE_PLAYER, "STRAFING");
assertEquals(CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.FLY_TO_PORTAL), DragonControllerPhase.LANDING_APPROACH, "FLY_TO_PORTAL");
assertEquals(CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.LAND_ON_PORTAL), DragonControllerPhase.LANDING, "LAND_ON_PORTAL");
assertEquals(CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.LEAVE_PORTAL), DragonControllerPhase.TAKEOFF, "LEAVE_PORTAL");
assertEquals(CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.BREATH_ATTACK), DragonControllerPhase.SITTING_FLAMING, "BREATH_ATTACK");
assertEquals(CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.SEARCH_FOR_BREATH_ATTACK_TARGET), DragonControllerPhase.SITTING_SCANNING, "SEARCH_FOR_BREATH_ATTACK_TARGET");
assertEquals(CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.ROAR_BEFORE_ATTACK), DragonControllerPhase.SITTING_ATTACKING, "ROAR_BEFORE_ATTACK");
assertEquals(CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.CHARGE_PLAYER), DragonControllerPhase.CHARGING_PLAYER, "CHARGE_PLAYER");
assertEquals(CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.DYING), DragonControllerPhase.DYING, "DYING");
assertEquals(CraftEnderDragon.getMinecraftPhase(EnderDragon.Phase.HOVER), DragonControllerPhase.HOVERING, "HOVER");
}
@Test
public void testMinecraftToBukkit() {
Assert.assertEquals("CIRCLING", CraftEnderDragon.getBukkitPhase(DragonControllerPhase.HOLDING_PATTERN), EnderDragon.Phase.CIRCLING);
Assert.assertEquals("STRAFING", CraftEnderDragon.getBukkitPhase(DragonControllerPhase.STRAFE_PLAYER), EnderDragon.Phase.STRAFING);
Assert.assertEquals("FLY_TO_PORTAL", CraftEnderDragon.getBukkitPhase(DragonControllerPhase.LANDING_APPROACH), EnderDragon.Phase.FLY_TO_PORTAL);
Assert.assertEquals("LAND_ON_PORTAL", CraftEnderDragon.getBukkitPhase(DragonControllerPhase.LANDING), EnderDragon.Phase.LAND_ON_PORTAL);
Assert.assertEquals("LEAVE_PORTAL", CraftEnderDragon.getBukkitPhase(DragonControllerPhase.TAKEOFF), EnderDragon.Phase.LEAVE_PORTAL);
Assert.assertEquals("BREATH_ATTACK", CraftEnderDragon.getBukkitPhase(DragonControllerPhase.SITTING_FLAMING), EnderDragon.Phase.BREATH_ATTACK);
Assert.assertEquals("SEARCH_FOR_BREATH_ATTACK_TARGET", CraftEnderDragon.getBukkitPhase(DragonControllerPhase.SITTING_SCANNING), EnderDragon.Phase.SEARCH_FOR_BREATH_ATTACK_TARGET);
Assert.assertEquals("ROAR_BEFORE_ATTACK", CraftEnderDragon.getBukkitPhase(DragonControllerPhase.SITTING_ATTACKING), EnderDragon.Phase.ROAR_BEFORE_ATTACK);
Assert.assertEquals("CHARGE_PLAYER", CraftEnderDragon.getBukkitPhase(DragonControllerPhase.CHARGING_PLAYER), EnderDragon.Phase.CHARGE_PLAYER);
Assert.assertEquals("DYING", CraftEnderDragon.getBukkitPhase(DragonControllerPhase.DYING), EnderDragon.Phase.DYING);
Assert.assertEquals("HOVER", CraftEnderDragon.getBukkitPhase(DragonControllerPhase.HOVERING), EnderDragon.Phase.HOVER);
assertEquals(CraftEnderDragon.getBukkitPhase(DragonControllerPhase.HOLDING_PATTERN), EnderDragon.Phase.CIRCLING, "CIRCLING");
assertEquals(CraftEnderDragon.getBukkitPhase(DragonControllerPhase.STRAFE_PLAYER), EnderDragon.Phase.STRAFING, "STRAFING");
assertEquals(CraftEnderDragon.getBukkitPhase(DragonControllerPhase.LANDING_APPROACH), EnderDragon.Phase.FLY_TO_PORTAL, "FLY_TO_PORTAL");
assertEquals(CraftEnderDragon.getBukkitPhase(DragonControllerPhase.LANDING), EnderDragon.Phase.LAND_ON_PORTAL, "LAND_ON_PORTAL");
assertEquals(CraftEnderDragon.getBukkitPhase(DragonControllerPhase.TAKEOFF), EnderDragon.Phase.LEAVE_PORTAL, "LEAVE_PORTAL");
assertEquals(CraftEnderDragon.getBukkitPhase(DragonControllerPhase.SITTING_FLAMING), EnderDragon.Phase.BREATH_ATTACK, "BREATH_ATTACK");
assertEquals(CraftEnderDragon.getBukkitPhase(DragonControllerPhase.SITTING_SCANNING), EnderDragon.Phase.SEARCH_FOR_BREATH_ATTACK_TARGET, "SEARCH_FOR_BREATH_ATTACK_TARGET");
assertEquals(CraftEnderDragon.getBukkitPhase(DragonControllerPhase.SITTING_ATTACKING), EnderDragon.Phase.ROAR_BEFORE_ATTACK, "ROAR_BEFORE_ATTACK");
assertEquals(CraftEnderDragon.getBukkitPhase(DragonControllerPhase.CHARGING_PLAYER), EnderDragon.Phase.CHARGE_PLAYER, "CHARGE_PLAYER");
assertEquals(CraftEnderDragon.getBukkitPhase(DragonControllerPhase.DYING), EnderDragon.Phase.DYING, "DYING");
assertEquals(CraftEnderDragon.getBukkitPhase(DragonControllerPhase.HOVERING), EnderDragon.Phase.HOVER, "HOVER");
}
}

View File

@@ -1,5 +1,6 @@
package org.bukkit.entity;
import static org.junit.jupiter.api.Assertions.*;
import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;
@@ -7,8 +8,7 @@ import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.resources.MinecraftKey;
import net.minecraft.world.entity.EntityTypes;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class EntityTypesTest extends AbstractTestingBase {
@@ -20,12 +20,12 @@ public class EntityTypesTest extends AbstractTestingBase {
MinecraftKey key = EntityTypes.getKey(nms);
EntityType bukkit = EntityType.fromName(key.getPath());
Assert.assertNotNull("Missing nms->bukkit " + key, bukkit);
assertNotNull(bukkit, "Missing nms->bukkit " + key);
Assert.assertTrue("Duplicate entity nms->" + bukkit, allBukkit.remove(bukkit));
assertTrue(allBukkit.remove(bukkit), "Duplicate entity nms->" + bukkit);
}
Assert.assertTrue("Unmapped bukkit entities " + allBukkit, allBukkit.isEmpty());
assertTrue(allBukkit.isEmpty(), "Unmapped bukkit entities " + allBukkit);
}
@Test
@@ -33,7 +33,7 @@ public class EntityTypesTest extends AbstractTestingBase {
for (EntityType entityType : EntityType.values()) {
// Currently EntityType#getTranslationKey has a validation for null name then for test skip this and check correct names.
if (entityType.getName() != null) {
Assert.assertNotNull("Nulllable translation key for " + entityType, entityType.getTranslationKey());
assertNotNull(entityType.getTranslationKey(), "Nulllable translation key for " + entityType);
}
}
}

View File

@@ -1,9 +1,9 @@
package org.bukkit.entity;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.world.entity.animal.EntityPanda;
import org.bukkit.craftbukkit.entity.CraftPanda;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class PandaGeneTest {
@@ -12,9 +12,9 @@ public class PandaGeneTest {
for (Panda.Gene gene : Panda.Gene.values()) {
EntityPanda.Gene nms = CraftPanda.toNms(gene);
Assert.assertNotNull("NMS gene null for " + gene, nms);
Assert.assertEquals("Recessive status did not match " + gene, gene.isRecessive(), nms.isRecessive());
Assert.assertEquals("Gene did not convert back " + gene, gene, CraftPanda.fromNms(nms));
assertNotNull(nms, "NMS gene null for " + gene);
assertEquals(gene.isRecessive(), nms.isRecessive(), "Recessive status did not match " + gene);
assertEquals(gene, CraftPanda.fromNms(nms), "Gene did not convert back " + gene);
}
}
@@ -23,9 +23,9 @@ public class PandaGeneTest {
for (EntityPanda.Gene gene : EntityPanda.Gene.values()) {
Panda.Gene bukkit = CraftPanda.fromNms(gene);
Assert.assertNotNull("Bukkit gene null for " + gene, bukkit);
Assert.assertEquals("Recessive status did not match " + gene, gene.isRecessive(), bukkit.isRecessive());
Assert.assertEquals("Gene did not convert back " + gene, gene, CraftPanda.toNms(bukkit));
assertNotNull(bukkit, "Bukkit gene null for " + gene);
assertEquals(gene.isRecessive(), bukkit.isRecessive(), "Recessive status did not match " + gene);
assertEquals(gene, CraftPanda.toNms(bukkit), "Gene did not convert back " + gene);
}
}
}

View File

@@ -2,7 +2,7 @@ package org.bukkit.entity;
import net.minecraft.world.entity.EnumCreatureType;
import org.bukkit.craftbukkit.util.CraftSpawnCategory;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class SpawnCategoryTest {

View File

@@ -1,11 +1,11 @@
package org.bukkit.entity;
import static org.bukkit.support.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import org.bukkit.DyeColor;
import org.bukkit.craftbukkit.entity.CraftTropicalFish;
import org.bukkit.entity.TropicalFish.Pattern;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class TropicalFishTest {
@@ -36,9 +36,9 @@ public class TropicalFishTest {
}
private void testVariant(int variant, DyeColor bodyColor, DyeColor patternColor, Pattern pattern) {
assertThat("variant write", CraftTropicalFish.getData(patternColor, bodyColor, pattern), is(variant));
assertThat("pattern colour read", CraftTropicalFish.getPatternColor(variant), is(patternColor));
assertThat("body colour read", CraftTropicalFish.getBodyColor(variant), is(bodyColor));
assertThat("pattern read", CraftTropicalFish.getPattern(variant), is(pattern));
assertThat(CraftTropicalFish.getData(patternColor, bodyColor, pattern), is(variant), "variant write");
assertThat(CraftTropicalFish.getPatternColor(variant), is(patternColor), "pattern colour read");
assertThat(CraftTropicalFish.getBodyColor(variant), is(bodyColor), "body colour read");
assertThat(CraftTropicalFish.getPattern(variant), is(pattern), "pattern read");
}
}

View File

@@ -1,57 +1,57 @@
package org.bukkit.entity.memory;
import static org.junit.jupiter.api.Assertions.*;
import net.minecraft.core.GlobalPos;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.entity.ai.memory.MemoryModuleType;
import org.bukkit.Location;
import org.bukkit.craftbukkit.entity.memory.CraftMemoryKey;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
public class CraftMemoryKeyTest extends AbstractTestingBase {
@Test
public void shouldConvertBukkitHomeKeyToNMSRepresentation() {
MemoryModuleType<GlobalPos> nmsHomeKey = CraftMemoryKey.bukkitToMinecraft(MemoryKey.HOME);
Assert.assertEquals("MemoryModuleType should be HOME", MemoryModuleType.HOME, nmsHomeKey);
assertEquals(MemoryModuleType.HOME, nmsHomeKey, "MemoryModuleType should be HOME");
}
@Test
public void shouldConvertBukkitJobSiteKeyToNMSRepresentation() {
MemoryModuleType<GlobalPos> nmsHomeKey = CraftMemoryKey.bukkitToMinecraft(MemoryKey.JOB_SITE);
Assert.assertEquals("MemoryModuleType should be JOB_SITE", MemoryModuleType.JOB_SITE, nmsHomeKey);
assertEquals(MemoryModuleType.JOB_SITE, nmsHomeKey, "MemoryModuleType should be JOB_SITE");
}
@Test
public void shouldConvertBukkitMeetingPointKeyToNMSRepresentation() {
MemoryModuleType<GlobalPos> nmsHomeKey = CraftMemoryKey.bukkitToMinecraft(MemoryKey.MEETING_POINT);
Assert.assertEquals("MemoryModuleType should be MEETING_POINT", MemoryModuleType.MEETING_POINT, nmsHomeKey);
assertEquals(MemoryModuleType.MEETING_POINT, nmsHomeKey, "MemoryModuleType should be MEETING_POINT");
}
@Test
public void shouldConvertNMSHomeKeyToBukkitRepresentation() {
MemoryKey<Location> bukkitHomeKey = CraftMemoryKey.minecraftToBukkit(MemoryModuleType.HOME);
Assert.assertEquals("MemoryModuleType should be HOME", MemoryKey.HOME, bukkitHomeKey);
assertEquals(MemoryKey.HOME, bukkitHomeKey, "MemoryModuleType should be HOME");
}
@Test
public void shouldConvertNMSJobSiteKeyToBukkitRepresentation() {
MemoryKey<Location> bukkitJobSiteKey = CraftMemoryKey.minecraftToBukkit(MemoryModuleType.JOB_SITE);
Assert.assertEquals("MemoryKey should be JOB_SITE", MemoryKey.JOB_SITE, bukkitJobSiteKey);
assertEquals(MemoryKey.JOB_SITE, bukkitJobSiteKey, "MemoryKey should be JOB_SITE");
}
@Test
public void shouldConvertNMSMeetingPointKeyToBukkitRepresentation() {
MemoryKey<Location> bukkitHomeKey = CraftMemoryKey.minecraftToBukkit(MemoryModuleType.MEETING_POINT);
Assert.assertEquals("MemoryKey should be MEETING_POINT", MemoryKey.MEETING_POINT, bukkitHomeKey);
assertEquals(MemoryKey.MEETING_POINT, bukkitHomeKey, "MemoryKey should be MEETING_POINT");
}
@Test
public void shouldReturnNullWhenBukkitRepresentationOfKeyisNotAvailable() {
MemoryKey bukkitNoKey = CraftMemoryKey.minecraftToBukkit(MemoryModuleType.NEAREST_LIVING_ENTITIES);
Assert.assertNull("MemoryModuleType should be null", bukkitNoKey);
assertNull(bukkitNoKey, "MemoryModuleType should be null");
}
@Test
@@ -59,18 +59,18 @@ public class CraftMemoryKeyTest extends AbstractTestingBase {
for (MemoryModuleType<?> memoryModuleType : BuiltInRegistries.MEMORY_MODULE_TYPE) {
if (!memoryModuleType.getCodec().isPresent()) {
MemoryKey bukkitNoKey = CraftMemoryKey.minecraftToBukkit(memoryModuleType);
Assert.assertNull("MemoryModuleType should be null", bukkitNoKey);
assertNull(bukkitNoKey, "MemoryModuleType should be null");
}
}
}
@Test
@Ignore("Unit type not yet implemented")
@Disabled("Unit type not yet implemented")
public void shouldReturnAnInstanceOfMemoryKeyWhenBukkitRepresentationOfKeyisAvailableAndSerializerIsPresent() {
for (MemoryModuleType<?> memoryModuleType : BuiltInRegistries.MEMORY_MODULE_TYPE) {
if (memoryModuleType.getCodec().isPresent()) {
MemoryKey bukkitNoKey = CraftMemoryKey.minecraftToBukkit(memoryModuleType);
Assert.assertNotNull("MemoryModuleType should not be null " + BuiltInRegistries.MEMORY_MODULE_TYPE.getKey(memoryModuleType), bukkitNoKey);
assertNotNull(bukkitNoKey, "MemoryModuleType should not be null " + BuiltInRegistries.MEMORY_MODULE_TYPE.getKey(memoryModuleType));
}
}
}

View File

@@ -1,5 +1,6 @@
package org.bukkit.generator.structure;
import static org.junit.jupiter.api.Assertions.*;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import net.minecraft.core.IRegistry;
@@ -9,8 +10,7 @@ import org.bukkit.NamespacedKey;
import org.bukkit.Registry;
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class StructureTest extends AbstractTestingBase {
@@ -25,7 +25,7 @@ public class StructureTest extends AbstractTestingBase {
}
String name = field.getName();
Assert.assertNotNull("No structure for field name " + name, Registry.STRUCTURE.get(NamespacedKey.fromString(name.toLowerCase())));
assertNotNull(Registry.STRUCTURE.get(NamespacedKey.fromString(name.toLowerCase())), "No structure for field name " + name);
}
}
@@ -38,13 +38,13 @@ public class StructureTest extends AbstractTestingBase {
try {
Structure bukkit = (Structure) Structure.class.getField(minecraftKey.getPath().toUpperCase()).get(null);
Assert.assertEquals("Keys are not the same for " + minecraftKey, minecraftKey, CraftNamespacedKey.toMinecraft(bukkit.getKey()));
assertEquals(minecraftKey, CraftNamespacedKey.toMinecraft(bukkit.getKey()), "Keys are not the same for " + minecraftKey);
} catch (NoSuchFieldException e) {
Assert.fail("No Bukkit default structure for " + minecraftKey);
fail("No Bukkit default structure for " + minecraftKey);
} catch (IllegalAccessException e) {
Assert.fail("Bukkit field is not access able for " + minecraftKey);
fail("Bukkit field is not access able for " + minecraftKey);
} catch (ClassCastException e) {
Assert.fail("Bukkit field is not of type structure for" + minecraftKey);
fail("Bukkit field is not of type structure for" + minecraftKey);
}
}
}

View File

@@ -1,5 +1,6 @@
package org.bukkit.generator.structure;
import static org.junit.jupiter.api.Assertions.*;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import net.minecraft.core.registries.BuiltInRegistries;
@@ -8,8 +9,7 @@ import org.bukkit.NamespacedKey;
import org.bukkit.Registry;
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class StructureTypeTest extends AbstractTestingBase {
@@ -24,7 +24,7 @@ public class StructureTypeTest extends AbstractTestingBase {
}
String name = field.getName();
Assert.assertNotNull("No structure type for field name " + name, Registry.STRUCTURE_TYPE.get(NamespacedKey.fromString(name.toLowerCase())));
assertNotNull(Registry.STRUCTURE_TYPE.get(NamespacedKey.fromString(name.toLowerCase())), "No enchantment for field name " + name);
}
}
@@ -36,13 +36,13 @@ public class StructureTypeTest extends AbstractTestingBase {
try {
StructureType bukkit = (StructureType) StructureType.class.getField(minecraftKey.getPath().toUpperCase()).get(null);
Assert.assertEquals("Keys are not the same for " + minecraftKey, minecraftKey, CraftNamespacedKey.toMinecraft(bukkit.getKey()));
assertEquals(minecraftKey, CraftNamespacedKey.toMinecraft(bukkit.getKey()), "Keys are not the same for " + minecraftKey);
} catch (NoSuchFieldException e) {
Assert.fail("No Bukkit default structure type for " + minecraftKey);
fail("No Bukkit default enchantment for " + minecraftKey);
} catch (IllegalAccessException e) {
Assert.fail("Bukkit field is not access able for " + minecraftKey);
fail("Bukkit field is not access able for " + minecraftKey);
} catch (ClassCastException e) {
Assert.fail("Bukkit field is not of type structure type for" + minecraftKey);
fail("Bukkit field is not of type enchantment for" + minecraftKey);
}
}
}

View File

@@ -1,14 +1,14 @@
package org.bukkit.map;
import static org.junit.jupiter.api.Assertions.*;
import java.awt.Color;
import java.util.concurrent.ExecutionException;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.minecraft.world.level.material.MaterialMapColor;
import org.bukkit.craftbukkit.map.CraftMapColorCache;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
public class MapTest {
@@ -59,10 +59,10 @@ public class MapTest {
}
}
}
Assert.assertFalse(fail);
assertFalse(fail);
}
@Ignore("Test takes around 25 seconds, should be run by changes to the map color conversion")
@Disabled("Test takes around 25 seconds, should be run by changes to the map color conversion")
@Test
public void testMapColorCacheBuilding() throws ExecutionException, InterruptedException {
CraftMapColorCache craftMapColorCache = new CraftMapColorCache(logger);
@@ -72,7 +72,7 @@ public class MapTest {
for (int g = 0; g < 256; g++) {
for (int b = 0; b < 256; b++) {
Color color = new Color(r, g, b);
Assert.assertEquals(String.format("Incorrect matched color c(%s, %s, %s)", color.getRed(), color.getGreen(), color.getBlue()), MapPalette.matchColor(color), craftMapColorCache.matchColor(color));
assertEquals(MapPalette.matchColor(color), craftMapColorCache.matchColor(color), String.format("Incorrect matched color c(%s, %s, %s)", color.getRed(), color.getGreen(), color.getBlue()));
}
}
}

View File

@@ -1,6 +1,6 @@
package org.bukkit.potion;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
@@ -11,7 +11,7 @@ import net.minecraft.world.effect.MobEffectList;
import net.minecraft.world.item.alchemy.PotionRegistry;
import org.bukkit.craftbukkit.potion.CraftPotionEffectType;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class PotionTest extends AbstractTestingBase {
@Test
@@ -21,10 +21,10 @@ public class PotionTest extends AbstractTestingBase {
List<MobEffect> eff = reg.getEffects();
if (eff.size() != 1) continue;
PotionEffectType type = CraftPotionEffectType.minecraftToBukkit(eff.get(0).getEffect());
assertNotNull(String.valueOf(reg), type);
assertNotNull(type, String.valueOf(reg));
PotionType enumType = PotionType.getByEffect(type);
assertNotNull(type.getName(), enumType);
assertNotNull(enumType, type.getName());
effects.put(enumType, enumType.name());
}
@@ -39,11 +39,11 @@ public class PotionTest extends AbstractTestingBase {
PotionEffectType bukkit = CraftPotionEffectType.minecraftToBukkit(nms);
assertNotNull("No Bukkit type for " + key, bukkit);
assertFalse("No name for " + key, bukkit.getName().contains("UNKNOWN"));
assertNotNull(bukkit, "No Bukkit type for " + key);
assertFalse(bukkit.getName().contains("UNKNOWN"), "No name for " + key);
PotionEffectType byName = PotionEffectType.getByName(bukkit.getName());
assertEquals("Same type not returned by name " + key, bukkit, byName);
assertEquals(bukkit, byName, "Same type not returned by name " + key);
}
}
}

View File

@@ -1,5 +1,6 @@
package org.bukkit.support;
import static org.junit.jupiter.api.Assertions.*;
import com.google.common.collect.ImmutableList;
import com.google.common.util.concurrent.MoreExecutors;
import java.util.List;
@@ -24,7 +25,6 @@ import net.minecraft.world.level.biome.BiomeBase;
import org.bukkit.Material;
import org.bukkit.craftbukkit.CraftRegistry;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
import org.junit.Assert;
/**
* If you are getting: java.lang.ExceptionInInitializerError
@@ -73,6 +73,6 @@ public abstract class AbstractTestingBase {
}
}
INVALIDATED_MATERIALS = builder.build();
Assert.assertEquals("Expected 610 invalidated materials (got " + INVALIDATED_MATERIALS.size() + ")", 610, INVALIDATED_MATERIALS.size());
assertEquals(610, INVALIDATED_MATERIALS.size(), "Expected 610 invalidated materials (got " + INVALIDATED_MATERIALS.size() + ")");
}
}

View File

@@ -0,0 +1,36 @@
package org.bukkit.support;
import org.hamcrest.Matcher;
/**
* Custom assertThat methods, where the reason is put at the end of the method call.
* To better match with JUnit 5 argument order and also help with readability for longer reasons.
* <br>
* <pre>
* assertThat(String.format("""
* The block data created for the material %s is not an instance of the data class from that material.
* """, material), blockData, is(instanceOf(expectedClass)));
* </pre>
* vs.
* <pre>
* assertThat(blockData, is(instanceOf(expectedClass)), String.format("""
* The block data created for the material %s is not an instance of the data class from that material.
* """, material));
* </pre>
*/
public final class MatcherAssert {
private MatcherAssert() {}
public static <T> void assertThat(T actual, Matcher<? super T> matcher) {
org.hamcrest.MatcherAssert.assertThat(actual, matcher);
}
public static <T> void assertThat(T actual, Matcher<? super T> matcher, String reason) {
org.hamcrest.MatcherAssert.assertThat(reason, actual, matcher);
}
public static void assertThat(boolean assertion, String reason) {
org.hamcrest.MatcherAssert.assertThat(reason, assertion);
}
}