+++ /dev/null
-/*--------------------------------------------------------------------------\r
- * Copyright 2009 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
-// ReflectionUtilTest.java\r
-// Since: 2009/05/20 19:40:48\r
-//\r
-// $URL$\r
-// $Author$\r
-//--------------------------------------\r
-package org.xerial.util.reflect;\r
-\r
-import static org.junit.Assert.assertEquals;\r
-import static org.junit.Assert.assertTrue;\r
-\r
-import java.lang.reflect.ParameterizedType;\r
-import java.lang.reflect.Type;\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-import org.junit.After;\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.xerial.util.Pair;\r
-\r
-public class ReflectionUtilTest\r
-{\r
-\r
- @Before\r
- public void setUp() throws Exception\r
- {}\r
-\r
- @After\r
- public void tearDown() throws Exception\r
- {}\r
-\r
- public static class Param\r
- {\r
- public Map<Long, String> id_name;\r
- public List<String> note;\r
- public Map<Integer, Map<Integer, String>> id_rid_name;\r
-\r
- public List<List<String>> nestedList;\r
- }\r
-\r
- @Test\r
- public void testCollectionType() throws Exception\r
- {\r
- Type elementType = ReflectionUtil.getGenericCollectionElementType(Param.class.getField("note"));\r
- assertEquals(String.class, elementType);\r
-\r
- Type elementType2 = ReflectionUtil.getGenericCollectionElementRawType(Param.class.getField("nestedList"));\r
-\r
- assertTrue(ParameterizedType.class.isInstance(elementType2));\r
-\r
- ParameterizedType pt = ParameterizedType.class.cast(elementType2);\r
- Type[] typeArgument = pt.getActualTypeArguments();\r
- assertEquals(1, typeArgument.length);\r
- assertEquals(String.class, typeArgument[0]);\r
-\r
- Type rawType = pt.getRawType();\r
- assertEquals(List.class, rawType);\r
-\r
- }\r
-\r
- @Test\r
- public void testMapType() throws Exception\r
- {\r
- Pair<Type, Type> key_value_type = ReflectionUtil.getGenericMapElementType(Param.class.getField("id_name"));\r
- assertEquals(Long.class, key_value_type.getFirst());\r
- assertEquals(String.class, key_value_type.getSecond());\r
-\r
- Pair<Type, Type> key_value_type2 = ReflectionUtil.getGenericMapElementType(Param.class.getField("id_rid_name"));\r
- assertEquals(Integer.class, key_value_type2.getFirst());\r
-\r
- // TODO nested map type\r
- // assertEquals(Map.class, key_value_type2.getSecond());\r
-\r
- }\r
-\r
- public static class RawTypes\r
- {\r
- public String p1;\r
- public List<String> p2;\r
- public List<List<String>> p3;\r
-\r
- }\r
-\r
- @Test\r
- public void testGetRawType() throws Exception\r
- {\r
- assertEquals(String.class, RawTypes.class.getField("p1").getType());\r
- assertEquals(List.class, RawTypes.class.getField("p2").getType());\r
- assertEquals(List.class, RawTypes.class.getField("p3").getType());\r
-\r
- }\r
-\r
-}\r