Commits

Doc authored and md_5 committed 06a6a10126a
#1121: Add unit test for spawn egg meta
No tags

src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java

Modified
22 22 import org.bukkit.NamespacedKey;
23 23 import org.bukkit.attribute.Attribute;
24 24 import org.bukkit.attribute.AttributeModifier;
25 25 import org.bukkit.block.banner.Pattern;
26 26 import org.bukkit.block.banner.PatternType;
27 27 import org.bukkit.craftbukkit.block.data.CraftBlockData;
28 28 import org.bukkit.craftbukkit.inventory.ItemStackTest.BukkitWrapper;
29 29 import org.bukkit.craftbukkit.inventory.ItemStackTest.CraftWrapper;
30 30 import org.bukkit.craftbukkit.inventory.ItemStackTest.StackProvider;
31 31 import org.bukkit.craftbukkit.inventory.ItemStackTest.StackWrapper;
32 +import org.bukkit.craftbukkit.util.CraftMagicNumbers;
32 33 import org.bukkit.enchantments.Enchantment;
33 34 import org.bukkit.entity.Axolotl;
34 35 import org.bukkit.entity.TropicalFish;
35 36 import org.bukkit.inventory.ItemStack;
36 37 import org.bukkit.inventory.meta.AxolotlBucketMeta;
37 38 import org.bukkit.inventory.meta.BannerMeta;
38 39 import org.bukkit.inventory.meta.BlockDataMeta;
39 40 import org.bukkit.inventory.meta.BlockStateMeta;
40 41 import org.bukkit.inventory.meta.BookMeta;
41 42 import org.bukkit.inventory.meta.BundleMeta;
42 43 import org.bukkit.inventory.meta.CrossbowMeta;
43 44 import org.bukkit.inventory.meta.EnchantmentStorageMeta;
44 45 import org.bukkit.inventory.meta.FireworkEffectMeta;
45 46 import org.bukkit.inventory.meta.FireworkMeta;
46 47 import org.bukkit.inventory.meta.ItemMeta;
47 48 import org.bukkit.inventory.meta.KnowledgeBookMeta;
48 49 import org.bukkit.inventory.meta.LeatherArmorMeta;
49 50 import org.bukkit.inventory.meta.MapMeta;
50 51 import org.bukkit.inventory.meta.PotionMeta;
52 +import org.bukkit.inventory.meta.SpawnEggMeta;
51 53 import org.bukkit.inventory.meta.TropicalFishBucketMeta;
52 54 import org.bukkit.potion.PotionData;
53 55 import org.bukkit.potion.PotionEffectType;
54 56 import org.bukkit.potion.PotionType;
55 57 import org.bukkit.support.AbstractTestingBase;
56 58 import org.junit.Test;
57 59
58 60 public class ItemMetaTest extends AbstractTestingBase {
59 61
60 62 static final int MAX_FIREWORK_POWER = 127; // Please update ItemStackFireworkTest if/when this gets changed.
177 179 assertNotNull(stack + " has null block state", blockState.getBlockState());
178 180
179 181 blockState.setBlockState(blockState.getBlockState());
180 182 } else {
181 183 assertTrue(stack + " has unexpected meta of type BlockStateMeta (but is not a tile)", !(meta instanceof BlockStateMeta));
182 184 }
183 185 }
184 186 }
185 187 }
186 188
189 + @Test
190 + public void testSpawnEggsHasMeta() {
191 + for (Item item : BuiltInRegistries.ITEM) {
192 + if (item instanceof net.minecraft.world.item.ItemMonsterEgg) {
193 + Material material = CraftMagicNumbers.getMaterial(item);
194 + CraftMetaItem baseMeta = (CraftMetaItem) Bukkit.getItemFactory().getItemMeta(material);
195 + ItemMeta baseMetaItem = CraftItemStack.getItemMeta(item.getDefaultInstance());
196 +
197 + assertTrue(material + " is not handled in CraftItemFactory", baseMeta instanceof CraftMetaSpawnEgg);
198 + assertTrue(material + " is not applicable to CraftMetaSpawnEgg", baseMeta.applicableTo(material));
199 + assertTrue(material + " is not handled in CraftItemStack", baseMetaItem instanceof SpawnEggMeta);
200 + }
201 + }
202 + }
203 +
187 204 @Test
188 205 public void testEachExtraData() {
189 206 final List<StackProvider> providers = Arrays.asList(
190 207 new StackProvider(Material.WRITABLE_BOOK) {
191 208 @Override ItemStack operate(final ItemStack cleanStack) {
192 209 final BookMeta meta = (BookMeta) cleanStack.getItemMeta();
193 210 meta.setAuthor("Some author");
194 211 meta.setPages("Page 1", "Page 2");
195 212 meta.setTitle("A title");
196 213 cleanStack.setItemMeta(meta);

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut