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 import org.junit.Test;
23
24 import static org.junit.Assert.assertEquals;
25
26 public class AxisMuleMessageFactoryTestCase extends AbstractMuleMessageFactoryTestCase
27 {
28 private static final String XML_WITH_HEADERS =
29 "<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\">"
30 + " <soapenv:Header>"
31 + " <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\">"
32 + " <mule:MULE_REPLYTO>replyTo</mule:MULE_REPLYTO>"
33 + " <mule:MULE_CORRELATION_ID>004a1cf9-3e7e-44b3-9b7f-778fae4fa0d2</mule:MULE_CORRELATION_ID>"
34 + " <mule:MULE_CORRELATION_GROUP_SIZE>42</mule:MULE_CORRELATION_GROUP_SIZE>"
35 + " <mule:MULE_CORRELATION_SEQUENCE>-42</mule:MULE_CORRELATION_SEQUENCE>"
36 + " </mule:header>"
37 + " </soapenv:Header>"
38 + " <soapenv:Body>"
39 + " <echo soapenv:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">"
40 + " <value0 xsi:type=\"soapenc:string\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"
41 + " Hello"
42 + " </value0>"
43 + " </echo>"
44 + " </soapenv:Body>"
45 + "</soapenv:Envelope>";
46
47 public AxisMuleMessageFactoryTestCase()
48 {
49 super();
50 runUnsuppoprtedTransportMessageTest = false;
51 }
52
53 @Override
54 protected void doSetUp() throws Exception
55 {
56 super.doSetUp();
57 setupAxisMessageContext();
58 }
59
60 @Override
61 protected MuleMessageFactory doCreateMuleMessageFactory()
62 {
63 return new AxisMuleMessageFactory(muleContext);
64 }
65
66 @Override
67 protected Object getValidTransportMessage() throws Exception
68 {
69 return new Message(XML_WITH_HEADERS);
70 }
71
72 @Test
73 public void testSoapHeaders() throws Exception
74 {
75 MuleMessageFactory factory = createMuleMessageFactory();
76 Object payload = getValidTransportMessage();
77 MuleMessage message = factory.create(payload, encoding);
78 assertEquals(payload, message.getPayload());
79 assertEquals("replyTo", message.getReplyTo());
80 assertEquals(42, message.getCorrelationGroupSize());
81 assertEquals(-42, message.getCorrelationSequence());
82 assertEquals("004a1cf9-3e7e-44b3-9b7f-778fae4fa0d2", message.getCorrelationId());
83 }
84
85 private void setupAxisMessageContext()
86 {
87 EngineConfiguration configuration = new MockEngineConfiguration();
88 MockAxisEngine engine = new MockAxisEngine(configuration);
89 MessageContext messageContext = new MessageContext(engine);
90 MockAxisEngine.setCurrentMessageContext(messageContext);
91
92 Message soapMessage = new Message(XML_WITH_HEADERS);
93 messageContext.setMessage(soapMessage);
94 }
95 }