1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.soap.axis;
12
13 import org.mule.api.MuleMessage;
14 import org.mule.api.transport.MuleMessageFactory;
15 import org.mule.transport.AbstractMuleMessageFactoryTestCase;
16 import org.mule.transport.soap.axis.mock.MockAxisEngine;
17 import org.mule.transport.soap.axis.mock.MockEngineConfiguration;
18
19 import org.apache.axis.EngineConfiguration;
20 import org.apache.axis.Message;
21 import org.apache.axis.MessageContext;
22
23 public class AxisMuleMessageFactoryTestCase extends AbstractMuleMessageFactoryTestCase
24 {
25 private static final String XML_WITH_HEADERS =
26 "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
27 + " <soapenv:Header>"
28 + " <mule:header soapenv:actor=\"http://www.muleumo.org/providers/soap/1.0\" soapenv:mustUnderstand=\"0\" xmlns:mule=\"http://www.muleumo.org/providers/soap/1.0\">"
29 + " <mule:MULE_REPLYTO>replyTo</mule:MULE_REPLYTO>"
30 + " <mule:MULE_CORRELATION_ID>004a1cf9-3e7e-44b3-9b7f-778fae4fa0d2</mule:MULE_CORRELATION_ID>"
31 + " <mule:MULE_CORRELATION_GROUP_SIZE>42</mule:MULE_CORRELATION_GROUP_SIZE>"
32 + " <mule:MULE_CORRELATION_SEQUENCE>-42</mule:MULE_CORRELATION_SEQUENCE>"
33 + " </mule:header>"
34 + " </soapenv:Header>"
35 + " <soapenv:Body>"
36 + " <echo soapenv:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">"
37 + " <value0 xsi:type=\"soapenc:string\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"
38 + " Hello"
39 + " </value0>"
40 + " </echo>"
41 + " </soapenv:Body>"
42 + "</soapenv:Envelope>";
43
44 public AxisMuleMessageFactoryTestCase()
45 {
46 super();
47 runUnsuppoprtedTransportMessageTest = false;
48 }
49
50 @Override
51 protected void doSetUp() throws Exception
52 {
53 super.doSetUp();
54 setupAxisMessageContext();
55 }
56
57 @Override
58 protected MuleMessageFactory doCreateMuleMessageFactory()
59 {
60 return new AxisMuleMessageFactory(muleContext);
61 }
62
63 @Override
64 protected Object getValidTransportMessage() throws Exception
65 {
66 return new Message(XML_WITH_HEADERS);
67 }
68
69 public void testSoapHeaders() throws Exception
70 {
71 MuleMessageFactory factory = createMuleMessageFactory();
72 Object payload = getValidTransportMessage();
73 MuleMessage message = factory.create(payload, encoding);
74 assertEquals(payload, message.getPayload());
75 assertEquals("replyTo", message.getReplyTo());
76 assertEquals(42, message.getCorrelationGroupSize());
77 assertEquals(-42, message.getCorrelationSequence());
78 assertEquals("004a1cf9-3e7e-44b3-9b7f-778fae4fa0d2", message.getCorrelationId());
79 }
80
81 private void setupAxisMessageContext()
82 {
83 EngineConfiguration configuration = new MockEngineConfiguration();
84 MockAxisEngine engine = new MockAxisEngine(configuration);
85 MessageContext messageContext = new MessageContext(engine);
86 MockAxisEngine.setCurrentMessageContext(messageContext);
87
88 Message soapMessage = new Message(XML_WITH_HEADERS);
89 messageContext.setMessage(soapMessage);
90 }
91 }