package com.jcwhatever.nucleus.internal.managed.reflection; import static org.junit.Assert.assertEquals; import com.jcwhatever.nucleus.NucleusTest; import org.junit.BeforeClass; import org.junit.Test; import java.lang.reflect.Field; public class ReflectedFieldTest { @BeforeClass public static void beforeClass() { NucleusTest.init(); } private ReflectedField getTestField() throws Exception { Field field = ReflectableType.class.getDeclaredField("field1"); field.setAccessible(true); CachedReflectedType reflectedType = new CachedReflectedType(ReflectableType.class); return new ReflectedField(reflectedType, field); } @Test public void testGetName() throws Exception { ReflectedField field = getTestField(); assertEquals("field1", field.getName()); } @Test public void testGetModifiers() throws Exception { ReflectedField field = getTestField(); assertEquals(4, field.getModifiers()); } @Test public void testGetCurrentModifiers() throws Exception { ReflectedField field = getTestField(); assertEquals(4, field.getCurrentModifiers()); } @Test public void testIsStatic() throws Exception { ReflectedField field = getTestField(); assertEquals(false, field.isStatic()); } @Test public void testIsFinal() throws Exception { ReflectedField field = getTestField(); assertEquals(false, field.isFinal()); } @Test public void testIsPrivate() throws Exception { ReflectedField field = getTestField(); assertEquals(false, field.isPrivate()); } @Test public void testIsNative() throws Exception { ReflectedField field = getTestField(); assertEquals(false, field.isNative()); } @Test public void testIsProtected() throws Exception { ReflectedField field = getTestField(); assertEquals(true, field.isProtected()); } @Test public void testIsPublic() throws Exception { ReflectedField field = getTestField(); assertEquals(false, field.isPublic()); } @Test public void testIsStrict() throws Exception { ReflectedField field = getTestField(); assertEquals(false, field.isStrict()); } @Test public void testIsTransient() throws Exception { ReflectedField field = getTestField(); assertEquals(false, field.isTransient()); } @Test public void testIsVolatile() throws Exception { ReflectedField field = getTestField(); assertEquals(false, field.isVolatile()); } @Test public void testGetType() throws Exception { ReflectedField field = getTestField(); assertEquals(String.class, field.getReflectedType().getHandle()); } @Test public void testGet() throws Exception { ReflectedField field = getTestField(); ReflectableType instance = new ReflectableType(); assertEquals("string", field.get(instance)); } @Test public void testSet() throws Exception { ReflectedField field = getTestField(); ReflectableType instance = new ReflectableType(); field.set(instance, "test"); assertEquals("test", field.get(instance)); } }