Home | History | Annotate | Download | only in symbolsolver
      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