Skip to content

Commit

Permalink
correct tests #47
Browse files Browse the repository at this point in the history
  • Loading branch information
ftomassetti committed Mar 8, 2017
1 parent 8ca55db commit 5ab2f9f
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 23 deletions.
Expand Up @@ -55,7 +55,6 @@
public class JavaParserFacade {

private static Logger logger = Logger.getLogger(JavaParserFacade.class.getCanonicalName());
private Map<ClassOrInterfaceDeclaration, ReferenceTypeDeclaration> declarationsCache = new WeakHashMap<>();

static {
logger.setLevel(Level.INFO);
Expand Down Expand Up @@ -488,13 +487,6 @@ public MethodUsage solveMethodAsUsage(MethodCallExpr call) {
}

public ReferenceTypeDeclaration getTypeDeclaration(ClassOrInterfaceDeclaration classOrInterfaceDeclaration) {
if (!declarationsCache.containsKey(classOrInterfaceDeclaration)) {
declarationsCache.put(classOrInterfaceDeclaration, getTypeDeclarationImpl(classOrInterfaceDeclaration));
}
return declarationsCache.get(classOrInterfaceDeclaration);
}

private ReferenceTypeDeclaration getTypeDeclarationImpl(ClassOrInterfaceDeclaration classOrInterfaceDeclaration) {
if (classOrInterfaceDeclaration.isInterface()) {
return new JavaParserInterfaceDeclaration(classOrInterfaceDeclaration, typeSolver);
} else {
Expand Down
Expand Up @@ -30,26 +30,14 @@
import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
import com.github.javaparser.symbolsolver.resolution.SymbolDeclarator;

import java.util.Map;
import java.util.WeakHashMap;

import static com.github.javaparser.symbolsolver.javaparser.Navigator.getParentNode;

/**
* @author Federico Tomassetti
*/
public class JavaParserFactory {

private static Map<Node, Context> cache = new WeakHashMap<>();

public static Context getContext(Node node, TypeSolver typeSolver) {
if (!cache.containsKey(node)) {
cache.put(node, getContextImpl(node, typeSolver));
}
return cache.get(node);
}

private static Context getContextImpl(Node node, TypeSolver typeSolver) {
if (node == null) {
return null;
} else if (node instanceof CompilationUnit) {
Expand Down
Expand Up @@ -36,6 +36,7 @@
import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
import com.github.javaparser.symbolsolver.model.methods.MethodUsage;
import com.github.javaparser.symbolsolver.model.typesystem.Type;
import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
import com.github.javaparser.symbolsolver.resolution.typesolvers.*;
import org.junit.Test;

Expand Down Expand Up @@ -114,6 +115,8 @@ public void resolveReferenceToImportedType() throws ParseException {
expect(compilationUnitDecl.getName()).andReturn("CompilationUnit");
expect(compilationUnitDecl.getQualifiedName()).andReturn("com.github.javaparser.ast.CompilationUnit");
TypeSolver typeSolver = createMock(TypeSolver.class);
expect(typeSolver.getRoot()).andReturn(typeSolver);
expect(typeSolver.solveType("java.lang.Object")).andReturn(new ReflectionClassDeclaration(Object.class, typeSolver));
expect(typeSolver.tryToSolveType("com.github.javaparser.ast.CompilationUnit")).andReturn(SymbolReference.solved(compilationUnitDecl));
SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
replay(typeSolver, compilationUnitDecl);
Expand All @@ -138,6 +141,8 @@ public void resolveReferenceUsingQualifiedName() throws ParseException {
expect(compilationUnitDecl.getQualifiedName()).andReturn("com.github.javaparser.ast.CompilationUnit");
TypeSolver typeSolver = createMock(TypeSolver.class);
//expect(typeSolver.tryToSolveType("java.lang.com.github.javaparser.ast.CompilationUnit")).andReturn(SymbolReference.unsolved(ClassDeclaration.class));
expect(typeSolver.getRoot()).andReturn(typeSolver);
expect(typeSolver.solveType("java.lang.Object")).andReturn(new ReflectionClassDeclaration(Object.class, typeSolver));
expect(typeSolver.tryToSolveType("com.github.javaparser.ast.CompilationUnit")).andReturn(SymbolReference.solved(compilationUnitDecl));
SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
replay(typeSolver, compilationUnitDecl);
Expand All @@ -161,6 +166,8 @@ public void resolveReferenceToClassesInTheSamePackage() throws ParseException {
expect(compilationUnitDecl.getName()).andReturn("CompilationUnit");
expect(compilationUnitDecl.getQualifiedName()).andReturn("my.packagez.CompilationUnit");
TypeSolver typeSolver = createMock(TypeSolver.class);
expect(typeSolver.getRoot()).andReturn(typeSolver);
expect(typeSolver.solveType("java.lang.Object")).andReturn(new ReflectionClassDeclaration(Object.class, typeSolver));
expect(typeSolver.tryToSolveType("my.packagez.CompilationUnit")).andReturn(SymbolReference.solved(compilationUnitDecl));
SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
replay(typeSolver, compilationUnitDecl);
Expand All @@ -185,6 +192,8 @@ public void resolveReferenceToClassInJavaLang() throws ParseException {
expect(stringDecl.getQualifiedName()).andReturn("java.lang.String");
TypeSolver typeSolver = createMock(TypeSolver.class);
expect(typeSolver.tryToSolveType("me.tomassetti.symbolsolver.javaparser.String")).andReturn(SymbolReference.unsolved(ReferenceTypeDeclaration.class));
expect(typeSolver.getRoot()).andReturn(typeSolver);
expect(typeSolver.solveType("java.lang.Object")).andReturn(new ReflectionClassDeclaration(Object.class, typeSolver));
expect(typeSolver.tryToSolveType("java.lang.String")).andReturn(SymbolReference.solved(stringDecl));
SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
replay(typeSolver, stringDecl);
Expand All @@ -205,7 +214,7 @@ public void resolveReferenceToMethod() throws ParseException, IOException {
MethodCallExpr callToGetTypes = Navigator.findMethodCall(method, "getTypes");

String pathToJar = adaptPath("src/test/resources/javaparser-core-2.1.0.jar");
JarTypeSolver typeSolver = new JarTypeSolver(pathToJar);
TypeSolver typeSolver = new CombinedTypeSolver(new JarTypeSolver(pathToJar), new ReflectionTypeSolver(true));
SymbolSolver symbolSolver = new SymbolSolver(typeSolver);

MethodUsage ref = symbolSolver.solveMethod("getTypes", Collections.emptyList(), callToGetTypes);
Expand All @@ -224,7 +233,7 @@ public void resolveCascadeOfReferencesToMethod() throws ParseException, IOExcept
MethodCallExpr callToStream = Navigator.findMethodCall(method, "stream");

String pathToJar = adaptPath("src/test/resources/javaparser-core-2.1.0.jar");
JarTypeSolver typeSolver = new JarTypeSolver(pathToJar);
TypeSolver typeSolver = new CombinedTypeSolver(new JarTypeSolver(pathToJar), new ReflectionTypeSolver(true));
SymbolSolver symbolSolver = new SymbolSolver(typeSolver);
MethodUsage ref = symbolSolver.solveMethod("stream", Collections.emptyList(), callToStream);

Expand Down
Expand Up @@ -12,6 +12,8 @@
import com.github.javaparser.symbolsolver.resolution.typesolvers.MemoryTypeSolver;
import org.junit.Test;

import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

Expand All @@ -37,7 +39,12 @@ public AccessLevel accessLevel() {

@Override
public List<TypeParameterDeclaration> getTypeParameters() {
throw new UnsupportedOperationException();
return new LinkedList<>();
}

@Override
public Set<ReferenceTypeDeclaration> internalTypes() {
return new HashSet<ReferenceTypeDeclaration>();
}

@Override
Expand Down

0 comments on commit 5ab2f9f

Please sign in to comment.