1 4 package org.oddjob.webapp.struts.forms; 5 6 import java.io.ByteArrayInputStream ; 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 22 public void testBuildBean() { 23 String xml = "<oddjob><echo text='Hello World'/></oddjob>"; 24 25 Oddjob oj = new Oddjob(); 26 oj.setInput(new ByteArrayInputStream (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 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 50 public void testBuildBean2() { 51 String 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 (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 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 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 |