66 lines
2.5 KiB
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(String.class, Reflect.getClass("java.lang.String"));
|
|
Assert.assertNotEquals(String.class, Reflect.getClass("java.lang.Integer"));
|
|
}
|
|
|
|
@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(String.class, resultClazz);
|
|
}
|
|
|
|
@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("nope", value);
|
|
}
|
|
|
|
@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("no yeah man :(", value);
|
|
}
|
|
}
|