diff options
Diffstat (limited to 'javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue343.java')
-rw-r--r-- | javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue343.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue343.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue343.java new file mode 100644 index 000000000..3c34c6a59 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue343.java @@ -0,0 +1,60 @@ +package com.github.javaparser.symbolsolver; + +import com.github.javaparser.JavaParser; +import com.github.javaparser.ast.expr.*; +import com.github.javaparser.resolution.types.ResolvedType; +import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade; +import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; +import com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest; +import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class Issue343 extends AbstractResolutionTest{ + + private TypeSolver typeResolver; + private JavaParserFacade javaParserFacade; + + private ResolvedType getExpressionType(TypeSolver typeSolver, Expression expression) { + return JavaParserFacade.get(typeSolver).getType(expression); + } + + @Before + public void setup() { + typeResolver = new ReflectionTypeSolver(); + javaParserFacade = JavaParserFacade.get(typeResolver); + } + + @Test + public void resolveStringLiteralOutsideAST() { + assertEquals(javaParserFacade.classToResolvedType(String.class), getExpressionType(typeResolver, new StringLiteralExpr(""))); + } + + @Test + public void resolveIntegerLiteralOutsideAST() { + assertEquals(javaParserFacade.classToResolvedType(int.class), getExpressionType(typeResolver, new IntegerLiteralExpr(2))); + } + + @Test(expected = IllegalStateException.class) + public void toResolveDoubleWeNeedTheAST() { + getExpressionType(typeResolver, JavaParser.parseExpression("new Double[]{2.0d, 3.0d}[1]")); + } + + + @Test(expected = IllegalStateException.class) + public void toResolveFloatWeNeedTheAST() { + getExpressionType(typeResolver, JavaParser.parseExpression("new Float[]{2.0d, 3.0d}")); + } + + @Test + public void resolveMethodCallOnStringLiteralOutsideAST() { + assertEquals(javaParserFacade.classToResolvedType(int.class), getExpressionType(typeResolver, new MethodCallExpr(new StringLiteralExpr("hello"), "length"))); + } + + @Test(expected = IllegalStateException.class) + public void resolveLocaleOutsideAST() { + getExpressionType(typeResolver, new FieldAccessExpr(new NameExpr("Locale"), "US")); + } +} |