View Javadoc

1   /*
2    * $Id: AxisMuleMessageFactoryTestCase.java 22387 2011-07-12 03:53:36Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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  }