diff options
Diffstat (limited to 'javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue347.java')
-rw-r--r-- | javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue347.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue347.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue347.java new file mode 100644 index 000000000..88755be23 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue347.java @@ -0,0 +1,55 @@ +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.FieldDeclaration; +import com.github.javaparser.ast.body.MethodDeclaration; +import com.github.javaparser.resolution.types.ResolvedType; +import com.github.javaparser.symbolsolver.javaparser.Navigator; +import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade; +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 org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.File; +import java.io.FileNotFoundException; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class Issue347 extends AbstractResolutionTest{ + + private TypeSolver typeSolver; + private JavaParserFacade javaParserFacade; + + @Before + public void setup() { + typeSolver = new ReflectionTypeSolver(); + javaParserFacade = JavaParserFacade.get(typeSolver); + } + + @Test + public void resolvingReferenceToEnumDeclarationInSameFile() { + String code = "package foo.bar;\nenum Foo {\n" + + " FOO_A, FOO_B\n" + + "}\n" + + "\n" + + "class UsingFoo {\n" + + " Foo myFooField;\n" + + "}"; + CompilationUnit cu = JavaParser.parse(code); + FieldDeclaration fieldDeclaration = Navigator.findNodeOfGivenClass(cu, FieldDeclaration.class); + ResolvedType fieldType = javaParserFacade.getType(fieldDeclaration); + assertEquals(true, fieldType.isReferenceType()); + assertEquals(true, fieldType.asReferenceType().getTypeDeclaration().isEnum()); + assertEquals("foo.bar.Foo", fieldType.asReferenceType().getQualifiedName()); + } +} + |