package me.tomassetti.turin.compiler; import com.github.javaparser.ast.comments.Comment; import com.github.javaparser.ast.comments.LineComment; import com.github.javaparser.ast.expr.BinaryExpr; import com.github.javaparser.ast.expr.Expression; import com.google.common.collect.ImmutableList; import org.junit.Test; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import static org.junit.Assert.assertEquals; public class CompilerJarReferenceTest extends AbstractCompilerTest { @Test public void compileFunctionInstantiatingTypeFromJar() throws IllegalAccessException, InvocationTargetException, InstantiationException, NoSuchMethodException, IOException { Method invoke = compileFunction("use_jar_constructor", new Class[]{String.class}, ImmutableList.of("src/test/resources/jars/javaparser-core-2.2.1.jar")); Comment comment = (Comment)invoke.invoke(null, "qwerty"); assertEquals("qwerty", comment.getContent()); } @Test public void compileFunctionUsingMethodTypeFromJar() throws IllegalAccessException, InvocationTargetException, InstantiationException, NoSuchMethodException, IOException { Method invoke = compileFunction("use_jar_method", new Class[]{Comment.class}, ImmutableList.of("src/test/resources/jars/javaparser-core-2.2.1.jar")); Comment comment = new LineComment("qwerty"); assertEquals("qwerty", invoke.invoke(null, comment)); } @Test public void compileFunctionUsingContructorAndMethodTypeFromJar() throws IllegalAccessException, InvocationTargetException, InstantiationException, NoSuchMethodException, IOException { Method invoke = compileFunction("use_jar", new Class[]{String.class}, ImmutableList.of("src/test/resources/jars/javaparser-core-2.2.1.jar")); assertEquals("qwerty", invoke.invoke(null, "qwerty")); } @Test public void compileFunctionUsinStaticMethodFromJar() throws IllegalAccessException, InvocationTargetException, InstantiationException, NoSuchMethodException, IOException { Method invoke = compileFunction("use_jar_static_method", new Class[]{}, ImmutableList.of("src/test/resources/jars/javaparser-core-2.2.1.jar")); Expression expression = (Expression) invoke.invoke(null); assertEquals(true, expression instanceof BinaryExpr); BinaryExpr binaryExpr = (BinaryExpr)expression; assertEquals(BinaryExpr.Operator.plus, binaryExpr.getOperator()); } }