13
0
geforkt von Mirrors/Paper
Paper/src/test/java/org/bukkit/MaterialTest.java
2012-01-29 11:22:11 +01:00

69 Zeilen
2.3 KiB
Java

package org.bukkit;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.Matchers.hasSize;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import java.util.Map;
import net.minecraft.server.Item;
import net.minecraft.server.ItemFood;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
import com.google.common.collect.Maps;
public class MaterialTest extends AbstractTestingBase {
@Test
public void verifyMapping() {
Map<Integer, Material> materials = Maps.newHashMap();
for (Material material : Material.values()) {
materials.put(material.getId(), material);
}
materials.remove(0); // Purge air.
for (Item item : Item.byId) {
if (item == null) continue;
int id = item.id;
String name = item.getName();
int maxStackSize = item.getMaxStackSize();
int maxDurability = item.getMaxDurability();
Material material = materials.remove(id);
assertNotNull(String.format("org.bukkit.Material is missing id: %d named: %s", id, name), material);
assertThat(String.format("org.bukkit.Material.%s maxStackSize:", material), material.getMaxStackSize(), is(maxStackSize));
assertThat(String.format("org.bukkit.Material.%s maxDurability:", material), material.getMaxDurability(), is((short) maxDurability));
}
assertThat("org.bukkit.Material has too many entries", materials.values(), hasSize(0));
}
@Test
public void verifyIsEdible() {
Map<Integer, Material> materials = Maps.newHashMap();
for (Material material : Material.values()) {
if (!material.isEdible()) continue;
materials.put(material.getId(), material);
}
for (Item item : Item.byId) {
if (item == null) continue;
if (!(item instanceof ItemFood)) continue;
int id = item.id;
String name = item.getName();
Material material = materials.remove(id);
assertNotNull(String.format("org.bukkit.Material does not list id: %d named: %s edible", id, name), material);
}
assertThat("org.bukkit.Material has entries marked edible that are not ItemFood", materials.values(), hasSize(0));
}
}