1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.support;
18
19 import javax.xml.transform.Result;
20 import javax.xml.transform.Source;
21
22 import junit.framework.TestCase;
23 import org.easymock.MockControl;
24 import org.springframework.oxm.Marshaller;
25 import org.springframework.oxm.Unmarshaller;
26 import org.springframework.oxm.mime.MimeMarshaller;
27 import org.springframework.oxm.mime.MimeUnmarshaller;
28 import org.springframework.ws.WebServiceMessage;
29 import org.springframework.ws.mime.MimeMessage;
30 import org.springframework.xml.transform.StringResult;
31 import org.springframework.xml.transform.StringSource;
32
33 public class MarshallingUtilsTest extends TestCase {
34
35 public void testUnmarshal() throws Exception {
36 MockControl unmarshallerControl = MockControl.createControl(Unmarshaller.class);
37 Unmarshaller unmarshallerMock = (Unmarshaller) unmarshallerControl.getMock();
38 MockControl messageControl = MockControl.createControl(WebServiceMessage.class);
39 WebServiceMessage messageMock = (WebServiceMessage) messageControl.getMock();
40
41 Source source = new StringSource("");
42 Object unmarshalled = new Object();
43 messageControl.expectAndReturn(messageMock.getPayloadSource(), source);
44 unmarshallerControl.expectAndReturn(unmarshallerMock.unmarshal(source), unmarshalled);
45
46 unmarshallerControl.replay();
47 messageControl.replay();
48
49 Object result = MarshallingUtils.unmarshal(unmarshallerMock, messageMock);
50 assertEquals("Invalid unmarshalled object", unmarshalled, result);
51
52 unmarshallerControl.verify();
53 messageControl.verify();
54 }
55
56 public void testUnmarshalMime() throws Exception {
57 MockControl unmarshallerControl = MockControl.createControl(MimeUnmarshaller.class);
58 MimeUnmarshaller unmarshallerMock = (MimeUnmarshaller) unmarshallerControl.getMock();
59 MockControl messageControl = MockControl.createControl(MimeMessage.class);
60 MimeMessage messageMock = (MimeMessage) messageControl.getMock();
61
62 Source source = new StringSource("");
63 Object unmarshalled = new Object();
64 messageControl.expectAndReturn(messageMock.getPayloadSource(), source);
65 unmarshallerMock.unmarshal(source, null);
66 unmarshallerControl.setMatcher(MockControl.ALWAYS_MATCHER);
67 unmarshallerControl.setReturnValue(unmarshalled);
68
69 unmarshallerControl.replay();
70 messageControl.replay();
71
72 Object result = MarshallingUtils.unmarshal(unmarshallerMock, messageMock);
73 assertEquals("Invalid unmarshalled object", unmarshalled, result);
74
75 unmarshallerControl.verify();
76 messageControl.verify();
77 }
78
79 public void testUnmarshalNoPayload() throws Exception {
80 MockControl unmarshallerControl = MockControl.createControl(MimeUnmarshaller.class);
81 MimeUnmarshaller unmarshallerMock = (MimeUnmarshaller) unmarshallerControl.getMock();
82 MockControl messageControl = MockControl.createControl(MimeMessage.class);
83 MimeMessage messageMock = (MimeMessage) messageControl.getMock();
84
85 messageControl.expectAndReturn(messageMock.getPayloadSource(), null);
86
87 unmarshallerControl.replay();
88 messageControl.replay();
89
90 Object result = MarshallingUtils.unmarshal(unmarshallerMock, messageMock);
91 assertNull("Invalid unmarshalled object", result);
92
93 unmarshallerControl.verify();
94 messageControl.verify();
95 }
96
97 public void testMarshal() throws Exception {
98 MockControl marshallerControl = MockControl.createControl(Marshaller.class);
99 Marshaller marshallerMock = (Marshaller) marshallerControl.getMock();
100 MockControl messageControl = MockControl.createControl(WebServiceMessage.class);
101 WebServiceMessage messageMock = (WebServiceMessage) messageControl.getMock();
102
103 Result result = new StringResult();
104 Object marshalled = new Object();
105 messageControl.expectAndReturn(messageMock.getPayloadResult(), result);
106 marshallerMock.marshal(marshalled, result);
107
108 marshallerControl.replay();
109 messageControl.replay();
110
111 MarshallingUtils.marshal(marshallerMock, marshalled, messageMock);
112
113 marshallerControl.verify();
114 messageControl.verify();
115 }
116
117 public void testMarshalMime() throws Exception {
118 MockControl marshallerControl = MockControl.createControl(MimeMarshaller.class);
119 MimeMarshaller marshallerMock = (MimeMarshaller) marshallerControl.getMock();
120 MockControl messageControl = MockControl.createControl(MimeMessage.class);
121 MimeMessage messageMock = (MimeMessage) messageControl.getMock();
122
123 Result result = new StringResult();
124 Object marshalled = new Object();
125 messageControl.expectAndReturn(messageMock.getPayloadResult(), result);
126 marshallerMock.marshal(marshalled, result, null);
127 marshallerControl.setMatcher(MockControl.ALWAYS_MATCHER);
128
129 marshallerControl.replay();
130 messageControl.replay();
131
132 MarshallingUtils.marshal(marshallerMock, marshalled, messageMock);
133
134 marshallerControl.verify();
135 messageControl.verify();
136 }
137
138
139 }