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       * Test method for
34       * 'com.wikihouse.wildcats0201.jdbcchart.reflectionutil.ClassWrapper.ClassWrapper(String)'
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       * Test method for
49       * 'com.wikihouse.wildcats0201.jdbcchart.reflectionutil.ClassWrapper.ClassWrapper(Class)'
50       */
51      public void testClassWrapperClass() {
52          assertEquals(NormalTestClass.class, this.wrapper.get());
53      }
54  
55      /*
56       * Test method for
57       * 'com.wikihouse.wildcats0201.jdbcchart.reflectionutil.ClassWrapper.newInstance()'
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       * Test method for
94       * 'com.wikihouse.wildcats0201.jdbcchart.reflectionutil.ClassWrapper.getConstructor(Class)'
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      * Test method for
128      * 'com.wikihouse.wildcats0201.jdbcchart.reflectionutil.ClassWrapper.getConstructor(Class[])'
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      * Test method for
150      * 'com.wikihouse.wildcats0201.jdbcchart.reflectionutil.ClassWrapper.toString()'
151      */
152     public void testToString() {
153 
154     }
155 
156     /*
157      * Test method for
158      * 'com.wikihouse.wildcats0201.jdbcchart.reflectionutil.ClassWrapper.getMethods()'
159      */
160     public void testGetMethods() {
161 
162     }
163 
164     /*
165      * Test method for
166      * 'com.wikihouse.wildcats0201.jdbcchart.reflectionutil.ClassWrapper.getMethods(String)'
167      */
168     public void testGetMethodsString() {
169 
170     }
171 
172     /*
173      * Test method for
174      * 'com.wikihouse.wildcats0201.jdbcchart.reflectionutil.ClassWrapper.getMethodCount(String)'
175      */
176     public void testGetMethodCount() {
177 
178     }
179 
180     /*
181      * Test method for
182      * 'com.wikihouse.wildcats0201.jdbcchart.reflectionutil.ClassWrapper.getMethod(String,
183      * Class[])'
184      */
185     public void testGetMethod() {
186 
187     }
188 
189 }