1 17 18 19 package org.apache.commons.digester.plugins; 20 21 import java.util.List ; 22 23 import junit.framework.Test; 24 import junit.framework.TestCase; 25 import junit.framework.TestSuite; 26 27 import org.apache.commons.digester.Digester; 28 29 33 34 public class TestRuleInfo extends TestCase { 35 36 public TestRuleInfo(String name) { 37 super(name); 38 } 39 40 41 public void setUp() {} 42 43 44 public static Test suite() { 45 46 return (new TestSuite(TestRuleInfo.class)); 47 48 } 49 50 51 public void tearDown() {} 52 53 55 public void testRuleInfoExplicitClass() throws Exception { 56 59 Digester digester = new Digester(); 60 PluginRules rc = new PluginRules(); 61 digester.setRules(rc); 62 63 PluginDeclarationRule pdr = new PluginDeclarationRule(); 64 digester.addRule("root/plugin", pdr); 65 66 PluginCreateRule pcr = new PluginCreateRule(Widget.class); 67 digester.addRule("root/widget", pcr); 68 digester.addSetNext("root/widget", "addChild"); 69 70 Container root = new Container(); 71 digester.push(root); 72 73 try { 74 digester.parse( 75 TestAll.getInputStream(this, "test5a.xml")); 76 } 77 catch(Exception e) { 78 throw e; 79 } 80 81 Object child; 82 List children = root.getChildren(); 83 assertTrue(children != null); 84 assertEquals(1, children.size()); 85 86 child = children.get(0); 87 assertTrue(child != null); 88 assertEquals(TextLabel2.class, child.getClass()); 89 TextLabel2 label = (TextLabel2) child; 90 91 assertEquals("anonymous", label.getId()); 93 assertEquals("std label", label.getLabel()); 94 } 95 96 public void testRuleInfoExplicitMethod() throws Exception { 97 101 Digester digester = new Digester(); 102 PluginRules rc = new PluginRules(); 103 digester.setRules(rc); 104 105 PluginDeclarationRule pdr = new PluginDeclarationRule(); 106 digester.addRule("root/plugin", pdr); 107 108 PluginCreateRule pcr = new PluginCreateRule(Widget.class); 109 digester.addRule("root/widget", pcr); 110 digester.addSetNext("root/widget", "addChild"); 111 112 Container root = new Container(); 113 digester.push(root); 114 115 try { 116 digester.parse( 117 TestAll.getInputStream(this, "test5b.xml")); 118 } 119 catch(Exception e) { 120 throw e; 121 } 122 123 Object child; 124 List children = root.getChildren(); 125 assertTrue(children != null); 126 assertEquals(1, children.size()); 127 128 child = children.get(0); 129 assertTrue(child != null); 130 assertEquals(TextLabel2.class, child.getClass()); 131 TextLabel2 label = (TextLabel2) child; 132 133 assertEquals("anonymous", label.getId()); 135 assertEquals("alt label", label.getLabel()); 136 } 137 138 public void testRuleInfoAutoDetect() throws Exception { 139 143 Digester digester = new Digester(); 144 PluginRules rc = new PluginRules(); 145 digester.setRules(rc); 146 147 PluginDeclarationRule pdr = new PluginDeclarationRule(); 148 digester.addRule("root/plugin", pdr); 149 150 PluginCreateRule pcr = new PluginCreateRule(Widget.class); 151 digester.addRule("root/widget", pcr); 152 digester.addSetNext("root/widget", "addChild"); 153 154 Container root = new Container(); 155 digester.push(root); 156 157 try { 158 digester.parse( 159 TestAll.getInputStream(this, "test5c.xml")); 160 } 161 catch(Exception e) { 162 throw e; 163 } 164 165 Object child; 166 List children = root.getChildren(); 167 assertTrue(children != null); 168 assertEquals(1, children.size()); 169 170 child = children.get(0); 171 assertTrue(child != null); 172 assertEquals(TextLabel2.class, child.getClass()); 173 TextLabel2 label = (TextLabel2) child; 174 175 assertEquals("anonymous", label.getId()); 177 assertEquals("std label", label.getLabel()); 178 } 179 } 180
| Popular Tags
|