package targetast; import de.dhbwstuttgart.environment.ByteArrayClassLoader; import org.junit.BeforeClass; import org.junit.Test; import java.lang.reflect.Method; import java.util.Stack; import java.util.Vector; import static org.junit.Assert.assertEquals; public class PutTest { private static Class classToTest; private static Object instanceOfClass; @BeforeClass public static void setUpBeforeClass() throws Exception { var classFiles = TestCodegen.generateClassFiles(new ByteArrayClassLoader(), "Put.jav"); classToTest = classFiles.get("Put"); instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); } @Test public void testPutElementVector() throws Exception { Method m = classToTest.getDeclaredMethod("putElement", Object.class, Vector.class); Vector v_invoke = new Vector<>(); m.invoke(instanceOfClass, 5, v_invoke); Vector v = new Vector<>(); v.add(5); assertEquals(v, v_invoke); } @Test public void testPutElementStack() throws Exception { Method m = classToTest.getDeclaredMethod("putElement", Object.class, Stack.class); Stack s_invoke = new Stack<>(); m.invoke(instanceOfClass, 5, s_invoke); assertEquals(new Integer(5), s_invoke.pop()); } @Test public void testMainVector() throws Exception { Method m = classToTest.getDeclaredMethod("main", Object.class, Vector.class); Vector v_invoke = new Vector<>(); m.invoke(instanceOfClass, 6, v_invoke); Vector v = new Vector<>(); v.add(6); assertEquals(v, v_invoke); } @Test public void testMainStack() throws Exception { Method m = classToTest.getDeclaredMethod("main", Object.class, Stack.class); Stack s_invoke = new Stack<>(); m.invoke(instanceOfClass, 6, s_invoke); assertEquals(new Integer(6), s_invoke.pop()); } }