| 1 32 package net.sf.retrotranslator.runtime.java.lang.reflect; 33 34 import java.lang.reflect.*; 35 import net.sf.retrotranslator.tests.BaseTestCase; 36 37 40 public class _FieldNonGenericTestCase extends BaseTestCase { 41 42 class MemberOuterNonGeneric { 43 class MemberInnerGeneric<T> { 44 } 45 } 46 47 class MemberOuterGeneric<T> { 48 class MemberInnerNonGeneric { 49 } 50 } 51 52 public void testLocalNonGeneric() { 53 class LocalNonGeneric { 54 } 55 class Test { 56 public LocalNonGeneric f; 59 } 60 Type type = getType(Test.class); 61 assertEquals(LocalNonGeneric.class, type); 62 } 63 64 public void testMemberNonGeneric() { 65 class Test { 66 public MemberOuterNonGeneric f; 69 } 70 Type type = getType(Test.class); 71 assertEquals(MemberOuterNonGeneric.class, type); 72 } 73 74 public void testLocalGeneric() { 75 class LocalGeneric<T> { 76 } 77 class Test { 78 public LocalGeneric<String > f; 81 } 82 ParameterizedType type = getParameterizedType(Test.class); 83 assertEquals(LocalGeneric.class, type.getRawType()); 84 assertEquals(String .class, singleton(type.getActualTypeArguments())); 85 assertNull(type.getOwnerType()); 86 } 87 88 public void testMemberGeneric() { 89 class Test { 90 public MemberOuterGeneric<String > f; 93 } 94 ParameterizedType type = getParameterizedType(Test.class); 95 assertEquals(MemberOuterGeneric.class, type.getRawType()); 96 assertEquals(String .class, singleton(type.getActualTypeArguments())); 97 assertEquals(this.getClass(), type.getOwnerType()); 98 } 99 100 public void testLocalInnerGeneric() { 101 class LocalNonGeneric { 102 class LocalInnerGeneric<T> { 103 } 104 } 105 class Test { 106 public LocalNonGeneric.LocalInnerGeneric<Integer > f; 109 } 110 ParameterizedType innerType = getParameterizedType(Test.class); 111 assertEquals(LocalNonGeneric.LocalInnerGeneric.class, innerType.getRawType()); 112 assertEquals(Integer .class, singleton(innerType.getActualTypeArguments())); 113 assertEquals(LocalNonGeneric.class, innerType.getOwnerType()); 114 } 115 116 public void testMemberInnerGeneric() { 117 class Test { 118 public MemberOuterNonGeneric.MemberInnerGeneric<Integer > f; 121 } 122 ParameterizedType innerType = getParameterizedType(Test.class); 123 assertEquals(MemberOuterNonGeneric.MemberInnerGeneric.class, innerType.getRawType()); 124 assertEquals(Integer .class, singleton(innerType.getActualTypeArguments())); 125 assertEquals(MemberOuterNonGeneric.class, innerType.getOwnerType()); 126 } 127 128 public void testLocalOuterGeneric() { 129 class LocalGeneric<T> { 130 class LocalInnerGeneric { 131 } 132 } 133 class Test { 134 public LocalGeneric<String >.LocalInnerGeneric f; 137 } 138 ParameterizedType innerType = getParameterizedType(Test.class); 139 assertEquals(LocalGeneric.LocalInnerGeneric.class, innerType.getRawType()); 140 assertEquals(0, innerType.getActualTypeArguments().length); 141 ParameterizedType outerType = (ParameterizedType) innerType.getOwnerType(); 142 assertEquals(LocalGeneric.class, outerType.getRawType()); 143 assertEquals(String .class, singleton(outerType.getActualTypeArguments())); 144 assertNull(outerType.getOwnerType()); 145 } 146 147 public void testMemberOuterGeneric() { 148 class Test { 149 public MemberOuterGeneric<String >.MemberInnerNonGeneric f; 152 } 153 ParameterizedType innerType = getParameterizedType(Test.class); 154 assertEquals(MemberOuterGeneric.MemberInnerNonGeneric.class, innerType.getRawType()); 155 assertEquals(0, innerType.getActualTypeArguments().length); 156 ParameterizedType outerType = (ParameterizedType) innerType.getOwnerType(); 157 assertEquals(MemberOuterGeneric.class, outerType.getRawType()); 158 assertEquals(String .class, singleton(outerType.getActualTypeArguments())); 159 assertEquals(this.getClass(), outerType.getOwnerType()); 160 } 161 162 } 163 | Popular Tags |