diff options
author | Erik Broes <erikbroes@grum.nl> | 2012-01-29 11:22:11 +0100 |
---|---|---|
committer | Erik Broes <erikbroes@grum.nl> | 2012-01-29 11:22:11 +0100 |
commit | 4c2f57592d73b51d7e78b259dce843edd48b562b (patch) | |
tree | ceef5e3b1bae8daf088c61012c9cb008eff04d67 /src/test/java/org/bukkit/support | |
parent | 1ea0037f490e014c705d93bec9fca0e1a524c3b1 (diff) | |
download | craftbukkit-4c2f57592d73b51d7e78b259dce843edd48b562b.tar craftbukkit-4c2f57592d73b51d7e78b259dce843edd48b562b.tar.gz craftbukkit-4c2f57592d73b51d7e78b259dce843edd48b562b.tar.lz craftbukkit-4c2f57592d73b51d7e78b259dce843edd48b562b.tar.xz craftbukkit-4c2f57592d73b51d7e78b259dce843edd48b562b.zip |
Add some testing
Diffstat (limited to 'src/test/java/org/bukkit/support')
-rw-r--r-- | src/test/java/org/bukkit/support/AbstractTestingBase.java | 21 | ||||
-rw-r--r-- | src/test/java/org/bukkit/support/Util.java | 31 |
2 files changed, 52 insertions, 0 deletions
diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java new file mode 100644 index 00000000..ca14db9b --- /dev/null +++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java @@ -0,0 +1,21 @@ +package org.bukkit.support; + +import net.minecraft.server.StatisticList; + +import org.junit.BeforeClass; + +/** + * If you are getting: java.lang.ExceptionInInitializerError + * at net.minecraft.server.StatisticList.<clinit>(SourceFile:58) + * at net.minecraft.server.Item.<clinit>(SourceFile:252) + * at net.minecraft.server.Block.<clinit>(Block.java:577) + * + * extend this class to solve it. + */ +public abstract class AbstractTestingBase { + + @BeforeClass + public static void setup() { + StatisticList.a(); + } +}
\ No newline at end of file diff --git a/src/test/java/org/bukkit/support/Util.java b/src/test/java/org/bukkit/support/Util.java new file mode 100644 index 00000000..2f24d9a4 --- /dev/null +++ b/src/test/java/org/bukkit/support/Util.java @@ -0,0 +1,31 @@ +package org.bukkit.support; + +import java.lang.reflect.Field; + +public class Util { + /* + public static <T> T getInternalState(Object object, String fieldName) { + return getInternalState(object.getClass(), object, fieldName); + } + */ + + @SuppressWarnings("unchecked") + public static <T> T getInternalState(Class<?> clazz, Object object, String fieldName) { + Field field; + try { + field = clazz.getDeclaredField(fieldName); + } catch (SecurityException e) { + throw new RuntimeException("Not allowed to access " + clazz, e); + } catch (NoSuchFieldException e) { + throw new RuntimeException("Unable to find field " + fieldName, e); + } + + field.setAccessible(true); + try { + return (T) field.get(object); + } catch (IllegalArgumentException e) { + } catch (IllegalAccessException e) { + } + throw new RuntimeException("Unable to get internal value"); + } +} |