package droidkit.util;
import junit.framework.Assert;
import junit.framework.TestCase;
import droidkit.util.DynamicField;
/**
* @author Daniel Serdyukov
*/
public class DynamicFieldTest extends TestCase {
private MockObject mObject;
@Override
public void setUp() throws Exception {
super.setUp();
MockObject.sStaticField = MockObject.EXPECTED_VALUE;
MockObject.sPrivateStaticField = MockObject.EXPECTED_VALUE;
mObject = new MockObject();
}
public void testGetStaticPublic() throws Exception {
Assert.assertEquals(MockObject.EXPECTED_VALUE, DynamicField.getStatic(MockObject.class, "sStaticField"));
}
public void testGetStaticPrivate() throws Exception {
Assert.assertEquals(MockObject.EXPECTED_VALUE, DynamicField.getStatic(MockObject.class, "sPrivateStaticField"));
}
public void testSetStaticPublic() throws Exception {
final String expected = "new_expected";
DynamicField.setStatic(MockObject.class, "sStaticField", expected);
Assert.assertEquals(expected, MockObject.sStaticField);
}
public void testSetStaticPrivate() throws Exception {
final String expected = "new_expected";
DynamicField.setStatic(MockObject.class, "sPrivateStaticField", expected);
Assert.assertEquals(expected, MockObject.sPrivateStaticField);
}
public void testGetPublic() throws Exception {
Assert.assertEquals(MockObject.EXPECTED_VALUE, DynamicField.get(mObject, "mInstanceField"));
}
public void testGetPrivate() throws Exception {
Assert.assertEquals(MockObject.EXPECTED_VALUE, DynamicField.get(mObject, "mPrivateInstanceField"));
}
public void testSetPublic() throws Exception {
final String expected = "new_expected";
DynamicField.set(mObject, "mInstanceField", expected);
Assert.assertEquals(expected, mObject.mInstanceField);
}
public void testSetPrivate() throws Exception {
final String expected = "new_expected";
DynamicField.set(mObject, "mPrivateInstanceField", expected);
Assert.assertEquals(expected, mObject.mPrivateInstanceField);
}
private static class MockObject {
static final String EXPECTED_VALUE = "expected";
static String sStaticField = EXPECTED_VALUE;
private static String sPrivateStaticField = EXPECTED_VALUE;
String mInstanceField;
private String mPrivateInstanceField;
private MockObject() {
mInstanceField = EXPECTED_VALUE;
mPrivateInstanceField = EXPECTED_VALUE;
}
}
}