+++ /dev/null
-/*--------------------------------------------------------------------------\r
- * Copyright 2008 Taro L. Saito\r
- *\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- *--------------------------------------------------------------------------*/\r
-//--------------------------------------\r
-// XerialJ\r
-//\r
-// TypeInformationTest.java\r
-// Since: Oct 27, 2008 3:50:25 PM\r
-//\r
-// $URL: http://www.xerial.org/svn/project/XerialJ/trunk/xerial-core/src/test/java/org/xerial/util/bean/TypeInfoTest.java $\r
-// $Author: leo $\r
-//--------------------------------------\r
-package org.xerial.util.bean;\r
-\r
-import static org.junit.Assert.*;\r
-\r
-import java.io.File;\r
-import java.util.ArrayList;\r
-import java.util.Collection;\r
-import java.util.Date;\r
-import java.util.HashMap;\r
-import java.util.HashSet;\r
-import java.util.LinkedList;\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.Queue;\r
-import java.util.Set;\r
-import java.util.TreeMap;\r
-import java.util.TreeSet;\r
-\r
-import org.junit.After;\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.w3c.dom.Element;\r
-import org.w3c.dom.Node;\r
-import org.w3c.dom.Text;\r
-import org.xerial.core.XerialException;\r
-import org.xerial.util.ArrayDeque;\r
-import org.xerial.util.Pair;\r
-import org.xerial.util.Triplet;\r
-import org.xerial.util.bean.sample.Book;\r
-import org.xerial.util.log.Logger;\r
-\r
-public class TypeInfoTest\r
-{\r
- private static Logger _logger = Logger.getLogger(TypeInfoTest.class);\r
-\r
- @Before\r
- public void setUp() throws Exception {}\r
-\r
- @After\r
- public void tearDown() throws Exception {}\r
-\r
- enum SampleEnum {\r
- A, B, C\r
- }\r
-\r
- @Test\r
- public void testIsBasicType() {\r
- assertTrue(TypeInfo.isBasicType(Integer.class));\r
- assertTrue(TypeInfo.isBasicType(int.class));\r
- assertTrue(TypeInfo.isBasicType(Double.class));\r
- assertTrue(TypeInfo.isBasicType(double.class));\r
- assertTrue(TypeInfo.isBasicType(Float.class));\r
- assertTrue(TypeInfo.isBasicType(float.class));\r
- assertTrue(TypeInfo.isBasicType(Boolean.class));\r
- assertTrue(TypeInfo.isBasicType(boolean.class));\r
- assertTrue(TypeInfo.isBasicType(Character.class));\r
- assertTrue(TypeInfo.isBasicType(char.class));\r
- assertTrue(TypeInfo.isBasicType(String.class));\r
- assertTrue(TypeInfo.isBasicType(Date.class));\r
- assertTrue(TypeInfo.isBasicType(File.class));\r
-\r
- assertTrue(TypeInfo.isBasicType(Integer[].class));\r
- assertTrue(TypeInfo.isBasicType(int[].class));\r
- assertTrue(TypeInfo.isBasicType(Double[].class));\r
- assertTrue(TypeInfo.isBasicType(double[].class));\r
- assertTrue(TypeInfo.isBasicType(Float[].class));\r
- assertTrue(TypeInfo.isBasicType(float[].class));\r
- assertTrue(TypeInfo.isBasicType(Boolean[].class));\r
- assertTrue(TypeInfo.isBasicType(boolean[].class));\r
- assertTrue(TypeInfo.isBasicType(Character[].class));\r
- assertTrue(TypeInfo.isBasicType(char[].class));\r
- assertTrue(TypeInfo.isBasicType(String[].class));\r
-\r
- assertTrue(TypeInfo.isBasicType(Date.class));\r
- assertTrue(TypeInfo.isBasicType(SampleEnum.class));\r
-\r
- assertFalse(TypeInfo.isBasicType(Collection.class));\r
-\r
- }\r
-\r
- @Test\r
- public void testIsCollection() {\r
- assertTrue(TypeInfo.isCollection(Collection.class));\r
- assertTrue(TypeInfo.isCollection(List.class));\r
- assertTrue(TypeInfo.isCollection(Set.class));\r
- assertTrue(TypeInfo.isCollection(ArrayList.class));\r
- assertTrue(TypeInfo.isCollection(LinkedList.class));\r
- assertTrue(TypeInfo.isCollection(HashSet.class));\r
- assertTrue(TypeInfo.isCollection(TreeSet.class));\r
- assertTrue(TypeInfo.isCollection(ArrayDeque.class));\r
-\r
- }\r
-\r
- @Test\r
- public void testIsSet() {\r
- assertTrue(TypeInfo.isSet(Set.class));\r
- assertTrue(TypeInfo.isSet(HashSet.class));\r
- assertTrue(TypeInfo.isSet(TreeSet.class));\r
-\r
- assertFalse(TypeInfo.isSet(Map.class));\r
- assertFalse(TypeInfo.isSet(String.class));\r
- }\r
-\r
- @Test\r
- public void testIsSortedSet() {\r
- assertFalse(TypeInfo.isSortedSet(Set.class));\r
- assertFalse(TypeInfo.isSortedSet(HashSet.class));\r
- assertTrue(TypeInfo.isSortedSet(TreeSet.class));\r
-\r
- assertFalse(TypeInfo.isSortedSet(Map.class));\r
- assertFalse(TypeInfo.isSortedSet(LinkedList.class));\r
-\r
- }\r
-\r
- @Test\r
- public void testIsSortedMap() {\r
- assertFalse(TypeInfo.isSortedMap(Map.class));\r
- assertFalse(TypeInfo.isSortedMap(HashMap.class));\r
- assertTrue(TypeInfo.isSortedMap(TreeMap.class));\r
- }\r
-\r
- @Test\r
- public void testIsMap() {\r
- assertTrue(TypeInfo.isMap(Map.class));\r
- assertTrue(TypeInfo.isMap(HashMap.class));\r
- assertTrue(TypeInfo.isMap(TreeMap.class));\r
- assertFalse(TypeInfo.isMap(Collection.class));\r
-\r
- }\r
-\r
- @Test\r
- public void testIsPair() {\r
- assertTrue(TypeInfo.isPair(Pair.class));\r
- assertTrue(!TypeInfo.isPair(Triplet.class));\r
- }\r
-\r
- @Test\r
- public void testIsTriplet() {\r
- assertTrue(!TypeInfo.isTriplet(Pair.class));\r
- assertTrue(TypeInfo.isTriplet(Triplet.class));\r
- }\r
-\r
- @Test\r
- public void testIsQueue() throws Exception {\r
- assertTrue(TypeInfo.isQueue(Queue.class));\r
- assertTrue(TypeInfo.isQueue(ArrayDeque.class));\r
- assertFalse(TypeInfo.isQueue(ArrayList.class));\r
- }\r
-\r
- @Test\r
- public void testIsString() {\r
- assertTrue(TypeInfo.isString(String.class));\r
- assertFalse(TypeInfo.isString(char.class));\r
- assertFalse(TypeInfo.isString(List.class));\r
-\r
- assertFalse(TypeInfo.isString(String[].class));\r
-\r
- }\r
-\r
- @Test\r
- public void testIsBoolean() {\r
- assertTrue(TypeInfo.isBoolean(Boolean.class));\r
- assertTrue(TypeInfo.isBoolean(boolean.class));\r
- assertFalse(TypeInfo.isBoolean(Boolean[].class));\r
- assertFalse(TypeInfo.isBoolean(boolean[].class));\r
- }\r
-\r
- @Test\r
- public void testIsDOMElement() {\r
- assertTrue(TypeInfo.isDOMElement(Element.class));\r
- assertFalse(TypeInfo.isDOMElement(Node.class));\r
- assertFalse(TypeInfo.isDOMElement(Text.class));\r
-\r
- }\r
-\r
- @Test\r
- public void testHasPublicConstructor() {\r
- assertTrue(TypeInfo.hasPublicDefaultConstructor(Book.class));\r
- assertTrue(TypeInfo.hasPublicDefaultConstructor(TypeInfoTest.class));\r
- assertFalse(TypeInfo.hasPublicDefaultConstructor(TypeInfo.class));\r
- }\r
-\r
- @Test\r
- public void testCanInstantiate() {\r
- assertTrue(TypeInfo.canInstantiate(Book.class));\r
- assertTrue(TypeInfo.canInstantiate(TypeInfoTest.class));\r
- assertFalse(TypeInfo.canInstantiate(TypeInfo.class));\r
-\r
- assertTrue(TypeInfo.canInstantiate(List.class));\r
- assertTrue(TypeInfo.canInstantiate(Set.class));\r
- assertTrue(TypeInfo.canInstantiate(Map.class));\r
- assertTrue(TypeInfo.canInstantiate(Queue.class));\r
- }\r
-\r
- @Test\r
- public void testCreateInstance() throws XerialException {\r
- HashMap< ? , ? > map = (HashMap< ? , ? >) TypeInfo.createInstance(HashMap.class);\r
- String str = (String) TypeInfo.createInstance(String.class);\r
- }\r
-\r
- public static class ImmutableObj\r
- {\r
- public final int id;\r
- public final String data;\r
-\r
- public ImmutableObj(int id, String data) {\r
- this.id = id;\r
- this.data = data;\r
- }\r
-\r
- @Override\r
- public String toString() {\r
- return String.format("id:%s, data:%s", id, data);\r
- }\r
- }\r
-\r
- @Test\r
- public void createInstance() throws Exception {\r
- ImmutableObj obj = TypeInfo.createInstance(ImmutableObj.class);\r
- assertNotNull(obj);\r
- }\r
-\r
-}\r