1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.soap.saaj;
18
19 import javax.xml.soap.MessageFactory;
20 import javax.xml.soap.SOAPConstants;
21 import javax.xml.soap.SOAPMessage;
22 import javax.xml.transform.Result;
23 import javax.xml.transform.Source;
24
25 import org.springframework.ws.soap.SoapMessage;
26 import org.springframework.ws.soap.soap12.AbstractSoap12MessageTestCase;
27 import org.springframework.xml.transform.StringResult;
28 import org.springframework.xml.transform.StringSource;
29
30 public class SaajSoap12MessageTest extends AbstractSoap12MessageTestCase {
31
32 private SOAPMessage saajMessage;
33
34 protected SoapMessage createSoapMessage() throws Exception {
35 MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
36 saajMessage = messageFactory.createMessage();
37 saajMessage.getSOAPHeader().detachNode();
38 return new SaajSoapMessage(saajMessage);
39 }
40
41 public void testGetPayloadSource() throws Exception {
42 saajMessage.getSOAPBody().addChildElement("child");
43 Source source = soapMessage.getPayloadSource();
44 StringResult result = new StringResult();
45 transformer.transform(source, result);
46 assertXMLEqual("Invalid source", "<child/>", result.toString());
47 }
48
49 public void testGetPayloadSourceText() throws Exception {
50 saajMessage.getSOAPBody().addTextNode(" ");
51 saajMessage.getSOAPBody().addChildElement("child");
52 Source source = soapMessage.getPayloadSource();
53 StringResult result = new StringResult();
54 transformer.transform(source, result);
55 assertXMLEqual("Invalid source", "<child/>", result.toString());
56 }
57
58 public void testGetPayloadResult() throws Exception {
59 StringSource source = new StringSource("<child/>");
60 Result result = soapMessage.getPayloadResult();
61 transformer.transform(source, result);
62 assertTrue("No child nodes created", saajMessage.getSOAPBody().hasChildNodes());
63 assertEquals("Invalid child node created", "child", saajMessage.getSOAPBody().getFirstChild().getLocalName());
64 }
65
66 }