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.AttributeDescriptor;
23 import org.apache.commons.betwixt.strategy.ValueSuppressionStrategy;
24
25
26
27
28 public class TestAttributeSuppression extends AbstractTestCase {
29
30 public TestAttributeSuppression(String testName) {
31 super(testName);
32 }
33
34
35 public void testEmptyStringSuppression() throws Exception {
36 PersonBean bean = new PersonBean("Corwin", null);
37
38 StringWriter out = new StringWriter();
39 out.write("<?xml version='1.0'?>");
40
41 BeanWriter writer = new BeanWriter(out);
42 writer.getBindingConfiguration().setMapIDs(false);
43 writer.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(true);
44
45 writer.write(bean);
46
47 String expected = "<?xml version='1.0'?><PersonBean forenames='Corwin'/>";
48
49 xmlAssertIsomorphicContent(parseString(expected), parseString(out));
50 }
51
52 public void testCustomStrategy() throws Exception {
53 PersonBean bean = new PersonBean("Zaphod", "Beeblebrox");
54
55 StringWriter out = new StringWriter();
56 out.write("<?xml version='1.0'?>");
57
58 BeanWriter writer = new BeanWriter(out);
59 writer.getBindingConfiguration().setMapIDs(false);
60 writer.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(true);
61 writer.getBindingConfiguration().setValueSuppressionStrategy(new ValueSuppressionStrategy() {
62
63 public boolean suppressAttribute(AttributeDescriptor attributeDescriptor, String value) {
64 return "Zaphod".equals(value);
65 }
66 });
67 writer.write(bean);
68
69 String expected = "<?xml version='1.0'?><PersonBean surname='Beeblebrox'/>";
70
71 xmlAssertIsomorphicContent(parseString(expected), parseString(out));
72 }
73 }