Skip to content

Commit

Permalink
adding test classDeclarationResolve
Browse files Browse the repository at this point in the history
  • Loading branch information
ftomassetti committed Nov 6, 2017
1 parent 633ebfb commit f8523ad
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 28 deletions.
Expand Up @@ -7,11 +7,9 @@
import com.github.javaparser.ast.type.ArrayType;
import com.github.javaparser.ast.type.Type;
import com.github.javaparser.resolution.SymbolResolver;
import com.github.javaparser.resolution.declarations.ResolvedClassDeclaration;
import com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration;
import com.github.javaparser.resolution.declarations.ResolvedFieldDeclaration;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.resolution.declarations.*;
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.JavaParserFactory;
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserConstructorDeclaration;
Expand Down Expand Up @@ -76,6 +74,11 @@ public <T> T resolveDeclaration(Node node, Class<T> resultClass) {
return resultClass.cast(resolved);
}
}
if (node instanceof AnnotationMemberDeclaration) {
ResolvedAnnotationDeclaration annotationDeclaration = Navigator.findAncestor(node, AnnotationDeclaration.class).get().resolve();
// TODO look among the members
throw new UnsupportedOperationException();
}
if (node instanceof FieldDeclaration) {
FieldDeclaration fieldDeclaration = (FieldDeclaration)node;
if (fieldDeclaration.getVariables().size() != 1) {
Expand Down
Expand Up @@ -8,7 +8,6 @@
import com.github.javaparser.ast.body.*;
import com.github.javaparser.resolution.declarations.*;
import com.github.javaparser.resolution.types.ResolvedReferenceType;
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration;
import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
Expand All @@ -20,7 +19,6 @@

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;

Expand Down Expand Up @@ -50,9 +48,7 @@ public void setup() {
@Test
public void annotationDeclarationResolve() throws IOException {
File f = adaptPath(new File("src/test/resources/Annotations.java.txt"));
ParserConfiguration parserConfiguration = new ParserConfiguration();
parserConfiguration.setSymbolResolver(new JavaSymbolSolver(typeSolver));
CompilationUnit cu = new JavaParser(parserConfiguration).parse(ParseStart.COMPILATION_UNIT, new StreamProvider(new FileInputStream(f))).getResult().get();
CompilationUnit cu = parseWithSymbolResolution(f);
AnnotationDeclaration declaration = (AnnotationDeclaration)cu.getType(0);
assertEquals("MyAnnotation", declaration.getNameAsString());
ResolvedAnnotationDeclaration resolvedDeclaration = declaration.resolve();
Expand All @@ -70,22 +66,26 @@ public void annotationDeclarationResolve() throws IOException {
// ResolvedAnnotationMemberDeclaration resolvedDeclaration = memberDeclaration.resolve();
// }

// @Test
// public void classDeclarationResolve() throws FileNotFoundException {
// File f = adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java"));
// CompilationUnit cu = JavaParser.parse(f);
// ClassOrInterfaceDeclaration classOrInterfaceDeclaration = (ClassOrInterfaceDeclaration)cu.getType(0);
// //classOrInterfaceDeclaration.resolve
// }
@Test
public void classDeclarationResolve() throws IOException {
File f = adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java"));
CompilationUnit cu = parseWithSymbolResolution(f);
ClassOrInterfaceDeclaration declaration = (ClassOrInterfaceDeclaration)cu.getType(0);
declaration.resolve();
}

private CompilationUnit parseWithSymbolResolution(File f) throws IOException {
ParserConfiguration parserConfiguration = new ParserConfiguration();
parserConfiguration.setSymbolResolver(new JavaSymbolSolver(typeSolver));
return new JavaParser(parserConfiguration).parse(ParseStart.COMPILATION_UNIT, new StreamProvider(new FileInputStream(f))).getResult().get();
}

// TODO test for interfaceDeclaration

@Test
public void constructorDeclarationResolve() throws IOException {
File f = adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java"));
ParserConfiguration parserConfiguration = new ParserConfiguration();
parserConfiguration.setSymbolResolver(new JavaSymbolSolver(typeSolver));
CompilationUnit cu = new JavaParser(parserConfiguration).parse(ParseStart.COMPILATION_UNIT, new StreamProvider(new FileInputStream(f))).getResult().get();
CompilationUnit cu = parseWithSymbolResolution(f);
ClassOrInterfaceDeclaration classOrInterfaceDeclaration = (ClassOrInterfaceDeclaration)cu.getType(0);
ConstructorDeclaration constructorDeclaration = classOrInterfaceDeclaration.getDefaultConstructor().get();
ResolvedConstructorDeclaration resolvedConstructorDeclaration = constructorDeclaration.resolve();
Expand All @@ -96,9 +96,7 @@ public void constructorDeclarationResolve() throws IOException {
@Test
public void enumDeclarationResolve() throws IOException {
File f = adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-core/com/github/javaparser/ast/AccessSpecifier.java"));
ParserConfiguration parserConfiguration = new ParserConfiguration();
parserConfiguration.setSymbolResolver(new JavaSymbolSolver(typeSolver));
CompilationUnit cu = new JavaParser(parserConfiguration).parse(ParseStart.COMPILATION_UNIT, new StreamProvider(new FileInputStream(f))).getResult().get();
CompilationUnit cu = parseWithSymbolResolution(f);
EnumDeclaration declaration = (EnumDeclaration) cu.getType(0);
assertEquals("AccessSpecifier", declaration.getNameAsString());
ResolvedEnumDeclaration resolvedDeclaration = declaration.resolve();
Expand All @@ -107,9 +105,7 @@ public void enumDeclarationResolve() throws IOException {
@Test
public void fieldDeclarationResolve() throws IOException {
File f = adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java"));
ParserConfiguration parserConfiguration = new ParserConfiguration();
parserConfiguration.setSymbolResolver(new JavaSymbolSolver(typeSolver));
CompilationUnit cu = new JavaParser(parserConfiguration).parse(ParseStart.COMPILATION_UNIT, new StreamProvider(new FileInputStream(f))).getResult().get();
CompilationUnit cu = parseWithSymbolResolution(f);
ClassOrInterfaceDeclaration classDeclaration = (ClassOrInterfaceDeclaration) cu.getType(0);
assertEquals("CompilationUnit", classDeclaration.getNameAsString());
FieldDeclaration declaration = classDeclaration.getFields().get(0);
Expand All @@ -121,9 +117,7 @@ public void fieldDeclarationResolve() throws IOException {
@Test
public void methodDeclarationResolve() throws IOException {
File f = adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-core/com/github/javaparser/ast/CompilationUnit.java"));
ParserConfiguration parserConfiguration = new ParserConfiguration();
parserConfiguration.setSymbolResolver(new JavaSymbolSolver(typeSolver));
CompilationUnit cu = new JavaParser(parserConfiguration).parse(ParseStart.COMPILATION_UNIT, new StreamProvider(new FileInputStream(f))).getResult().get();
CompilationUnit cu = parseWithSymbolResolution(f);
ClassOrInterfaceDeclaration classDeclaration = (ClassOrInterfaceDeclaration) cu.getType(0);
assertEquals("CompilationUnit", classDeclaration.getNameAsString());
MethodDeclaration declaration = classDeclaration.getMethodsByName("getComments").get(0);
Expand Down

0 comments on commit f8523ad

Please sign in to comment.