package bytecode.operators; import static org.junit.Assert.*; import java.io.File; import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader; import java.util.Vector; import org.junit.Ignore; import org.junit.Test; import bytecode.SourceFileBytecodeTest; public class AddOperatorTest extends SourceFileBytecodeTest{ @Override protected void init() { testName = "AddOperator"; rootDirectory = System.getProperty("user.dir")+"/test/bytecode/operators/"; } @Test public void testConstruct() throws Exception{ ClassLoader classLoader = getClassLoader(); Class cls = classLoader.loadClass(testName); Object obj = cls.newInstance(); assertTrue(true); } @Test public void testTwoIntegers() throws Exception{ ClassLoader classLoader = getClassLoader(); Class cls = classLoader.loadClass(testName); Object obj = cls.newInstance(); Integer x = new Integer(1); Class[] params = new Class[]{ x.getClass() }; Method method = cls.getDeclaredMethod("method", params); Integer returnValue = (Integer) method.invoke(obj, x); assertEquals(new Integer(2), returnValue); } @Test public void testTwoDoubles() throws Exception{ ClassLoader classLoader = getClassLoader(); Class cls = classLoader.loadClass(testName); Object obj = cls.newInstance(); Double x = new Double(1.0); Class[] params = new Class[]{ x.getClass() }; Method method = cls.getDeclaredMethod("method", params); Double returnValue = (Double) method.invoke(obj, x); assertEquals(new Double(2.0), returnValue); } @Test public void testTwoFloats() throws Exception{ ClassLoader classLoader = getClassLoader(); Class cls = classLoader.loadClass(testName); Object obj = cls.newInstance(); Float x = new Float(1.0); Class[] params = new Class[]{ x.getClass() }; Method method = cls.getDeclaredMethod("method", params); Float returnValue = (Float) method.invoke(obj, x); assertEquals(new Float(2.0), returnValue); } @Test public void testTwoLongs() throws Exception{ ClassLoader classLoader = getClassLoader(); Class cls = classLoader.loadClass(testName); Object obj = cls.newInstance(); Long x = new Long(1); Class[] params = new Class[]{ x.getClass() }; Method method = cls.getDeclaredMethod("method", params); Long returnValue = (Long) method.invoke(obj, x); assertEquals(new Long(3), returnValue); } }