1 package com.github.javaparser.symbolsolver; 2 3 import com.github.javaparser.ParseException; 4 import com.github.javaparser.ast.CompilationUnit; 5 import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; 6 import com.github.javaparser.ast.body.MethodDeclaration; 7 import com.github.javaparser.ast.expr.ObjectCreationExpr; 8 import com.github.javaparser.ast.stmt.ExpressionStmt; 9 import com.github.javaparser.symbolsolver.javaparser.Navigator; 10 import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade; 11 import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; 12 import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest; 13 import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver; 14 import org.junit.Assert; 15 import org.junit.Test; 16 import org.junit.runner.RunWith; 17 import org.junit.runners.Parameterized; 18 19 import java.util.Arrays; 20 import java.util.Collection; 21 22 @RunWith(Parameterized.class) 23 public class Issue235 extends AbstractResolutionTest{ 24 private final String method; 25 26 public Issue235(String method) { 27 this.method = method; 28 } 29 30 @Parameterized.Parameters(name = "{0}") 31 public static Collection<String> data() throws Exception { 32 return Arrays.asList( 33 "new_Bar_Baz_direct", 34 "new_Bar_Baz", 35 "new_Bar", 36 "new_Foo_Bar" 37 ); 38 } 39 40 @Test 41 public void issue235() { 42 CompilationUnit cu = parseSample("Issue235"); 43 ClassOrInterfaceDeclaration cls = Navigator.demandClassOrInterface(cu, "Foo"); 44 TypeSolver typeSolver = new ReflectionTypeSolver(); 45 JavaParserFacade javaParserFacade = JavaParserFacade.get(typeSolver); 46 MethodDeclaration m = Navigator.demandMethod(cls, this.method); 47 ExpressionStmt stmt = (ExpressionStmt) m.getBody().get().getStatements().get(0); 48 ObjectCreationExpr expression = (ObjectCreationExpr) stmt.getExpression(); 49 Assert.assertNotNull(javaParserFacade.convertToUsage(expression.getType())); 50 } 51 } 52