1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.betwixt.introspection;
18
19 import junit.framework.TestCase;
20
21 import org.apache.commons.beanutils.BasicDynaBean;
22 import org.apache.commons.beanutils.BasicDynaClass;
23 import org.apache.commons.beanutils.DynaBean;
24 import org.apache.commons.beanutils.DynaProperty;
25 import org.apache.commons.betwixt.ElementDescriptor;
26 import org.apache.commons.betwixt.XMLBeanInfo;
27 import org.apache.commons.betwixt.XMLIntrospector;
28
29
30
31
32 public class TestDynaBeanIntrospection extends TestCase {
33
34 public void testSimpleIntrospectionTest() throws Exception {
35 DynaProperty[] dynaProperties = {
36 new DynaProperty("one", Integer.class),
37 new DynaProperty("two", String.class)};
38 BasicDynaClass dynaClass = new BasicDynaClass("WibbleDynaBean", BasicDynaBean.class,
39 dynaProperties);
40 DynaBean dynaBean = dynaClass.newInstance();
41 XMLIntrospector xmlIntrospector = new XMLIntrospector();
42 XMLBeanInfo xmlBeanInfo = xmlIntrospector.introspect(dynaBean);
43
44 ElementDescriptor dynaBeanDescriptor = xmlBeanInfo.getElementDescriptor();
45 ElementDescriptor[] dynaPropertyDescriptors = dynaBeanDescriptor.getElementDescriptors();
46 assertEquals("Two dyna properties expected", 2, dynaPropertyDescriptors.length);
47
48 for (int i=0; i<2; i++) {
49 if ("one".equals(dynaPropertyDescriptors[i].getPropertyName())
50 || "two".equals(dynaPropertyDescriptors[i].getPropertyName())) {
51 assertNotNull("Property updater", dynaPropertyDescriptors[1].getUpdater());
52 } else {
53 fail("Properties should be named one and two");
54 }
55 }
56 }
57
58 }