diff options
Diffstat (limited to 'javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue144.java')
-rw-r--r-- | javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue144.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue144.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue144.java new file mode 100644 index 000000000..74c8ff7d1 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue144.java @@ -0,0 +1,70 @@ +package com.github.javaparser.symbolsolver; + +import com.github.javaparser.ParseException; +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; +import com.github.javaparser.ast.expr.Expression; +import com.github.javaparser.ast.expr.MethodCallExpr; +import com.github.javaparser.ast.stmt.ExpressionStmt; +import com.github.javaparser.resolution.UnsolvedSymbolException; +import com.github.javaparser.symbolsolver.javaparser.Navigator; +import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade; +import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; +import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest; +import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver; +import org.junit.Before; +import org.junit.Test; + +import java.io.File; +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class Issue144 extends AbstractResolutionTest { + + private TypeSolver typeSolver; + + @Before + public void setup() throws IOException { + File srcDir = adaptPath(new File("src/test/resources/issue144")); + typeSolver = new JavaParserTypeSolver(srcDir); + } + + @Test(expected = UnsolvedSymbolException.class) + public void issue144() { + CompilationUnit cu = parseSampleWithStandardExtension("issue144/HelloWorld"); + ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "HelloWorld"); + ExpressionStmt expressionStmt = (ExpressionStmt)clazz.getMethodsByName("main").get(0).getBody().get().getStatement(0); + MethodCallExpr methodCallExpr = (MethodCallExpr) expressionStmt.getExpression(); + Expression firstParameter = methodCallExpr.getArgument(0); + JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver); + + javaParserFacade.solve(firstParameter).isSolved(); + } + + @Test + public void issue144WithReflectionTypeSolver() { + CompilationUnit cu = parseSampleWithStandardExtension("issue144/HelloWorld"); + ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "HelloWorld"); + ExpressionStmt expressionStmt = (ExpressionStmt)clazz.getMethodsByName("main").get(0).getBody().get().getStatement(0); + MethodCallExpr methodCallExpr = (MethodCallExpr) expressionStmt.getExpression(); + Expression firstParameter = methodCallExpr.getArgument(0); + JavaParserFacade javaParserFacade = JavaParserFacade.get(new ReflectionTypeSolver(true)); + + assertEquals(true, javaParserFacade.solve(firstParameter).isSolved()); + } + + @Test + public void issue144WithCombinedTypeSolver() { + CompilationUnit cu = parseSampleWithStandardExtension("issue144/HelloWorld"); + ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "HelloWorld"); + ExpressionStmt expressionStmt = (ExpressionStmt)clazz.getMethodsByName("main").get(0).getBody().get().getStatement(0); + MethodCallExpr methodCallExpr = (MethodCallExpr) expressionStmt.getExpression(); + Expression firstParameter = methodCallExpr.getArgument(0); + JavaParserFacade javaParserFacade = JavaParserFacade.get(new CombinedTypeSolver(typeSolver, new ReflectionTypeSolver(true))); + + assertEquals(true, javaParserFacade.solve(firstParameter).isSolved()); + } +} |