Utils/Reflect/src/test/java/eu/mikroskeem/utils/test/reflect/TestReflect.java

66 lines
2.5 KiB
Java

package eu.mikroskeem.utils.test.reflect;
import eu.mikroskeem.utils.reflect.Reflect;
import org.junit.Assert;
import org.junit.Test;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class TestReflect {
@Test
public void testGetClass(){
Assert.assertEquals(Reflect.getClass("java.lang.String"), String.class);
Assert.assertNotEquals(Reflect.getClass("java.lang.Integer"), String.class);
}
@Test
public void testClassFind(){
Assert.assertTrue(Reflect.classExists("java.lang.String"));
Assert.assertFalse(Reflect.classExists("foo.bar.baz.xyz"));
}
@Test
public void testGetMethod(){
Class reflectClass = Reflect.getClass("eu.mikroskeem.utils.reflect.Reflect");
Method method = Reflect.getMethod(reflectClass, "getClass", String.class);
Assert.assertNotNull(method);
Method invalidMethod = Reflect.getMethod(reflectClass, "getClass", Integer.class);
Assert.assertNull(invalidMethod);
}
@Test
public void testInvokeMethod(){
Class reflectClass = Reflect.getClass("eu.mikroskeem.utils.reflect.Reflect");
Method method = Reflect.getMethod(reflectClass, "getClass", String.class);
Class<?> resultClazz = (Class)Reflect.invokeMethod(method, null, "java.lang.String");
Assert.assertEquals(resultClazz, String.class);
}
@Test
public void testGetField(){
Class reflectTestClass = Reflect.getClass("eu.mikroskeem.utils.test.reflect.ReflectionTestClass");
Field foobarField = Reflect.getField(reflectTestClass, "FOOBAR");
Assert.assertNotNull(foobarField);
Field invalidField = Reflect.getField(reflectTestClass, "ROOMAZ");
Assert.assertNull(invalidField);
}
@Test
public void testReadField(){
Class reflectTestClass = Reflect.getClass("eu.mikroskeem.utils.test.reflect.ReflectionTestClass");
Field foobarField = Reflect.getField(reflectTestClass, "FOOBAR");
String value = (String)Reflect.readField(foobarField, null);
Assert.assertEquals(value, "nope");
}
@Test
public void testWriteField(){
Class reflectTestClass = Reflect.getClass("eu.mikroskeem.utils.test.reflect.ReflectionTestClass");
Field bazfed = Reflect.getField(reflectTestClass, "BAZFED");
Reflect.writeField(bazfed, null, "no yeah man :(");
String value = (String)Reflect.readField(bazfed, null);
Assert.assertEquals(value, "no yeah man :(");
}
}