package vooga.rts.tests;
import static org.junit.Assert.*;
import org.junit.BeforeClass;
import org.junit.Test;
import vooga.rts.util.ReflectionHelper;
/**
* Tests the ReflectionHelper's set and get methods to see if they work correctly
*
* @author Jonathan Schmidt
*
*/
public class ReflectionTester {
BananaSeller test;
@BeforeClass
public static void setUpBeforeClass () throws Exception {
}
@Test
public void checkSetValue () {
BananaSeller tempTest = new BananaSeller(50);
ReflectionHelper.<Integer> setValue("myBananas", tempTest, 30);
assertEquals(tempTest.getBananas(), 30);
}
@Test
public void checkGetValue () {
BananaSeller tempTest = new BananaSeller(100);
Integer val = ReflectionHelper.<Integer> getValue("myBananas", tempTest);
assertEquals(val.intValue(), 100);
}
@Test
public void checkChangeValue () {
BananaSeller tempTest = new BananaSeller(70);
ReflectionHelper.<Integer> changeValue("myBananas", tempTest, 30);
assertEquals(tempTest.getBananas(), 100);
}
@Test
public void checkHierarchySetValue () {
BananaSeller tempTest = new BananaSeller(50);
ReflectionHelper.<Integer> setValue("myFruit", tempTest, 30);
assertEquals(tempTest.getFruit(), 30);
}
@Test
public void checkHierarchyGetValue () {
BananaSeller tempTest = new BananaSeller(100);
Integer val = ReflectionHelper.<Integer> getValue("myFruit", tempTest);
assertEquals(val.intValue(), 100);
}
@Test
public void checkHierarchyChangeValue () {
BananaSeller tempTest = new BananaSeller(70);
ReflectionHelper.<Integer> changeValue("myFruit", tempTest, 30);
assertEquals(tempTest.getFruit(), 100);
}
private class BananaSeller extends FruitSeller {
private int myBananas;
public BananaSeller (int val) {
super(val);
myBananas = val;
}
public int getBananas () {
return myBananas;
}
}
private class FruitSeller {
private int myFruit;
public FruitSeller (int val) {
myFruit = val;
}
public int getFruit () {
return myFruit;
}
}
}