KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > webapp > struts > forms > TreeNodeBeanBuilderTest


1 /*
2  * (c) Rob Gordon 2005
3  */

4 package org.oddjob.webapp.struts.forms;
5
6 import java.io.ByteArrayInputStream JavaDoc;
7
8 import junit.framework.TestCase;
9
10 import org.oddjob.Iconic;
11 import org.oddjob.Oddjob;
12 import org.oddjob.images.IconHelper;
13 import org.oddjob.images.IconListener;
14 import org.oddjob.images.IconTip;
15 import org.oddjob.webapp.model.IconRegistry;
16 import org.oddjob.webapp.model.JobInfoLookup;
17 import org.oddjob.webapp.struts.forms.TreeNodeBean;
18
19 public class TreeNodeBeanBuilderTest extends TestCase {
20
21     /** Test simply building a bean */
22     public void testBuildBean() {
23         String JavaDoc xml = "<oddjob><echo text='Hello World'/></oddjob>";
24         
25         Oddjob oj = new Oddjob();
26         oj.setInput(new ByteArrayInputStream JavaDoc(xml.getBytes()));
27         oj.setName("Test");
28         oj.run();
29         
30         JobInfoLookup lookup = new JobInfoLookup(new IconRegistry());
31         lookup.setRoot(oj);
32         TreeNodeBeanBuilder builder = new TreeNodeBeanBuilder(lookup);
33         TreeNodeBean bean = builder.buildRoot();
34         
35         assertNotNull(bean);
36         assertTrue(bean.getHasChildren());
37         assertEquals("Test", bean.getNodeName());
38         
39         bean.getExpand();
40         assertEquals(1, bean.getChildCollection().size());
41         
42         // check child.
43
TreeNodeBean[] children = (TreeNodeBean[]) bean.getChildCollection().toArray(new TreeNodeBean[0]);
44         TreeNodeBean child = children[0];
45         child.getExpand();
46         assertEquals(0, child.getChildCollection().size());
47     }
48
49     /** More complicated bean - tracking down a bug where child displayed twice. */
50     public void testBuildBean2() {
51         String JavaDoc xml = "<oddjob><sequential name='Child 1'>" +
52                 "<sequential name='Child 2'>" +
53                 "<echo name='Child 3' text='Hello World'/>" +
54                 "</sequential></sequential></oddjob>";
55         
56         Oddjob oj = new Oddjob();
57         oj.setInput(new ByteArrayInputStream JavaDoc(xml.getBytes()));
58         oj.setName("Test");
59         oj.run();
60         
61         JobInfoLookup lookup = new JobInfoLookup(new IconRegistry());
62         lookup.setRoot(oj);
63         TreeNodeBeanBuilder builder = new TreeNodeBeanBuilder(lookup);
64         TreeNodeBean bean = builder.buildRoot();
65         bean.getExpand();
66         
67         TreeNodeBean[] children;
68         TreeNodeBean child;
69         
70         children = (TreeNodeBean[]) bean.getChildCollection().toArray(new TreeNodeBean[0]);
71         child = children[0];
72         assertEquals("Child 1", child.getNodeName());
73         
74         child.getExpand();
75         children = (TreeNodeBean[]) child.getChildCollection().toArray(new TreeNodeBean[0]);
76         child = children[0];
77         assertEquals("Child 2", child.getNodeName());
78         
79         child.getExpand();
80         children = (TreeNodeBean[]) child.getChildCollection().toArray(new TreeNodeBean[0]);
81         child = children[0];
82         assertEquals("Child 3", child.getNodeName());
83     }
84     
85     public void testIcon() {
86         class I implements Iconic {
87             IconHelper ih = new IconHelper(this);
88             boolean toggle;
89             public void addIconListener(IconListener listener) {
90                 if (toggle) {
91                     ih.changeIcon(IconHelper.COMPLETE);
92                 } else {
93                     ih.changeIcon(IconHelper.EXCEPTION);
94                 }
95                 toggle = !toggle;
96                 ih.addIconListener(listener);
97             }
98             public IconTip iconForId(String JavaDoc id) {
99                 return ih.iconForId(id);
100             }
101             public void removeIconListener(IconListener listener) {
102                 ih.removeIconListener(listener);
103             }
104         }
105         I i = new I();
106         
107         JobInfoLookup lookup = new JobInfoLookup(new IconRegistry());
108         lookup.setRoot(i);
109         TreeNodeBeanBuilder builder = new TreeNodeBeanBuilder(lookup);
110         TreeNodeBean bean = builder.buildRoot();
111
112         String JavaDoc iconId;
113         iconId = bean.getIconId();
114         assertEquals(IconHelper.EXCEPTION, iconId);
115         
116         bean = builder.buildRoot();
117         
118         iconId = bean.getIconId();
119         assertEquals(IconHelper.COMPLETE, iconId);
120     }
121
122 }
123
Popular Tags