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 :("); } }