aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue276.java
diff options
context:
space:
mode:
Diffstat (limited to 'javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue276.java')
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue276.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue276.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue276.java
new file mode 100644
index 000000000..4b085c246
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue276.java
@@ -0,0 +1,41 @@
+package com.github.javaparser.symbolsolver;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.symbolsolver.javaparser.Navigator;
+import com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodContext;
+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 java.io.File;
+import java.io.FileNotFoundException;
+import java.util.List;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class Issue276 extends AbstractResolutionTest{
+
+ @Test
+ public void testSolveStaticallyImportedMemberType() throws FileNotFoundException {
+ CompilationUnit cu = JavaParser.parse(new File(adaptPath("src/test/resources/issue276/foo/C.java")));
+ ClassOrInterfaceDeclaration cls = Navigator.demandClassOrInterface(cu, "C");
+ TypeSolver typeSolver = new CombinedTypeSolver(
+ new ReflectionTypeSolver(),
+ new JavaParserTypeSolver(adaptPath(new File("src/test/resources/issue276"))));
+ List<MethodDeclaration> methods = Navigator.findAllNodesOfGivenClass(cls, MethodDeclaration.class);
+ boolean isSolved = false;
+ for (MethodDeclaration method: methods) {
+ if (method.getNameAsString().equals("overrideMe")) {
+ MethodContext context = new MethodContext(method, typeSolver);
+ isSolved = context.solveType("FindMeIfYouCan", typeSolver).isSolved();
+ }
+ }
+ Assert.assertTrue(isSolved);
+ }
+}