1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.betwixt.dotbetwixt;
18
19 import java.io.StringReader;
20 import java.io.StringWriter;
21
22 import junit.framework.TestCase;
23
24 import org.apache.commons.betwixt.io.BeanReader;
25 import org.apache.commons.betwixt.io.BeanWriter;
26
27
28
29
30
31
32
33
34 public class TestMsgParser extends TestCase
35 {
36 private static final String XML_PROLOG = "<?xml version='1.0' ?>\n";
37 private MsgBean msg;
38
39
40
41
42 protected void setUp() throws Exception
43 {
44 msg = new MsgBean();
45 msg.setDescription("Some simple descriptive text");
46 msg.setToAddress("mike@somewhere.com");
47 msg.setFromAddress("debbie@somwhere.com");
48 msg.setName("basicMsg");
49 msg.setOptionalField1("7-12-99");
50 msg.setOptionalField2("true");
51 msg.setStatus("sent");
52 msg.setType("spam");
53 }
54
55 public void testGetAsXml() throws Exception
56 {
57 String xmlMsg = null;
58 xmlMsg = getAsXml(msg);
59 assertNotNull("XML String should not be null", xmlMsg);
60
61 }
62
63 public void testParseMsg() throws Exception
64 {
65 MsgBean newMsg = null;
66
67 String xmlMsg = getAsXml(msg);
68 newMsg = parseMsg(xmlMsg);
69
70 assertNotNull("new MsgBean should not be null.", newMsg);
71 assertEquals( msg.getDescription(), newMsg.getDescription() );
72 assertEquals( msg.getFromAddress(), newMsg.getFromAddress() );
73 assertEquals( msg.getName(), newMsg.getName() );
74 assertEquals( msg.getOptionalField1(), newMsg.getOptionalField1() );
75 assertEquals( msg.getOptionalField2(), newMsg.getOptionalField2() );
76 assertEquals( msg.getStatus(), newMsg.getStatus() );
77 assertEquals( msg.getToAddress(), newMsg.getToAddress() );
78 assertEquals( msg.getType(), newMsg.getType() );
79 }
80
81
82
83
84
85
86
87
88 public static final String getAsXml(MsgBean msg)
89 throws Exception
90 {
91 StringWriter writer = new StringWriter();
92
93
94
95 writer.write(XML_PROLOG);
96
97
98 BeanWriter beanWriter = new BeanWriter(writer);
99
100
101
102 beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(true);
103 beanWriter.getBindingConfiguration().setMapIDs(false);
104 beanWriter.setEndOfLine("\n");
105 beanWriter.enablePrettyPrint();
106
107
108 beanWriter.write("message", msg);
109 beanWriter.flush();
110
111 return writer.toString();
112 }
113
114
115
116
117
118
119
120
121 public static final MsgBean parseMsg(String xmlMessage)
122 throws Exception
123 {
124 MsgBean msg = null;
125 BeanReader beanReader = new BeanReader();
126
127 beanReader.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(true);
128
129 beanReader.registerBeanClass("message", MsgBean.class);
130 StringReader stringReader = new StringReader(xmlMessage);
131 return (MsgBean) beanReader.parse(stringReader);
132 }
133
134
135
136 }