From b8741d881b2cb7361cd893b9fb7faa38c687311a Mon Sep 17 00:00:00 2001 From: JanUlrich Date: Mon, 10 Sep 2018 02:36:53 +0200 Subject: [PATCH] =?UTF-8?q?Sorting=20Test=20f=C3=BCr=20Bytecoded=20generie?= =?UTF-8?q?rung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/bytecode/OverloadingSortingTest.java | 51 +++++++++++++++++++++++ test/bytecode/javFiles/Sorting.jav | 9 ++++ 2 files changed, 60 insertions(+) create mode 100644 test/bytecode/OverloadingSortingTest.java create mode 100644 test/bytecode/javFiles/Sorting.jav diff --git a/test/bytecode/OverloadingSortingTest.java b/test/bytecode/OverloadingSortingTest.java new file mode 100644 index 00000000..a781280f --- /dev/null +++ b/test/bytecode/OverloadingSortingTest.java @@ -0,0 +1,51 @@ +package bytecode; + +import de.dhbwstuttgart.core.JavaTXCompiler; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.File; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; + +import static org.junit.Assert.assertEquals; + +public class OverloadingSortingTest { + private static String path; + private static File fileToTest; + private static JavaTXCompiler compiler; + private static ClassLoader loader; + private static Class classToTest; + private static String pathToClassFile; + private static Object instanceOfClass; + + private static Class classOL2; + private static Object instanceOfClassOL2; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + path = System.getProperty("user.dir")+"/test/bytecode/javFiles/Sorting.jav"; + fileToTest = new File(path); + compiler = new JavaTXCompiler(fileToTest); + pathToClassFile = System.getProperty("user.dir")+"/testBytecode/generatedBC/"; + compiler.generateBytecode(pathToClassFile); + loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); + classToTest = loader.loadClass("Sorting"); + instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); + } + + @Test + public void test() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { + Method meth = classToTest.getDeclaredMethod("merge", classToTest); + } + + @Test + public void test2() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { + Method meth = classToTest.getDeclaredMethod("test", classOL2); + String res = (String) meth.invoke(instanceOfClass, instanceOfClassOL2); + assertEquals("Overloading2", res); + } + +} diff --git a/test/bytecode/javFiles/Sorting.jav b/test/bytecode/javFiles/Sorting.jav new file mode 100644 index 00000000..e6febcdd --- /dev/null +++ b/test/bytecode/javFiles/Sorting.jav @@ -0,0 +1,9 @@ +import java.util.List; +import java.util.Collection; + +class Sorting{ + merge(a, b){ + a.addAll(b); + return a; + } +} \ No newline at end of file