SWS-502 - Added Testcase

This commit is contained in:
Arjen Poutsma
2009-05-18 14:41:38 +00:00
parent b682571958
commit 48a1767c49
2 changed files with 45 additions and 2 deletions

View File

@@ -17,10 +17,18 @@
package org.springframework.ws.soap.axiom;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import org.custommonkey.xmlunit.XMLAssert;
import org.custommonkey.xmlunit.XMLUnit;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.util.FileCopyUtils;
import org.springframework.ws.WebServiceMessage;
import org.springframework.ws.WebServiceMessageFactory;
import org.springframework.ws.soap.soap11.AbstractSoap11MessageFactoryTestCase;
@@ -30,7 +38,11 @@ import org.springframework.xml.transform.StringResult;
public class AxiomSoap11MessageFactoryTest extends AbstractSoap11MessageFactoryTestCase {
private Transformer transformer;
protected WebServiceMessageFactory createMessageFactory() throws Exception {
transformer = TransformerFactory.newInstance().newTransformer();
AxiomSoapMessageFactory factory = new AxiomSoapMessageFactory();
factory.afterPropertiesSet();
return factory;
@@ -47,7 +59,6 @@ public class AxiomSoap11MessageFactoryTest extends AbstractSoap11MessageFactoryT
TransportInputStream tis = new MockTransportInputStream(new ByteArrayInputStream(xml.getBytes()));
WebServiceMessage message = messageFactory.createWebServiceMessage(tis);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
StringResult result = new StringResult();
transformer.transform(message.getPayloadSource(), result);
transformer.transform(message.getPayloadSource(), result);
@@ -64,7 +75,6 @@ public class AxiomSoap11MessageFactoryTest extends AbstractSoap11MessageFactoryT
TransportInputStream tis = new MockTransportInputStream(new ByteArrayInputStream(xml.getBytes()));
WebServiceMessage message = messageFactory.createWebServiceMessage(tis);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
StringResult result = new StringResult();
transformer.transform(message.getPayloadSource(), result);
try {
@@ -76,5 +86,23 @@ public class AxiomSoap11MessageFactoryTest extends AbstractSoap11MessageFactoryT
}
}
public void testSWS502() throws Exception {
AxiomSoapMessageFactory messageFactory = new AxiomSoapMessageFactory();
messageFactory.setPayloadCaching(false);
messageFactory.afterPropertiesSet();
Resource resource = new ClassPathResource("SWS-502.xml", getClass());
String expected = FileCopyUtils.copyToString(new InputStreamReader(resource.getInputStream()));
InputStream inputStream = resource.getInputStream();
TransportInputStream tis = new MockTransportInputStream(inputStream);
AxiomSoapMessage message = (AxiomSoapMessage) messageFactory.createWebServiceMessage(tis);
StringResult result = new StringResult();
transformer.transform(message.getEnvelope().getSource(), result);
XMLUnit.setIgnoreWhitespace(true);
XMLAssert.assertXMLEqual(expected, result.toString());
}
}

View File

@@ -0,0 +1,15 @@
<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">
<soapenv:Body>
<ns1:sendMessageResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:Sole">
<sendMessageReturn xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<PDresponse>
<isStatusOK>true</isStatusOK>
<status>0</status>
<payLoad><![CDATA[<?xml version="1.0" encoding="UTF-8"?><response>ok</response>]]]]>><![CDATA[</payLoad>
</PDresponse>]]>
</sendMessageReturn>
</ns1:sendMessageResponse>
</soapenv:Body>
</soapenv:Envelope>