aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/Issue343.java
diff options
context:
space:
mode:
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.java60
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"));
+ }
+}