aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/NullTypeTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/NullTypeTest.java')
-rw-r--r--javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/NullTypeTest.java145
1 files changed, 145 insertions, 0 deletions
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/NullTypeTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/NullTypeTest.java
new file mode 100644
index 000000000..4df2460c6
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/model/typesystem/NullTypeTest.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright 2016 Federico Tomassetti
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.github.javaparser.symbolsolver.model.typesystem;
+
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedArrayType;
+import com.github.javaparser.resolution.types.ResolvedPrimitiveType;
+import com.github.javaparser.resolution.types.ResolvedTypeVariable;
+import com.github.javaparser.resolution.types.ResolvedVoidType;
+import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration;
+import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration;
+import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
+import com.google.common.collect.ImmutableList;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Collections;
+import java.util.List;
+
+import static org.junit.Assert.*;
+
+public class NullTypeTest {
+
+ private ResolvedArrayType arrayOfBooleans;
+ private ResolvedArrayType arrayOfListOfA;
+ private ReferenceTypeImpl OBJECT;
+ private ReferenceTypeImpl STRING;
+ private TypeSolver typeSolver;
+
+ @Before
+ public void setup() {
+ typeSolver = new ReflectionTypeSolver();
+ OBJECT = new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver);
+ STRING = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver);
+ arrayOfBooleans = new ResolvedArrayType(ResolvedPrimitiveType.BOOLEAN);
+ arrayOfListOfA = new ResolvedArrayType(new ReferenceTypeImpl(
+ new ReflectionInterfaceDeclaration(List.class, typeSolver),
+ ImmutableList.of(new ResolvedTypeVariable(ResolvedTypeParameterDeclaration.onType("A", "foo.Bar", Collections.emptyList()))), typeSolver));
+ }
+
+ @Test
+ public void testIsArray() {
+ assertEquals(false, NullType.INSTANCE.isArray());
+ }
+
+ @Test
+ public void testIsPrimitive() {
+ assertEquals(false, NullType.INSTANCE.isPrimitive());
+ }
+
+ @Test
+ public void testIsNull() {
+ assertEquals(true, NullType.INSTANCE.isNull());
+ }
+
+ @Test
+ public void testIsReference() {
+ assertEquals(true, NullType.INSTANCE.isReference());
+ }
+
+ @Test
+ public void testIsReferenceType() {
+ assertEquals(false, NullType.INSTANCE.isReferenceType());
+ }
+
+ @Test
+ public void testIsVoid() {
+ assertEquals(false, NullType.INSTANCE.isVoid());
+ }
+
+ @Test
+ public void testIsTypeVariable() {
+ assertEquals(false, NullType.INSTANCE.isTypeVariable());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsReferenceTypeUsage() {
+ NullType.INSTANCE.asReferenceType();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsTypeParameter() {
+ NullType.INSTANCE.asTypeParameter();
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAsArrayTypeUsage() {
+ NullType.INSTANCE.asArrayType();
+ }
+
+ @Test
+ public void testAsDescribe() {
+ assertEquals("null", NullType.INSTANCE.describe());
+ }
+
+ @Test
+ public void testIsAssignableBy() {
+ try {
+ assertEquals(false, NullType.INSTANCE.isAssignableBy(NullType.INSTANCE));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ try {
+ assertEquals(false, NullType.INSTANCE.isAssignableBy(OBJECT));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ try {
+ assertEquals(false, NullType.INSTANCE.isAssignableBy(STRING));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ try {
+ assertEquals(false, NullType.INSTANCE.isAssignableBy(ResolvedPrimitiveType.BOOLEAN));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ try {
+ assertEquals(false, NullType.INSTANCE.isAssignableBy(ResolvedVoidType.INSTANCE));
+ fail();
+ } catch (UnsupportedOperationException e) {
+
+ }
+ }
+
+}