1 16 17 package org.apache.commons.betwixt; 18 19 23 public class TestArrayMaps extends AbstractTestCase { 24 25 private static final AddressBean[] EMPTY_ADDRESS_ARRAY = {}; 26 private static final Class ADDRESS_ARRAY_CLASS 27 = EMPTY_ADDRESS_ARRAY.getClass(); 28 29 public TestArrayMaps(String testName) { 30 super(testName); 31 } 32 33 public void testIntrospection() throws Exception { 34 XMLIntrospector introspector = new XMLIntrospector(); 35 introspector.getConfiguration().setAttributesForPrimitives(true); 36 37 XMLBeanInfo xmlBeanInfo 38 = introspector.introspect(AddressBookWithMapArrayAdder.class); 39 40 ElementDescriptor beanDescriptor = xmlBeanInfo.getElementDescriptor(); 41 ElementDescriptor[] childDescriptors = beanDescriptor.getElementDescriptors(); 42 assertEquals("Only one child element", 1, childDescriptors.length); 43 ElementDescriptor wrappingDescriptor = childDescriptors[0]; 44 ElementDescriptor[] wrappingChildDescriptors = wrappingDescriptor.getElementDescriptors(); 45 assertEquals("One child descriptor", 1, wrappingChildDescriptors.length); 46 ElementDescriptor entryDescriptor = wrappingChildDescriptors[0]; 47 ElementDescriptor[] entryChildDescriptors = entryDescriptor.getElementDescriptors(); 48 assertEquals("Two child descriptors", 2, entryChildDescriptors.length); 49 ElementDescriptor keyDescriptor = null; 50 ElementDescriptor valueDescriptor = null; 51 if ("key".equals(entryChildDescriptors[0].getQualifiedName())) { 52 keyDescriptor = entryChildDescriptors[0]; 53 } 54 if ("value".equals(entryChildDescriptors[0].getQualifiedName())) { 55 valueDescriptor = entryChildDescriptors[0]; 56 } 57 if ("key".equals(entryChildDescriptors[1].getQualifiedName())) { 58 keyDescriptor = entryChildDescriptors[1]; 59 } 60 if ("value".equals(entryChildDescriptors[1].getQualifiedName())) { 61 valueDescriptor = entryChildDescriptors[1]; 62 } 63 64 assertNotNull("Expected key descriptor", keyDescriptor); 65 assertNotNull("Expected value descriptor", valueDescriptor); 66 assertNotNull("Expected key property type", keyDescriptor.getPropertyType()); 67 assertNotNull("Expected value property type", valueDescriptor.getPropertyType()); 68 69 ElementDescriptor[] childValueDescriptors = valueDescriptor.getElementDescriptors(); 70 assertEquals("One hollow child descriptor for array", 1, childValueDescriptors.length); 71 ElementDescriptor hollowValueDescriptor = childValueDescriptors[0]; 72 assertEquals("Child descriptor is hollow", true, hollowValueDescriptor.isHollow()); 73 assertEquals( 74 "Child descriptor has AddressBean[] property type", 75 ADDRESS_ARRAY_CLASS, 76 hollowValueDescriptor.getPropertyType()); 77 assertEquals( 78 "Child descriptor has AddressBean[] singular property type", 79 ADDRESS_ARRAY_CLASS, 80 hollowValueDescriptor.getSingularPropertyType()); 81 } 82 83 } 84 | Popular Tags |