1 package com.wikihouse.wildcats0201.jdbcchart.reflectionutil;
2
3 import java.lang.reflect.Constructor;
4 import java.util.ArrayList;
5 import java.util.List;
6
7 import junit.framework.TestCase;
8
9 import org.easymock.MockControl;
10 import org.easymock.classextension.MockClassControl;
11
12 import com.wikihouse.wildcats0201.jdbcchart.reflectionutil.exception.ClassNotFoundExceptionWrapper;
13 import com.wikihouse.wildcats0201.jdbcchart.reflectionutil.exception.InstantiationExceptionWrapper;
14 import com.wikihouse.wildcats0201.jdbcchart.reflectionutil.exception.NoSuchMethodExceptionWrapper;
15 import com.wikihouse.wildcats0201.jdbcchart.reflectionutil.exception.SecurityExceptionWrapper;
16
17 /***
18 * <B>ClassWrapperTest </B>.
19 *
20 * @author $Author: wildcats $
21 * @version $Revision: 2 $
22 */
23 public class ClassWrapperTest extends TestCase {
24
25 private ClassWrapper wrapper = null;
26
27 public void setUp() throws Exception {
28 super.setUp();
29 this.wrapper = new ClassWrapper(NormalTestClass.class);
30 }
31
32
33
34
35
36 public void testClassWrapperString() {
37 ClassWrapper wrapper = new ClassWrapper("java.lang.String");
38 Class clazz = wrapper.get();
39 assertEquals(String.class, clazz);
40 try {
41 new ClassWrapper("java.ang.String");
42 fail();
43 } catch (ClassNotFoundExceptionWrapper e) {
44 }
45 }
46
47
48
49
50
51 public void testClassWrapperClass() {
52 assertEquals(NormalTestClass.class, this.wrapper.get());
53 }
54
55
56
57
58
59 public void testNewInstance() {
60 Object obj = this.wrapper.newInstance();
61 assertNotNull(obj);
62 assertTrue(obj instanceof NormalTestClass);
63 ClassWrapper bad = new ClassWrapper(List.class);
64 try {
65 bad.newInstance();
66 fail();
67 } catch (InstantiationExceptionWrapper e) {
68 }
69
70 }
71
72 public static class NormalTestClass {
73 public NormalTestClass() {
74 }
75
76 public NormalTestClass(String string) {
77 }
78
79 public NormalTestClass(String string, int i) {
80 }
81
82 protected NormalTestClass(int i) {
83 }
84
85 NormalTestClass(int[] ints) {
86 }
87
88 private NormalTestClass(double d) {
89 }
90 }
91
92
93
94
95
96 public void testGetConstructorClass() {
97 ConstructorWrapper good = this.wrapper.getConstructor(String.class);
98 assertNotNull(good);
99 assertNotNull(good.get());
100 Constructor con1 = good.get();
101 assertEquals(1, con1.getParameterTypes().length);
102 assertEquals(String.class, con1.getParameterTypes()[0]);
103
104 try {
105 this.wrapper.getConstructor(ArrayList.class);
106 fail();
107 } catch (NoSuchMethodExceptionWrapper e) {
108 }
109
110 MockControl control = MockClassControl.createControl(
111 ClassWrapper.class, new Class[] { Class.class },
112 new Object[] { ClassWrapper.class });
113 ClassWrapper classMockWrapper = (ClassWrapper) control.getMock();
114 Class[] classes = new Class[] { String.class };
115 classMockWrapper.getConstructor(classes);
116 control.setThrowable(new SecurityExceptionWrapper(null));
117 control.replay();
118
119 try {
120 classMockWrapper.getConstructor(classes);
121 fail();
122 } catch (SecurityExceptionWrapper e) {
123 }
124 }
125
126
127
128
129
130 public void testGetConstructorClassArray() {
131 ConstructorWrapper good = this.wrapper.getConstructor(new Class[] {
132 String.class, int.class });
133 assertNotNull(good);
134 assertNotNull(good.get());
135 Constructor con1 = good.get();
136 assertEquals(2, con1.getParameterTypes().length);
137 assertEquals(String.class, con1.getParameterTypes()[0]);
138 assertEquals(int.class, con1.getParameterTypes()[1]);
139
140 try {
141 this.wrapper.getConstructor(new Class[] { List.class,
142 ArrayList.class });
143 fail();
144 } catch (NoSuchMethodExceptionWrapper e) {
145 }
146 }
147
148
149
150
151
152 public void testToString() {
153
154 }
155
156
157
158
159
160 public void testGetMethods() {
161
162 }
163
164
165
166
167
168 public void testGetMethodsString() {
169
170 }
171
172
173
174
175
176 public void testGetMethodCount() {
177
178 }
179
180
181
182
183
184
185 public void testGetMethod() {
186
187 }
188
189 }