1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 package org.apache.log4j.or;
26
27
28
29 import junit.framework.TestCase;
30 import junit.framework.TestSuite;
31 import junit.framework.Test;
32
33 import java.io.Serializable;
34
35
36
37
38
39
40 public class ORTestCase extends TestCase {
41
42 static UTObjectRenderer aor;
43 static UTObjectRenderer bor;
44 static UTObjectRenderer xor;
45 static UTObjectRenderer yor;
46
47 static UTObjectRenderer oor;
48 static UTObjectRenderer nor;
49 static UTObjectRenderer ior;
50 static UTObjectRenderer cor;
51 static UTObjectRenderer sor;
52
53
54
55 public ORTestCase(String name) {
56 super(name);
57 }
58
59
60 public
61 void setUp() {
62 aor = new UTObjectRenderer("A");
63 bor = new UTObjectRenderer("B");
64 xor = new UTObjectRenderer("X");
65 yor = new UTObjectRenderer("Y");
66
67 oor = new UTObjectRenderer("Object");
68 nor = new UTObjectRenderer("Number");
69 ior = new UTObjectRenderer("Integer");
70 cor = new UTObjectRenderer("Comparable");
71 sor = new UTObjectRenderer("Serializable");
72 }
73
74
75
76 public
77 void test1() {
78 RendererMap map = new RendererMap();
79 ObjectRenderer dr = map.getDefaultRenderer();
80 ObjectRenderer r = map.get(Integer.class);
81 assertEquals(r, dr);
82 }
83
84
85
86 public
87 void test2() {
88 RendererMap map = new RendererMap();
89 map.put(Integer.class, ior);
90 ObjectRenderer r = map.get(Integer.class);
91 assertEquals(r, ior);
92
93 }
94
95
96
97 public
98 void test3() {
99 RendererMap map = new RendererMap();
100 map.put(Number.class, ior);
101 ObjectRenderer r = map.get(Integer.class);
102 assertEquals(r, ior);
103 }
104
105
106
107 public
108 void test4() {
109 RendererMap map = new RendererMap();
110 map.put(Object.class, oor);
111 ObjectRenderer r = map.get(Integer.class);
112 assertEquals(r, oor);
113 }
114
115
116
117 public
118 void test5() {
119 RendererMap map = new RendererMap();
120
121 map.put(Object.class, oor);
122 map.put(Number.class, nor);
123 map.put(Integer.class, ior);
124
125 ObjectRenderer r = map.get(Integer.class);
126 assertEquals(r, ior);
127 }
128
129
130
131 public
132 void test6() {
133 RendererMap map = new RendererMap();
134
135 map.put(Object.class, oor);
136 map.put(Number.class, nor);
137
138 ObjectRenderer r = map.get(Integer.class);
139 assertEquals(r, nor);
140 }
141
142
143
144 public
145 void test7() throws Exception {
146 RendererMap map = new RendererMap();
147 Class comparable = null;
148 try {
149 comparable = Class.forName("java.lang.Comparable");
150 } catch(Exception ex) {
151
152 return;
153 }
154 map.put(comparable, cor);
155 ObjectRenderer r = map.get(Integer.class);
156 assertEquals(r, cor);
157 }
158
159
160
161
162 public
163 void test8() {
164 RendererMap map = new RendererMap();
165 map.put(Serializable.class, sor);
166 ObjectRenderer r = map.get(Integer.class);
167 assertEquals(r, sor);
168 }
169
170
171
172 public
173 void test9() {
174 RendererMap map = new RendererMap();
175 map.put(Y.class, yor);
176 ObjectRenderer r = map.get(B.class);
177 assertEquals(r, yor);
178 }
179
180
181
182 public
183 void test10() {
184 RendererMap map = new RendererMap();
185 map.put(X.class, xor);
186 ObjectRenderer r = map.get(B.class);
187 assertEquals(r, xor);
188 }
189
190
191
192
193 public
194 static
195 Test suite() {
196 TestSuite suite = new TestSuite();
197 suite.addTest(new ORTestCase("test1"));
198 suite.addTest(new ORTestCase("test2"));
199 suite.addTest(new ORTestCase("test3"));
200 suite.addTest(new ORTestCase("test4"));
201 suite.addTest(new ORTestCase("test5"));
202 suite.addTest(new ORTestCase("test6"));
203 suite.addTest(new ORTestCase("test7"));
204 suite.addTest(new ORTestCase("test8"));
205 suite.addTest(new ORTestCase("test9"));
206 suite.addTest(new ORTestCase("test10"));
207 return suite;
208 }
209
210
211
212 }
213
214 class UTObjectRenderer implements ObjectRenderer {
215
216 String name;
217
218 UTObjectRenderer(String name) {
219 this.name = name;
220 }
221
222 public
223 String doRender(Object o) {
224 return name;
225 }
226
227 public
228 String toString() {
229 return("UTObjectRenderer: "+name);
230 }
231 }
232
233
234 interface X {
235 }
236
237 interface Y extends X {
238 }
239
240
241 class A implements Y {
242 }
243
244 class B extends A {
245 }