1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.betwixt.io;
18
19 import java.io.StringWriter;
20
21 import org.apache.commons.betwixt.AbstractTestCase;
22 import org.apache.commons.betwixt.LoopBean;
23
24
25
26 public class TestIgnoreEmptyElements extends AbstractTestCase {
27
28
29 public TestIgnoreEmptyElements(String testName) {
30 super(testName);
31 }
32
33 public void testWritePersonBean() throws Exception {
34 StringWriter out = new StringWriter();
35 out.write("<?xml version='1.0'?>");
36 BeanWriter writer = new BeanWriter(out);
37 writer.setWriteEmptyElements(false);
38 SidekickBean sidekick = new SidekickBean("Robin");
39 SuperheroBean superhero = new SuperheroBean(sidekick);
40 writer.write(superhero);
41 String expected = "<?xml version='1.0'?>" +
42 "<SuperheroBean id='1'>" +
43 " <sidekick id='2'><nickname>Robin</nickname></sidekick>" +
44 "</SuperheroBean>";
45 String xml = out.toString();
46 xmlAssertIsomorphic(parseString(expected), parseString(xml));
47 }
48
49
50
51 public void testNestedWriteEmptyElements() throws Exception{
52
53
54 LoopBean root = new LoopBean("base");
55 LoopBean middle = new LoopBean(null);
56 root.setFriend(middle);
57 middle.setFriend(new LoopBean(null));
58
59
60 StringWriter out = new StringWriter();
61 out.write("<?xml version='1.0'?>");
62 BeanWriter writer = new BeanWriter(out);
63 writer.setWriteEmptyElements(true);
64 writer.getBindingConfiguration().setMapIDs(false);
65 writer.write(root);
66 String xml = "<?xml version='1.0'?><LoopBean><name>base</name><friend><name/><friend><name/></friend>"
67 + "</friend></LoopBean>";
68 xmlAssertIsomorphicContent(parseString(out.getBuffer().toString()),parseString(xml), true);
69
70
71 out = new StringWriter();
72 out.write("<?xml version='1.0'?>");
73 writer = new BeanWriter(out);
74 writer.setWriteEmptyElements(false);
75 writer.getBindingConfiguration().setMapIDs(false);
76 writer.write(root);
77 xml = "<?xml version='1.0'?><LoopBean><name>base</name></LoopBean>";
78 xmlAssertIsomorphicContent(parseString(out.getBuffer().toString()),parseString(xml), true);
79
80 }
81 }