1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.server.endpoint;
18
19 import javax.xml.transform.Source;
20
21 import org.springframework.ws.MockWebServiceMessage;
22 import org.springframework.ws.MockWebServiceMessageFactory;
23 import org.springframework.ws.context.DefaultMessageContext;
24 import org.springframework.ws.context.MessageContext;
25 import org.springframework.xml.transform.StringSource;
26
27 public abstract class AbstractMessageEndpointTestCase extends AbstractEndpointTestCase {
28
29 private MessageEndpoint endpoint;
30
31 protected final void setUp() throws Exception {
32 endpoint = createResponseEndpoint();
33 }
34
35 public void testNoResponse() throws Exception {
36 endpoint = createNoResponseEndpoint();
37 StringSource requestSource = new StringSource(REQUEST);
38
39 MessageContext context =
40 new DefaultMessageContext(new MockWebServiceMessage(requestSource), new MockWebServiceMessageFactory());
41 endpoint.invoke(context);
42 assertFalse("Response message created", context.hasResponse());
43 }
44
45 public void testNoRequestPayload() throws Exception {
46 endpoint = createNoRequestPayloadEndpoint();
47
48 MessageContext context = new DefaultMessageContext(new MockWebServiceMessage((StringBuffer) null),
49 new MockWebServiceMessageFactory());
50 endpoint.invoke(context);
51 assertFalse("Response message created", context.hasResponse());
52 }
53
54 protected final void testSource(Source requestSource) throws Exception {
55 MessageContext context =
56 new DefaultMessageContext(new MockWebServiceMessage(requestSource), new MockWebServiceMessageFactory());
57 endpoint.invoke(context);
58 assertTrue("No response message created", context.hasResponse());
59 assertXMLEqual(RESPONSE, ((MockWebServiceMessage) context.getResponse()).getPayloadAsString());
60 }
61
62 protected abstract MessageEndpoint createNoResponseEndpoint();
63
64 protected abstract MessageEndpoint createNoRequestPayloadEndpoint();
65
66 protected abstract MessageEndpoint createResponseEndpoint();
67
68 }