1 16 17 package org.apache.commons.betwixt.strategy; 18 19 import java.io.StringReader ; 20 import java.io.StringWriter ; 21 import java.io.Writer ; 22 23 import junit.framework.TestCase; 24 25 import org.apache.commons.betwixt.XMLIntrospector; 26 import org.apache.commons.betwixt.io.BeanReader; 27 import org.apache.commons.betwixt.io.BeanWriter; 28 29 30 38 public class TestElementsIO extends TestCase { 39 40 42 public TestElementsIO(String name) { 43 super(name); 44 } 47 48 public void testCapitalizeNameMapper() throws Exception { 49 doTest(new CapitalizeNameMapper(), "capitalize name mapper"); 51 } 52 53 public void testDecapitalizeNameMapper() throws Exception { 54 doTest(new DecapitalizeNameMapper(), "decapitalize name mapper"); 56 } 57 58 public void testDefaultElementMapper() throws Exception { 59 doTest(new DefaultNameMapper(), "default name mapper"); 61 } 62 63 public void testHyphenatedNameMapper() throws Exception { 64 doTest(new HyphenatedNameMapper(), "hyphenated name mapper"); 66 } 67 68 private void doTest(NameMapper mapper, String testName) throws Exception { 69 Elements elements = new Elements(); 70 elements.addElement(new Element("a")); 71 elements.addElement(new Element("b")); 72 elements.addElement(new Element("c")); 73 74 StringWriter out = new StringWriter (); 75 BeanWriter writer = newBeanWriter(out, mapper); 76 writer.setWriteEmptyElements(true); 77 writer.write(elements); 78 writer.flush(); 79 80 String xmlOut = out.toString(); 81 82 84 StringReader in = new StringReader (xmlOut); 85 86 89 BeanReader reader = new BeanReader(); 90 92 96 reader.setXMLIntrospector(newXMLIntrospector(mapper)); 97 reader.registerBeanClass(Elements.class); 98 Elements result = (Elements) reader.parse(in); 99 100 assertNotNull("Element 'a' is null (" + testName + ")", result.getElement("a")); 101 assertNotNull("Element 'b' is null (" + testName + ")", result.getElement("b")); 102 assertNotNull("Element 'c' is null (" + testName + ")", result.getElement("c")); 103 } 104 105 private BeanWriter newBeanWriter(Writer writer, NameMapper mapper) { 106 109 BeanWriter result = new BeanWriter(writer); 110 result.setWriteEmptyElements(true); 111 113 117 result.setXMLIntrospector(newXMLIntrospector(mapper)); 118 result.enablePrettyPrint(); 119 result.getBindingConfiguration().setMapIDs(false); 120 return result; 121 } 122 123 private XMLIntrospector newXMLIntrospector(NameMapper mapper) { 124 XMLIntrospector introspector = new XMLIntrospector(); 125 introspector.getConfiguration().setAttributesForPrimitives(true); 126 introspector.getConfiguration().setWrapCollectionsInElement(false); 127 introspector.getConfiguration().setElementNameMapper(mapper); 128 return introspector; 129 } 130 } 131 132 | Popular Tags |