2009/05/20 - Apache Shale has been retired.
For more information, please explore the Attic.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shale.tiger.view.faces;
19
20 import java.io.File;
21 import java.util.Map;
22 import javax.faces.component.UIComponent;
23 import javax.faces.convert.Converter;
24 import javax.faces.event.PhaseListener;
25 import javax.faces.render.Renderer;
26 import javax.faces.validator.Validator;
27 import javax.servlet.ServletContextEvent;
28 import junit.framework.Test;
29 import junit.framework.TestSuite;
30 import org.apache.shale.test.base.AbstractJsfTestCase;
31 import org.apache.shale.tiger.config.FacesConfigConfig;
32 import org.apache.shale.tiger.managed.config.ManagedBeanConfig;
33 import org.apache.shale.tiger.managed.config.ManagedPropertyConfig;
34 import org.apache.shale.tiger.register.faces.PhaseListenerAdapter;
35 import org.apache.shale.view.faces.LifecycleListener;
36
37 /***
38 * <p>Test case for <code>org.apache.shale.tiger.view.faces.LifecycleListener</code>.</p>
39 */
40 public class LifecycleListener2TestCase extends AbstractJsfTestCase {
41
42
43
44
45
46
47 public LifecycleListener2TestCase(String name) {
48 super(name);
49 }
50
51
52
53
54
55
56 protected void setUp() throws Exception {
57
58 super.setUp();
59
60
61 listener = new LifecycleListener();
62 servletContext.addAttributeListener(listener);
63 session.addAttributeListener(listener);
64 request.addAttributeListener(listener);
65
66
67 servletContext.addInitParameter("javax.faces.CONFIG_FILES",
68 "/WEB-INF/test-config-0.xml," +
69 "/WEB-INF/test-config-1.xml," +
70 "/WEB-INF/test-config-2.xml");
71 File root = new File(System.getProperty("basedir") + "/target/test-webapp");
72 servletContext.setDocumentRoot(root);
73
74 }
75
76
77
78 public static Test suite() {
79
80 return (new TestSuite(LifecycleListener2TestCase.class));
81
82 }
83
84
85
86 protected void tearDown() throws Exception {
87
88
89 lifecycle = null;
90
91 super.tearDown();
92
93 }
94
95
96
97
98
99 private LifecycleListener listener = null;
100
101
102
103
104
105
106 public void testApplicationBean1() {
107
108 ApplicationBean1 bean = new ApplicationBean1();
109 assertEquals("", bean.log());
110 servletContext.setAttribute("bean", bean);
111 assertEquals("init/", bean.log());
112 servletContext.setAttribute("bean", bean);
113 assertEquals("init/destroy/init/", bean.log());
114 servletContext.removeAttribute("bean");
115 assertEquals("init/destroy/init/destroy/", bean.log());
116
117 }
118
119
120
121 public void testApplicationBean2() {
122
123 ApplicationBean2 bean = new ApplicationBean2();
124 assertEquals("", bean.log());
125 servletContext.setAttribute("bean", bean);
126 assertEquals("init/", bean.log());
127 servletContext.setAttribute("bean", bean);
128 assertEquals("init/destroy/init/", bean.log());
129 servletContext.removeAttribute("bean");
130 assertEquals("init/destroy/init/destroy/", bean.log());
131
132 }
133
134
135
136 public void testBasic() {
137
138
139 ServletContextEvent event = new ServletContextEvent(servletContext);
140
141
142 listener.contextInitialized(event);
143
144
145 listener.contextDestroyed(event);
146
147 }
148
149
150
151 public void testManagedBeans() {
152
153
154 ServletContextEvent event = new ServletContextEvent(servletContext);
155
156
157 listener.contextInitialized(event);
158
159
160 FacesConfigConfig fcConfig =
161 (FacesConfigConfig) servletContext.getAttribute(LifecycleListener2.FACES_CONFIG_CONFIG);
162 assertNotNull(config);
163 Map<String,ManagedBeanConfig> mbMap = fcConfig.getManagedBeans();
164 assertNotNull(mbMap);
165 assertEquals(9, mbMap.size());
166
167 ManagedPropertyConfig mpConfig = null;
168
169
170 ManagedBeanConfig bean0 = fcConfig.getManagedBean("bean0");
171 assertNotNull(bean0);
172 assertTrue(bean0 == mbMap.get("bean0"));
173 assertEquals("bean0", bean0.getName());
174 assertEquals("org.apache.shale.tiger.config.TestBean", bean0.getType());
175 assertEquals("request", bean0.getScope());
176 assertNull(bean0.getListEntries());
177 assertNull(bean0.getMapEntries());
178 Map<String,ManagedPropertyConfig> bean0Map = bean0.getProperties();
179 assertNotNull(bean0Map);
180 assertEquals(1, bean0Map.size());
181
182 mpConfig = bean0.getProperty("stringProperty");
183 assertNotNull(mpConfig);
184 assertTrue(mpConfig == bean0Map.get("stringProperty"));
185 assertEquals("stringProperty", mpConfig.getName());
186 assertEquals("java.lang.String", mpConfig.getType());
187 assertNull(mpConfig.getValue());
188 assertTrue(mpConfig.isNullValue());
189
190
191 ManagedBeanConfig bean1 = fcConfig.getManagedBean("bean1");
192 assertNotNull(bean1);
193 assertTrue(bean1 == mbMap.get("bean1"));
194 assertEquals("bean1", bean1.getName());
195 assertEquals("org.apache.shale.tiger.config.TestBean", bean1.getType());
196 assertEquals("session", bean1.getScope());
197 assertNull(bean1.getListEntries());
198 assertNull(bean1.getMapEntries());
199 Map<String,ManagedPropertyConfig> bean1Map = bean1.getProperties();
200 assertNotNull(bean1Map);
201 assertEquals(3, bean1Map.size());
202
203 mpConfig = bean1.getProperty("byteProperty");
204 assertNotNull(mpConfig);
205 assertTrue(mpConfig == bean1Map.get("byteProperty"));
206 assertEquals("byteProperty", mpConfig.getName());
207 assertEquals("byte", mpConfig.getType());
208 assertEquals("11", mpConfig.getValue());
209 assertTrue(!mpConfig.isNullValue());
210
211 mpConfig = bean1.getProperty("doubleProperty");
212 assertNotNull(mpConfig);
213 assertTrue(mpConfig == bean1Map.get("doubleProperty"));
214 assertEquals("doubleProperty", mpConfig.getName());
215 assertEquals("double", mpConfig.getType());
216 assertEquals("222.0", mpConfig.getValue());
217 assertTrue(!mpConfig.isNullValue());
218
219 mpConfig = bean1.getProperty("intProperty");
220 assertNotNull(mpConfig);
221 assertTrue(mpConfig == bean1Map.get("intProperty"));
222 assertEquals("intProperty", mpConfig.getName());
223 assertEquals("int", mpConfig.getType());
224 assertEquals("44", mpConfig.getValue());
225 assertTrue(!mpConfig.isNullValue());
226
227
228 ManagedBeanConfig bean2 = fcConfig.getManagedBean("bean2");
229 assertNotNull(bean2);
230 assertTrue(bean2 == mbMap.get("bean2"));
231 assertEquals("bean2", bean2.getName());
232 assertEquals("org.apache.shale.tiger.config.TestBean", bean2.getType());
233 assertEquals("request", bean2.getScope());
234 assertNull(bean2.getListEntries());
235 assertNull(bean2.getMapEntries());
236 Map<String,ManagedPropertyConfig> bean2Map = bean2.getProperties();
237 assertNotNull(bean2Map);
238 assertEquals(8, bean2Map.size());
239
240 mpConfig = bean2.getProperty("byteProperty");
241 assertNotNull(mpConfig);
242 assertTrue(mpConfig == bean2Map.get("byteProperty"));
243 assertEquals("byteProperty", mpConfig.getName());
244 assertEquals("byte", mpConfig.getType());
245 assertEquals("-1", mpConfig.getValue());
246 assertTrue(!mpConfig.isNullValue());
247
248 mpConfig = bean2.getProperty("charProperty");
249 assertNotNull(mpConfig);
250 assertTrue(mpConfig == bean2Map.get("charProperty"));
251 assertEquals("charProperty", mpConfig.getName());
252 assertEquals("char", mpConfig.getType());
253 assertEquals("z", mpConfig.getValue());
254 assertTrue(!mpConfig.isNullValue());
255
256 mpConfig = bean2.getProperty("doubleProperty");
257 assertNotNull(mpConfig);
258 assertTrue(mpConfig == bean2Map.get("doubleProperty"));
259 assertEquals("doubleProperty", mpConfig.getName());
260 assertEquals("double", mpConfig.getType());
261 assertEquals("-2.0", mpConfig.getValue());
262 assertTrue(!mpConfig.isNullValue());
263
264 mpConfig = bean2.getProperty("floatProperty");
265 assertNotNull(mpConfig);
266 assertTrue(mpConfig == bean2Map.get("floatProperty"));
267 assertEquals("floatProperty", mpConfig.getName());
268 assertEquals("float", mpConfig.getType());
269 assertEquals("-3.0", mpConfig.getValue());
270 assertTrue(!mpConfig.isNullValue());
271
272 mpConfig = bean2.getProperty("intProperty");
273 assertNotNull(mpConfig);
274 assertTrue(mpConfig == bean2Map.get("intProperty"));
275 assertEquals("intProperty", mpConfig.getName());
276 assertEquals("int", mpConfig.getType());
277 assertEquals("-4", mpConfig.getValue());
278 assertTrue(!mpConfig.isNullValue());
279
280 mpConfig = bean2.getProperty("longProperty");
281 assertNotNull(mpConfig);
282 assertTrue(mpConfig == bean2Map.get("longProperty"));
283 assertEquals("longProperty", mpConfig.getName());
284 assertEquals("long", mpConfig.getType());
285 assertEquals("-5", mpConfig.getValue());
286 assertTrue(!mpConfig.isNullValue());
287
288 mpConfig = bean2.getProperty("shortProperty");
289 assertNotNull(mpConfig);
290 assertTrue(mpConfig == bean2Map.get("shortProperty"));
291 assertEquals("shortProperty", mpConfig.getName());
292 assertEquals("short", mpConfig.getType());
293 assertEquals("-6", mpConfig.getValue());
294 assertTrue(!mpConfig.isNullValue());
295
296 mpConfig = bean2.getProperty("stringProperty");
297 assertNotNull(mpConfig);
298 assertTrue(mpConfig == bean2Map.get("stringProperty"));
299 assertEquals("stringProperty", mpConfig.getName());
300 assertEquals("java.lang.String", mpConfig.getType());
301 assertEquals("Override The Annotation", mpConfig.getValue());
302 assertTrue(!mpConfig.isNullValue());
303
304
305 ManagedBeanConfig bean2a = fcConfig.getManagedBean("bean2a");
306 assertNotNull(bean2a);
307 assertTrue(bean2a == mbMap.get("bean2a"));
308 assertEquals("bean2a", bean2a.getName());
309 assertEquals("org.apache.shale.tiger.config.TestBean2", bean2a.getType());
310 assertEquals("application", bean2a.getScope());
311 assertNull(bean2a.getListEntries());
312 assertNull(bean2a.getMapEntries());
313 Map<String,ManagedPropertyConfig> bean2aMap = bean2a.getProperties();
314 assertNotNull(bean2aMap);
315 assertEquals(9, bean2aMap.size());
316
317 mpConfig = bean2a.getProperty("byteProperty");
318 assertNotNull(mpConfig);
319 assertTrue(mpConfig == bean2aMap.get("byteProperty"));
320 assertEquals("byteProperty", mpConfig.getName());
321 assertEquals("byte", mpConfig.getType());
322 assertEquals("-1", mpConfig.getValue());
323 assertTrue(!mpConfig.isNullValue());
324
325 mpConfig = bean2a.getProperty("charProperty");
326 assertNotNull(mpConfig);
327 assertTrue(mpConfig == bean2aMap.get("charProperty"));
328 assertEquals("charProperty", mpConfig.getName());
329 assertEquals("char", mpConfig.getType());
330 assertEquals("z", mpConfig.getValue());
331 assertTrue(!mpConfig.isNullValue());
332
333 mpConfig = bean2a.getProperty("doubleProperty");
334 assertNotNull(mpConfig);
335 assertTrue(mpConfig == bean2aMap.get("doubleProperty"));
336 assertEquals("doubleProperty", mpConfig.getName());
337 assertEquals("double", mpConfig.getType());
338 assertEquals("-2.0", mpConfig.getValue());
339 assertTrue(!mpConfig.isNullValue());
340
341 mpConfig = bean2a.getProperty("floatProperty");
342 assertNotNull(mpConfig);
343 assertTrue(mpConfig == bean2aMap.get("floatProperty"));
344 assertEquals("floatProperty", mpConfig.getName());
345 assertEquals("float", mpConfig.getType());
346 assertEquals("-3.0", mpConfig.getValue());
347 assertTrue(!mpConfig.isNullValue());
348
349 mpConfig = bean2a.getProperty("intProperty");
350 assertNotNull(mpConfig);
351 assertTrue(mpConfig == bean2aMap.get("intProperty"));
352 assertEquals("intProperty", mpConfig.getName());
353 assertEquals("int", mpConfig.getType());
354 assertEquals("-4", mpConfig.getValue());
355 assertTrue(!mpConfig.isNullValue());
356
357 mpConfig = bean2a.getProperty("longProperty");
358 assertNotNull(mpConfig);
359 assertTrue(mpConfig == bean2aMap.get("longProperty"));
360 assertEquals("longProperty", mpConfig.getName());
361 assertEquals("long", mpConfig.getType());
362 assertEquals("-5", mpConfig.getValue());
363 assertTrue(!mpConfig.isNullValue());
364
365 mpConfig = bean2a.getProperty("shortProperty");
366 assertNotNull(mpConfig);
367 assertTrue(mpConfig == bean2aMap.get("shortProperty"));
368 assertEquals("shortProperty", mpConfig.getName());
369 assertEquals("short", mpConfig.getType());
370 assertEquals("-6", mpConfig.getValue());
371 assertTrue(!mpConfig.isNullValue());
372
373 mpConfig = bean2a.getProperty("stringProperty");
374 assertNotNull(mpConfig);
375 assertTrue(mpConfig == bean2aMap.get("stringProperty"));
376 assertEquals("stringProperty", mpConfig.getName());
377 assertEquals("java.lang.String", mpConfig.getType());
378 assertEquals("Annotated", mpConfig.getValue());
379 assertTrue(!mpConfig.isNullValue());
380
381 mpConfig = bean2a.getProperty("xtraProperty");
382 assertNotNull(mpConfig);
383 assertTrue(mpConfig == bean2aMap.get("xtraProperty"));
384 assertEquals("xtraProperty", mpConfig.getName());
385 assertEquals("java.lang.String", mpConfig.getType());
386 assertEquals("Xtra Override", mpConfig.getValue());
387 assertTrue(!mpConfig.isNullValue());
388
389
390 ManagedBeanConfig bean3 = fcConfig.getManagedBean("bean3");
391 assertNotNull(bean3);
392 assertTrue(bean3 == mbMap.get("bean3"));
393 assertEquals("bean3", bean3.getName());
394 assertEquals("org.apache.shale.tiger.config.TestBean3", bean3.getType());
395 assertEquals("session", bean3.getScope());
396 assertNull(bean3.getListEntries());
397 assertNull(bean3.getMapEntries());
398 Map<String,ManagedPropertyConfig> bean3Map = bean3.getProperties();
399 assertNotNull(bean3Map);
400 assertEquals(8, bean3Map.size());
401
402 mpConfig = bean3.getProperty("byteProperty");
403 assertNotNull(mpConfig);
404 assertTrue(mpConfig == bean3Map.get("byteProperty"));
405 assertEquals("byteProperty", mpConfig.getName());
406 assertEquals("byte", mpConfig.getType());
407 assertEquals("-1", mpConfig.getValue());
408 assertTrue(!mpConfig.isNullValue());
409
410 mpConfig = bean3.getProperty("charProperty");
411 assertNotNull(mpConfig);
412 assertTrue(mpConfig == bean3Map.get("charProperty"));
413 assertEquals("charProperty", mpConfig.getName());
414 assertEquals("char", mpConfig.getType());
415 assertEquals("z", mpConfig.getValue());
416 assertTrue(!mpConfig.isNullValue());
417
418 mpConfig = bean3.getProperty("doubleProperty");
419 assertNotNull(mpConfig);
420 assertTrue(mpConfig == bean3Map.get("doubleProperty"));
421 assertEquals("doubleProperty", mpConfig.getName());
422 assertEquals("double", mpConfig.getType());
423 assertEquals("-2.0", mpConfig.getValue());
424 assertTrue(!mpConfig.isNullValue());
425
426 mpConfig = bean3.getProperty("floatProperty");
427 assertNotNull(mpConfig);
428 assertTrue(mpConfig == bean3Map.get("floatProperty"));
429 assertEquals("floatProperty", mpConfig.getName());
430 assertEquals("float", mpConfig.getType());
431 assertEquals("-3.0", mpConfig.getValue());
432 assertTrue(!mpConfig.isNullValue());
433
434 mpConfig = bean3.getProperty("intProperty");
435 assertNotNull(mpConfig);
436 assertTrue(mpConfig == bean3Map.get("intProperty"));
437 assertEquals("intProperty", mpConfig.getName());
438 assertEquals("int", mpConfig.getType());
439 assertEquals("-4", mpConfig.getValue());
440 assertTrue(!mpConfig.isNullValue());
441
442 mpConfig = bean3.getProperty("longProperty");
443 assertNotNull(mpConfig);
444 assertTrue(mpConfig == bean3Map.get("longProperty"));
445 assertEquals("longProperty", mpConfig.getName());
446 assertEquals("long", mpConfig.getType());
447 assertEquals("-5", mpConfig.getValue());
448 assertTrue(!mpConfig.isNullValue());
449
450 mpConfig = bean3.getProperty("shortProperty");
451 assertNotNull(mpConfig);
452 assertTrue(mpConfig == bean3Map.get("shortProperty"));
453 assertEquals("shortProperty", mpConfig.getName());
454 assertEquals("short", mpConfig.getType());
455 assertEquals("-6", mpConfig.getValue());
456 assertTrue(!mpConfig.isNullValue());
457
458 mpConfig = bean3.getProperty("stringProperty");
459 assertNotNull(mpConfig);
460 assertTrue(mpConfig == bean3Map.get("stringProperty"));
461 assertEquals("stringProperty", mpConfig.getName());
462 assertEquals("java.lang.String", mpConfig.getType());
463 assertEquals("Annotated", mpConfig.getValue());
464 assertTrue(!mpConfig.isNullValue());
465
466
467 ManagedBeanConfig tagUtilityBean = fcConfig.getManagedBean("org.apache.shale.TAG_UTILITY_BEAN");
468 assertNotNull(tagUtilityBean);
469
470
471 listener.contextDestroyed(event);
472
473 }
474
475
476
477 public void testPristine() {
478
479 assertNotNull(listener);
480
481 }
482
483
484
485 public void testRegister() {
486
487
488 ServletContextEvent event = new ServletContextEvent(servletContext);
489
490
491 listener.contextInitialized(event);
492
493
494 UIComponent comp = application.createComponent("foo.MyComponent");
495 assertNotNull(comp);
496 Converter conv = application.createConverter("foo.MyConverter");
497 assertNotNull(conv);
498 Renderer rend = renderKit.getRenderer("foo.MyFamily", "foo.MyRenderer");
499 assertNotNull(rend);
500 Validator val = application.createValidator("foo.MyValidator");
501 assertNotNull(val);
502
503
504 PhaseListener listeners[] = lifecycle.getPhaseListeners();
505 assertNotNull(listeners);
506 assertEquals(1, listeners.length);
507 assertTrue(listeners[0] instanceof PhaseListenerAdapter);
508
509
510 listener.contextDestroyed(event);
511
512 }
513
514
515
516 public void testRequestBean1() {
517
518 RequestBean1 bean = new RequestBean1();
519 assertEquals("", bean.log());
520 request.setAttribute("bean", bean);
521 assertEquals("init/", bean.log());
522 request.setAttribute("bean", bean);
523 assertEquals("init/destroy/init/", bean.log());
524 request.removeAttribute("bean");
525 assertEquals("init/destroy/init/destroy/", bean.log());
526
527 }
528
529
530
531 public void testRequestBean2() {
532
533 RequestBean2 bean = new RequestBean2();
534 assertEquals("", bean.log());
535 request.setAttribute("bean", bean);
536 assertEquals("init/", bean.log());
537 request.setAttribute("bean", bean);
538 assertEquals("init/destroy/init/", bean.log());
539 request.removeAttribute("bean");
540 assertEquals("init/destroy/init/destroy/", bean.log());
541
542 }
543
544
545
546 public void testSessionBean1() {
547
548 SessionBean1 bean = new SessionBean1();
549 assertEquals("", bean.log());
550 session.setAttribute("bean", bean);
551 assertEquals("init/", bean.log());
552 session.setAttribute("bean", bean);
553 assertEquals("init/destroy/init/", bean.log());
554 session.removeAttribute("bean");
555 assertEquals("init/destroy/init/destroy/", bean.log());
556
557 }
558
559
560
561 public void testSessionBean2() {
562
563 SessionBean2 bean = new SessionBean2();
564 assertEquals("", bean.log());
565 session.setAttribute("bean", bean);
566 assertEquals("init/", bean.log());
567 session.setAttribute("bean", bean);
568 assertEquals("init/destroy/init/", bean.log());
569 session.removeAttribute("bean");
570 assertEquals("init/destroy/init/destroy/", bean.log());
571
572 }
573
574
575 }