summaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorWesley Wolfe <weswolf@aol.com>2012-12-14 02:02:02 -0600
committerWesley Wolfe <weswolf@aol.com>2012-12-14 02:02:02 -0600
commit0f4c206f9b256c441a142b0be68a4a76421c2911 (patch)
tree980ba23c5ac389461a518af3c69b12a4c9008214 /src/test
parent53b064ec79c62f34ca98dd08b0ae4cc04e51a81f (diff)
downloadcraftbukkit-0f4c206f9b256c441a142b0be68a4a76421c2911.tar
craftbukkit-0f4c206f9b256c441a142b0be68a4a76421c2911.tar.gz
craftbukkit-0f4c206f9b256c441a142b0be68a4a76421c2911.tar.lz
craftbukkit-0f4c206f9b256c441a142b0be68a4a76421c2911.tar.xz
craftbukkit-0f4c206f9b256c441a142b0be68a4a76421c2911.zip
Add isRecord and new material method tests.
Cleaned up all of the CraftBukkit tests, including moving some tests from MaterialTest to PerMaterialTest.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/bukkit/AchievementTest.java12
-rw-r--r--src/test/java/org/bukkit/ArtTest.java13
-rw-r--r--src/test/java/org/bukkit/MaterialTest.java41
-rw-r--r--src/test/java/org/bukkit/PerMaterialTest.java88
-rw-r--r--src/test/java/org/bukkit/SoundTest.java5
-rw-r--r--src/test/java/org/bukkit/WorldTypeTest.java19
-rw-r--r--src/test/java/org/bukkit/craftbukkit/inventory/CraftItemStackTest.java28
-rw-r--r--src/test/java/org/bukkit/potion/PotionTest.java6
8 files changed, 122 insertions, 90 deletions
diff --git a/src/test/java/org/bukkit/AchievementTest.java b/src/test/java/org/bukkit/AchievementTest.java
index f2e4d060..b8695ccd 100644
--- a/src/test/java/org/bukkit/AchievementTest.java
+++ b/src/test/java/org/bukkit/AchievementTest.java
@@ -1,9 +1,9 @@
package org.bukkit;
-import static org.hamcrest.Matchers.hasSize;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
+import static org.junit.Assert.*;
+import static org.hamcrest.Matchers.*;
+import java.util.Collections;
import java.util.List;
import net.minecraft.server.AchievementList;
@@ -17,7 +17,7 @@ import com.google.common.collect.Lists;
public class AchievementTest {
@Test
@SuppressWarnings("unchecked")
- public void verifyMapping() throws IllegalArgumentException, SecurityException, IllegalAccessException, NoSuchFieldException {
+ public void verifyMapping() throws Throwable {
List<Achievement> achievements = Lists.newArrayList(Achievement.values());
for (net.minecraft.server.Achievement statistic : (List<net.minecraft.server.Achievement>) AchievementList.e) {
@@ -29,9 +29,9 @@ public class AchievementTest {
Achievement subject = Achievement.getById(id);
assertNotNull(message, subject);
- achievements.remove(subject);
+ assertTrue(name, achievements.remove(subject));
}
- assertThat("org.bukkit.Achievement has too many achievements", achievements, hasSize(0));
+ assertThat("org.bukkit.Achievement has too many achievements", achievements, is(Collections.EMPTY_LIST));
}
}
diff --git a/src/test/java/org/bukkit/ArtTest.java b/src/test/java/org/bukkit/ArtTest.java
index cca4ddf2..46804f7e 100644
--- a/src/test/java/org/bukkit/ArtTest.java
+++ b/src/test/java/org/bukkit/ArtTest.java
@@ -1,10 +1,9 @@
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 static org.junit.Assert.*;
+import static org.hamcrest.Matchers.*;
+import java.util.Collections;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
@@ -41,7 +40,7 @@ public class ArtTest {
arts.remove(subject);
}
- assertThat("org.bukkit.Art has too many arts", arts, hasSize(0));
+ assertThat("org.bukkit.Art has too many arts", arts, is(Collections.EMPTY_LIST));
}
@Test
@@ -50,7 +49,7 @@ public class ArtTest {
for (Art art : Art.values()) {
EnumArt enumArt = CraftArt.BukkitToNotch(art);
assertNotNull(art.name(), enumArt);
- assertThat(art.name(), cache.put(enumArt, art), is((Art) null));
+ assertThat(art.name(), cache.put(enumArt, art), is(nullValue()));
}
}
@@ -60,7 +59,7 @@ public class ArtTest {
for (EnumArt enumArt : EnumArt.values()) {
Art art = CraftArt.NotchToBukkit(enumArt);
assertNotNull(enumArt.name(), art);
- assertThat(enumArt.name(), cache.put(art, enumArt), is((EnumArt) null));
+ assertThat(enumArt.name(), cache.put(art, enumArt), is(nullValue()));
}
}
}
diff --git a/src/test/java/org/bukkit/MaterialTest.java b/src/test/java/org/bukkit/MaterialTest.java
index f4464fd8..dbb60de0 100644
--- a/src/test/java/org/bukkit/MaterialTest.java
+++ b/src/test/java/org/bukkit/MaterialTest.java
@@ -1,14 +1,12 @@
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 static org.junit.Assert.*;
+import static org.hamcrest.Matchers.*;
+import java.util.Collections;
import java.util.Map;
import net.minecraft.server.Item;
-import net.minecraft.server.ItemFood;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
@@ -16,6 +14,7 @@ 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();
@@ -29,40 +28,12 @@ public class MaterialTest extends AbstractTestingBase {
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("Missing " + name + "(" + id + ")", material, is(not(nullValue())));
}
- assertThat("org.bukkit.Material has entries marked edible that are not ItemFood", materials.values(), hasSize(0));
+ assertThat(materials, is(Collections.EMPTY_MAP));
}
}
diff --git a/src/test/java/org/bukkit/PerMaterialTest.java b/src/test/java/org/bukkit/PerMaterialTest.java
index f73a9b2d..766bce26 100644
--- a/src/test/java/org/bukkit/PerMaterialTest.java
+++ b/src/test/java/org/bukkit/PerMaterialTest.java
@@ -3,27 +3,37 @@ package org.bukkit;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
-import java.util.ArrayList;
import java.util.List;
-import net.minecraft.server.AchievementList;
import net.minecraft.server.Block;
+import net.minecraft.server.BlockFire;
+import net.minecraft.server.Item;
+import net.minecraft.server.ItemFood;
+import net.minecraft.server.ItemRecord;
+import org.bukkit.support.AbstractTestingBase;
+import org.bukkit.support.Util;
+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 com.google.common.collect.Lists;
+
@RunWith(Parameterized.class)
-public class PerMaterialTest {
- static {
- AchievementList.a();
+public class PerMaterialTest extends AbstractTestingBase {
+ private static int[] fireValues;
+
+ @BeforeClass
+ public static void getFireValues() {
+ fireValues = Util.getInternalState(BlockFire.class, Block.FIRE, "a");
}
@Parameters(name= "{index}: {0}")
public static List<Object[]> data() {
- List<Object[]> list = new ArrayList<Object[]>();
+ List<Object[]> list = Lists.newArrayList();
for (Material material : Material.values()) {
list.add(new Object[] {material});
}
@@ -42,4 +52,70 @@ public class PerMaterialTest {
assertFalse(material.isSolid());
}
}
+
+ @Test
+ public void isEdible() {
+ assertThat(material.isEdible(), is(Item.byId[material.getId()] instanceof ItemFood));
+ }
+
+ @Test
+ public void isRecord() {
+ assertThat(material.isRecord(), is(Item.byId[material.getId()] instanceof ItemRecord));
+ }
+
+ @Test
+ public void maxDurability() {
+ if (material == Material.AIR) {
+ assertThat((int) material.getMaxDurability(), is(0));
+ } else {
+ assertThat((int) material.getMaxDurability(), is(Item.byId[material.getId()].getMaxDurability()));
+ }
+ }
+
+ @Test
+ public void maxStackSize() {
+ if (material == Material.AIR) {
+ assertThat(material.getMaxStackSize(), is(64 /* Why can't I hold all of these AIR? */));
+ } else {
+ assertThat(material.getMaxStackSize(), is(Item.byId[material.getId()].getMaxStackSize()));
+ }
+ }
+
+ @Test
+ public void isTransparent() {
+ if (material == Material.AIR) {
+ assertTrue(material.isTransparent());
+ } else if (material.isBlock()) {
+ assertThat(material.isTransparent(), is(not(Block.byId[material.getId()].material.blocksLight())));
+ } else {
+ assertFalse(material.isTransparent());
+ }
+ }
+
+ @Test
+ public void isFlammable() {
+ if (material != Material.AIR && material.isBlock()) {
+ assertThat(material.isFlammable(), is(Block.byId[material.getId()].material.isBurnable()));
+ } else {
+ assertFalse(material.isFlammable());
+ }
+ }
+
+ @Test
+ public void isBurnable() {
+ if (material.isBlock()) {
+ assertThat(material.isBurnable(), is(fireValues[material.getId()] > 0));
+ } else {
+ assertFalse(material.isBurnable());
+ }
+ }
+
+ @Test
+ public void isOccluding() {
+ if (material.isBlock()) {
+ assertThat(material.isOccluding(), is(Block.i(material.getId())));
+ } else {
+ assertFalse(material.isOccluding());
+ }
+ }
}
diff --git a/src/test/java/org/bukkit/SoundTest.java b/src/test/java/org/bukkit/SoundTest.java
index ca45067f..c9865fa0 100644
--- a/src/test/java/org/bukkit/SoundTest.java
+++ b/src/test/java/org/bukkit/SoundTest.java
@@ -1,6 +1,7 @@
package org.bukkit;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.*;
+import static org.hamcrest.Matchers.*;
import org.bukkit.craftbukkit.CraftSound;
import org.junit.Test;
@@ -11,7 +12,7 @@ public class SoundTest {
@Test
public void testGetSound() {
for (Sound sound : Sound.values()) {
- assertNotNull(sound.name(), CraftSound.getSound(sound));
+ assertThat(sound.name(), CraftSound.getSound(sound), is(not(nullValue())));
}
}
}
diff --git a/src/test/java/org/bukkit/WorldTypeTest.java b/src/test/java/org/bukkit/WorldTypeTest.java
index 8d063ca5..154d0b49 100644
--- a/src/test/java/org/bukkit/WorldTypeTest.java
+++ b/src/test/java/org/bukkit/WorldTypeTest.java
@@ -1,9 +1,7 @@
package org.bukkit;
-import static org.junit.Assert.fail;
-
-import java.util.ArrayList;
-import java.util.List;
+import static org.junit.Assert.*;
+import static org.hamcrest.Matchers.*;
import net.minecraft.server.WorldType;
import org.junit.Test;
@@ -11,21 +9,10 @@ import org.junit.Test;
public class WorldTypeTest {
@Test
public void testTypes() {
- List<WorldType> missingTypes = new ArrayList<WorldType>();
-
for (WorldType type : WorldType.types) {
if (type == null) continue;
- if (org.bukkit.WorldType.getByName(type.name()) == null) {
- missingTypes.add(type);
- }
- }
-
- if (!missingTypes.isEmpty()) {
- for (WorldType type : missingTypes) {
- System.out.println(type.name() + " is missing!");
- }
- fail("Missing (" + missingTypes.size() + ") WorldTypes!");
+ assertThat(type.name() + " has no Bukkit world", org.bukkit.WorldType.getByName(type.name()), is(not(nullValue())));
}
}
}
diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/CraftItemStackTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/CraftItemStackTest.java
index a57ddca6..fe2bc181 100644
--- a/src/test/java/org/bukkit/craftbukkit/inventory/CraftItemStackTest.java
+++ b/src/test/java/org/bukkit/craftbukkit/inventory/CraftItemStackTest.java
@@ -1,16 +1,15 @@
package org.bukkit.craftbukkit.inventory;
+import static org.junit.Assert.*;
+import static org.hamcrest.Matchers.*;
+
import net.minecraft.server.Enchantment;
-import net.minecraft.server.StatisticList;
+
import org.bukkit.inventory.ItemStack;
-import org.junit.Before;
+import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
-public class CraftItemStackTest {
- @Before
- public void setUp() throws Exception {
- StatisticList.a();
- }
+public class CraftItemStackTest extends AbstractTestingBase {
@Test
public void testCloneEnchantedItem() throws Exception {
@@ -18,12 +17,13 @@ public class CraftItemStackTest {
nmsItemStack.addEnchantment(Enchantment.DAMAGE_ALL, 1);
ItemStack itemStack = new CraftItemStack(nmsItemStack);
ItemStack clone = itemStack.clone();
- assert (clone.getType().equals(itemStack.getType()));
- assert (clone.getAmount() == itemStack.getAmount());
- assert (clone.getDurability() == itemStack.getDurability());
- assert (clone.getEnchantments().equals(itemStack.getEnchantments()));
- assert (clone.getTypeId() == itemStack.getTypeId());
- assert (clone.getData().equals(itemStack.getData()));
+ assertThat(clone.getType(), is(itemStack.getType()));
+ assertThat(clone.getAmount(), is(itemStack.getAmount()));
+ assertThat(clone.getDurability(), is(itemStack.getDurability()));
+ assertThat(clone.getEnchantments(), is(itemStack.getEnchantments()));
+ assertThat(clone.getTypeId(), is(itemStack.getTypeId()));
+ assertThat(clone.getData(), is(itemStack.getData()));
+ assertThat(clone, is(itemStack));
}
@Test
@@ -31,6 +31,6 @@ public class CraftItemStackTest {
net.minecraft.server.ItemStack nmsItemStack = null;
ItemStack itemStack = new CraftItemStack(nmsItemStack);
ItemStack clone = itemStack.clone();
- assert (clone.equals(itemStack));
+ assertThat(clone, is(itemStack));
}
}
diff --git a/src/test/java/org/bukkit/potion/PotionTest.java b/src/test/java/org/bukkit/potion/PotionTest.java
index 1f0a2c52..1040b6ad 100644
--- a/src/test/java/org/bukkit/potion/PotionTest.java
+++ b/src/test/java/org/bukkit/potion/PotionTest.java
@@ -3,11 +3,11 @@ package org.bukkit.potion;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
-import java.lang.reflect.Field;
import java.util.EnumMap;
import java.util.Map;
import org.bukkit.craftbukkit.potion.CraftPotionBrewer;
+import org.bukkit.support.Util;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -36,9 +36,7 @@ public class PotionTest {
@Test
public void testEffectCompleteness() throws SecurityException, IllegalAccessException, NoSuchFieldException {
- Field durationsField = net.minecraft.server.PotionBrewer.class.getDeclaredField("effectDurations");
- durationsField.setAccessible(true);
- Map<Integer, ?> effectDurations = (Map<Integer, ?>) durationsField.get(null);
+ Map<Integer, ?> effectDurations = Util.getInternalState(net.minecraft.server.PotionBrewer.class, null, "effectDurations");
Map<PotionType, String> effects = new EnumMap(PotionType.class);
for (int id : effectDurations.keySet()) {