1   package org.springframework.ws.soap.axiom;
2   
3   import org.apache.axiom.om.impl.llom.OMSourcedElementImpl;
4   
5   import org.springframework.ws.soap.SoapBody;
6   import org.springframework.ws.soap.SoapMessage;
7   import org.springframework.ws.soap.SoapVersion;
8   import org.springframework.ws.soap.soap11.AbstractSoap11MessageTestCase;
9   
10  public class AxiomSoap11NonCachingMessageTest extends AbstractSoap11MessageTestCase {
11  
12      protected SoapMessage createSoapMessage() throws Exception {
13          AxiomSoapMessageFactory messageFactory = new AxiomSoapMessageFactory();
14          messageFactory.setPayloadCaching(false);
15          messageFactory.setSoapVersion(SoapVersion.SOAP_11);
16  
17          return (SoapMessage) messageFactory.createWebServiceMessage();
18      }
19  
20      public void testWriteToTransportOutputStream() throws Exception {
21          super.testWriteToTransportOutputStream();
22  
23          SoapBody body = soapMessage.getSoapBody();
24          OMSourcedElementImpl axiomPayloadEle =
25                  (OMSourcedElementImpl) ((AxiomSoapBody) body).getAxiomElement().getFirstElement();
26          assertFalse("Non-cached body should not be expanded now", axiomPayloadEle.isExpanded());
27          axiomPayloadEle.getFirstElement();
28          assertTrue("Non-cached body should now be expanded", axiomPayloadEle.isExpanded());
29          assertEquals("Invalid payload", "payload", axiomPayloadEle.getLocalName());
30      }
31  }