Copyright.
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.ws.soap.addressing.version;
|
||||
package org.springframework.ws.soap.addressing;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
@@ -32,9 +32,6 @@ import org.springframework.ws.soap.SoapFault;
|
||||
import org.springframework.ws.soap.SoapHeader;
|
||||
import org.springframework.ws.soap.SoapHeaderElement;
|
||||
import org.springframework.ws.soap.SoapMessage;
|
||||
import org.springframework.ws.soap.addressing.EndpointReference;
|
||||
import org.springframework.ws.soap.addressing.MessageAddressingProperties;
|
||||
import org.springframework.ws.soap.addressing.WsAddressingException;
|
||||
import org.springframework.ws.soap.soap11.Soap11Body;
|
||||
import org.springframework.ws.soap.soap12.Soap12Body;
|
||||
import org.springframework.ws.soap.soap12.Soap12Fault;
|
||||
@@ -14,13 +14,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.ws.soap.addressing.version;
|
||||
package org.springframework.ws.soap.addressing;
|
||||
|
||||
import org.springframework.ws.soap.SoapFault;
|
||||
import org.springframework.ws.soap.SoapHeaderElement;
|
||||
import org.springframework.ws.soap.SoapMessage;
|
||||
import org.springframework.ws.soap.addressing.EndpointReference;
|
||||
import org.springframework.ws.soap.addressing.MessageAddressingProperties;
|
||||
|
||||
/**
|
||||
* Defines the contract for a specific version of the WS-Addressing specification.
|
||||
@@ -1,103 +0,0 @@
|
||||
package org.springframework.ws.soap.addressing;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.easymock.MockControl;
|
||||
import org.springframework.ws.context.DefaultMessageContext;
|
||||
import org.springframework.ws.context.MessageContext;
|
||||
import org.springframework.ws.soap.SoapHeaderElement;
|
||||
import org.springframework.ws.soap.addressing.messageid.MessageIdProvider;
|
||||
import org.springframework.ws.soap.saaj.SaajSoapMessage;
|
||||
import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;
|
||||
|
||||
public abstract class AbstractWsAddressingInterceptorTestCase extends AbstractWsAddressingTestCase {
|
||||
|
||||
protected AbstractWsAddressingInterceptor interceptor;
|
||||
|
||||
private MockControl providerControl;
|
||||
|
||||
private MessageIdProvider providerMock;
|
||||
|
||||
protected final void onSetUp() throws Exception {
|
||||
providerControl = MockControl.createControl(MessageIdProvider.class);
|
||||
providerMock = (MessageIdProvider) providerControl.getMock();
|
||||
interceptor = createInterceptor();
|
||||
interceptor.setMessageIdProvider(providerMock);
|
||||
}
|
||||
|
||||
public void testUnderstands() throws Exception {
|
||||
SaajSoapMessage validRequest = loadSaajMessage(getTestPath() + "/valid.xml");
|
||||
Iterator iterator = validRequest.getSoapHeader().examineAllHeaderElements();
|
||||
providerControl.replay();
|
||||
while (iterator.hasNext()) {
|
||||
SoapHeaderElement headerElement = (SoapHeaderElement) iterator.next();
|
||||
assertTrue("Header [" + headerElement.getName() + " not understood",
|
||||
interceptor.understands(headerElement));
|
||||
}
|
||||
providerControl.verify();
|
||||
}
|
||||
|
||||
public void testHandleValidRequest() throws Exception {
|
||||
SaajSoapMessage valid = loadSaajMessage(getTestPath() + "/valid.xml");
|
||||
MessageContext context = new DefaultMessageContext(valid, new SaajSoapMessageFactory(messageFactory));
|
||||
providerControl.replay();
|
||||
boolean result = interceptor.handleRequest(context, null);
|
||||
assertTrue("Valid request not handled", result);
|
||||
assertFalse("Message Context has response", context.hasResponse());
|
||||
providerControl.verify();
|
||||
}
|
||||
|
||||
public void testHandleInvalidRequest() throws Exception {
|
||||
SaajSoapMessage valid = loadSaajMessage(getTestPath() + "/invalid.xml");
|
||||
MessageContext context = new DefaultMessageContext(valid, new SaajSoapMessageFactory(messageFactory));
|
||||
providerControl.replay();
|
||||
boolean result = interceptor.handleRequest(context, null);
|
||||
assertFalse("Invalid request handled", result);
|
||||
assertTrue("Message Context has no response", context.hasResponse());
|
||||
SaajSoapMessage expectedResponse = loadSaajMessage(getTestPath() + "/response-invalid.xml");
|
||||
assertXMLEqual("Invalid response for message with invalid MAP", expectedResponse,
|
||||
(SaajSoapMessage) context.getResponse());
|
||||
providerControl.verify();
|
||||
}
|
||||
|
||||
public void testHandleAnonymousReplyTo() throws Exception {
|
||||
SaajSoapMessage valid = loadSaajMessage(getTestPath() + "/anonymous.xml");
|
||||
MessageContext context = new DefaultMessageContext(valid, new SaajSoapMessageFactory(messageFactory));
|
||||
SaajSoapMessage response = (SaajSoapMessage) context.getResponse();
|
||||
String messageId = "uid:1234";
|
||||
providerControl.expectAndReturn(providerMock.getMessageId(response), messageId);
|
||||
providerControl.replay();
|
||||
boolean result = interceptor.handleResponse(context, null);
|
||||
assertTrue("Anonymous request not handled", result);
|
||||
SaajSoapMessage expectedResponse = loadSaajMessage(getTestPath() + "/response-anonymous.xml");
|
||||
assertXMLEqual("Invalid response for message with invalid MAP", expectedResponse,
|
||||
(SaajSoapMessage) context.getResponse());
|
||||
providerControl.verify();
|
||||
}
|
||||
|
||||
public void testHandleNoneReplyTo() throws Exception {
|
||||
SaajSoapMessage valid = loadSaajMessage(getTestPath() + "/none.xml");
|
||||
MessageContext context = new DefaultMessageContext(valid, new SaajSoapMessageFactory(messageFactory));
|
||||
providerControl.replay();
|
||||
boolean result = interceptor.handleResponse(context, null);
|
||||
assertFalse("None request handled", result);
|
||||
providerControl.verify();
|
||||
}
|
||||
|
||||
public void testHandleOutOfBandReplyTo() throws Exception {
|
||||
SaajSoapMessage valid = loadSaajMessage(getTestPath() + "/valid.xml");
|
||||
MessageContext context = new DefaultMessageContext(valid, new SaajSoapMessageFactory(messageFactory));
|
||||
SaajSoapMessage response = (SaajSoapMessage) context.getResponse();
|
||||
String messageId = "uid:1234";
|
||||
providerControl.expectAndReturn(providerMock.getMessageId(response), messageId);
|
||||
providerControl.replay();
|
||||
boolean result = interceptor.handleResponse(context, null);
|
||||
assertFalse("Out of Band request handled", result);
|
||||
providerControl.verify();
|
||||
}
|
||||
|
||||
protected abstract AbstractWsAddressingInterceptor createInterceptor();
|
||||
|
||||
protected abstract String getTestPath();
|
||||
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
/*
|
||||
* Copyright 2007 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.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.ws.soap.addressing;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import javax.xml.soap.MessageFactory;
|
||||
import javax.xml.soap.MimeHeaders;
|
||||
import javax.xml.soap.SOAPConstants;
|
||||
import javax.xml.soap.SOAPException;
|
||||
|
||||
import org.custommonkey.xmlunit.XMLTestCase;
|
||||
import org.custommonkey.xmlunit.XMLUnit;
|
||||
import org.springframework.ws.soap.saaj.SaajSoapMessage;
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
public abstract class AbstractWsAddressingTestCase extends XMLTestCase {
|
||||
|
||||
protected MessageFactory messageFactory;
|
||||
|
||||
protected final void setUp() throws Exception {
|
||||
messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
|
||||
XMLUnit.setIgnoreWhitespace(true);
|
||||
onSetUp();
|
||||
}
|
||||
|
||||
protected void onSetUp() throws Exception {
|
||||
}
|
||||
|
||||
protected SaajSoapMessage loadSaajMessage(String fileName) throws SOAPException, IOException {
|
||||
MimeHeaders mimeHeaders = new MimeHeaders();
|
||||
mimeHeaders.addHeader("Content-Type", " application/soap+xml");
|
||||
InputStream is = getClass().getResourceAsStream(fileName);
|
||||
assertNotNull("Could not load " + fileName, is);
|
||||
try {
|
||||
return new SaajSoapMessage(messageFactory.createMessage(mimeHeaders, is));
|
||||
}
|
||||
finally {
|
||||
is.close();
|
||||
}
|
||||
}
|
||||
|
||||
protected void assertXMLEqual(String message, SaajSoapMessage expected, SaajSoapMessage result) {
|
||||
Document expectedDocument = expected.getSaajMessage().getSOAPPart();
|
||||
Document resultDocument = result.getSaajMessage().getSOAPPart();
|
||||
assertXMLEqual(message, expectedDocument, resultDocument);
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
package org.springframework.ws.soap.addressing;
|
||||
|
||||
public class WsAddressing200408InterceptorTest extends AbstractWsAddressingInterceptorTestCase {
|
||||
|
||||
protected AbstractWsAddressingInterceptor createInterceptor() {
|
||||
return new WsAddressing200408Interceptor();
|
||||
}
|
||||
|
||||
protected String getTestPath() {
|
||||
return "200408";
|
||||
}
|
||||
|
||||
public void testHandleNoneReplyTo() throws Exception {
|
||||
// This version of the spec does not have none addresses
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package org.springframework.ws.soap.addressing;
|
||||
|
||||
public class WsAddressing200508InterceptorTest extends AbstractWsAddressingInterceptorTestCase {
|
||||
|
||||
protected AbstractWsAddressingInterceptor createInterceptor() {
|
||||
return new WsAddressing200508Interceptor();
|
||||
}
|
||||
|
||||
protected String getTestPath() {
|
||||
return "200508";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user