1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.betwixt.digester;
19
20 import java.io.StringReader;
21
22 import junit.framework.TestCase;
23
24 import org.apache.commons.betwixt.ElementDescriptor;
25 import org.apache.commons.betwixt.XMLBeanInfo;
26 import org.apache.commons.betwixt.XMLIntrospector;
27 import org.apache.commons.betwixt.dotbetwixt.ExampleBean;
28
29
30
31
32
33
34 public class TestDigestDotBetwixt extends TestCase {
35
36
37 public void testDigestWithOptions() throws Exception {
38 String xml = "<?xml version='1.0'?>" +
39 "<info>" +
40 " <element name='example-bean'>" +
41 " <option>" +
42 " <name>one</name>" +
43 " <value>value one</value>" +
44 " </option>" +
45 " <option>" +
46 " <name>two</name>" +
47 " <value>value two</value>" +
48 " </option>" +
49 " <element name='example' property='examples'>" +
50 " <option>" +
51 " <name>three</name>" +
52 " <value>value three</value>" +
53 " </option>" +
54 " </element>" +
55 " </element>" +
56 "</info>";
57
58 XMLBeanInfoDigester digester = new XMLBeanInfoDigester();
59 digester.setXMLIntrospector(new XMLIntrospector());
60 digester.setBeanClass(ExampleBean.class);
61 XMLBeanInfo xmlBeanInfo = (XMLBeanInfo) digester.parse(new StringReader(xml));
62 ElementDescriptor baseDescriptor = xmlBeanInfo.getElementDescriptor();
63
64 assertEquals("Value one set on base", "value one", baseDescriptor.getOptions().getValue("one"));
65 assertEquals("Value two set on base", "value two", baseDescriptor.getOptions().getValue("two"));
66 assertNull("Value three not set on base", baseDescriptor.getOptions().getValue("three"));
67
68 assertEquals("Number of child elements", 1, baseDescriptor.getElementDescriptors().length);
69
70 ElementDescriptor childDescriptor = baseDescriptor.getElementDescriptors()[0];
71 assertNull("Value one set on base", childDescriptor.getOptions().getValue("one"));
72 assertNull("Value two set on base", childDescriptor.getOptions().getValue("two"));
73 assertEquals("Value three set on child", "value three", childDescriptor.getOptions().getValue("three"));
74 }
75 }