Added test for repetitive reads on a Axiom caching and non-caching payload.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006 the original author or authors.
|
||||
* Copyright 2002-2009 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,8 +16,17 @@
|
||||
|
||||
package org.springframework.ws.soap.axiom;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import javax.xml.transform.Transformer;
|
||||
import javax.xml.transform.TransformerException;
|
||||
import javax.xml.transform.TransformerFactory;
|
||||
|
||||
import org.springframework.ws.WebServiceMessage;
|
||||
import org.springframework.ws.WebServiceMessageFactory;
|
||||
import org.springframework.ws.soap.soap11.AbstractSoap11MessageFactoryTestCase;
|
||||
import org.springframework.ws.transport.MockTransportInputStream;
|
||||
import org.springframework.ws.transport.TransportInputStream;
|
||||
import org.springframework.xml.transform.StringResult;
|
||||
|
||||
public class AxiomSoap11MessageFactoryTest extends AbstractSoap11MessageFactoryTestCase {
|
||||
|
||||
@@ -27,4 +36,45 @@ public class AxiomSoap11MessageFactoryTest extends AbstractSoap11MessageFactoryT
|
||||
return factory;
|
||||
}
|
||||
|
||||
public void testRepetitiveReadCaching() throws Exception {
|
||||
AxiomSoapMessageFactory messageFactory = new AxiomSoapMessageFactory();
|
||||
messageFactory.setPayloadCaching(true);
|
||||
messageFactory.afterPropertiesSet();
|
||||
|
||||
String xml = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'><soapenv:Body>" +
|
||||
"<root xmlns='http://springframework.org/spring-ws'><child /></root>" +
|
||||
"</soapenv:Body></soapenv:Envelope>";
|
||||
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);
|
||||
}
|
||||
|
||||
public void testRepetitiveReadNoCaching() throws Exception {
|
||||
AxiomSoapMessageFactory messageFactory = new AxiomSoapMessageFactory();
|
||||
messageFactory.setPayloadCaching(false);
|
||||
messageFactory.afterPropertiesSet();
|
||||
|
||||
String xml = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'><soapenv:Body>" +
|
||||
"<root xmlns='http://springframework.org/spring-ws'><child /></root>" +
|
||||
"</soapenv:Body></soapenv:Envelope>";
|
||||
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 {
|
||||
transformer.transform(message.getPayloadSource(), result);
|
||||
fail("TransformerException expected");
|
||||
}
|
||||
catch (TransformerException expected) {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user