Refactored some tests
This commit is contained in:
@@ -25,6 +25,7 @@ import org.springframework.core.io.Resource;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.ws.WebServiceMessage;
|
||||
import org.springframework.ws.WebServiceMessageFactory;
|
||||
import org.springframework.ws.soap.SoapBody;
|
||||
import org.springframework.ws.test.support.creator.PayloadMessageCreator;
|
||||
import org.springframework.ws.test.support.creator.WebServiceMessageCreator;
|
||||
import org.springframework.xml.transform.ResourceSource;
|
||||
@@ -103,11 +104,16 @@ public abstract class ResponseCreators {
|
||||
*
|
||||
* @param faultStringOrReason the SOAP 1.1 fault string or SOAP 1.2 reason text
|
||||
* @param locale the language of faultStringOrReason. Optional for SOAP 1.1
|
||||
* @see org.springframework.ws.soap.SoapBody#addMustUnderstandFault(String, java.util.Locale)
|
||||
* @see SoapBody#addMustUnderstandFault(String, java.util.Locale)
|
||||
*/
|
||||
public static ResponseCreator withMustUnderstandFault(String faultStringOrReason, Locale locale) {
|
||||
public static ResponseCreator withMustUnderstandFault(final String faultStringOrReason, final Locale locale) {
|
||||
Assert.hasLength(faultStringOrReason, "'faultStringOrReason' must not be empty");
|
||||
return SoapFaultResponseCreator.createMustUnderstandFault(faultStringOrReason, locale);
|
||||
return new SoapFaultResponseCreator() {
|
||||
@Override
|
||||
public void addSoapFault(SoapBody soapBody) {
|
||||
soapBody.addMustUnderstandFault(faultStringOrReason, locale);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -117,9 +123,14 @@ public abstract class ResponseCreators {
|
||||
* @param locale the language of faultStringOrReason. Optional for SOAP 1.1
|
||||
* @see org.springframework.ws.soap.SoapBody#addClientOrSenderFault(String, Locale)
|
||||
*/
|
||||
public static ResponseCreator withClientOrSenderFault(String faultStringOrReason, Locale locale) {
|
||||
public static ResponseCreator withClientOrSenderFault(final String faultStringOrReason, final Locale locale) {
|
||||
Assert.hasLength(faultStringOrReason, "'faultStringOrReason' must not be empty");
|
||||
return SoapFaultResponseCreator.createClientOrSenderFault(faultStringOrReason, locale);
|
||||
return new SoapFaultResponseCreator() {
|
||||
@Override
|
||||
public void addSoapFault(SoapBody soapBody) {
|
||||
soapBody.addClientOrSenderFault(faultStringOrReason, locale);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -129,9 +140,14 @@ public abstract class ResponseCreators {
|
||||
* @param locale the language of faultStringOrReason. Optional for SOAP 1.1
|
||||
* @see org.springframework.ws.soap.SoapBody#addServerOrReceiverFault(String, Locale)
|
||||
*/
|
||||
public static ResponseCreator withServerOrReceiverFault(String faultStringOrReason, Locale locale) {
|
||||
public static ResponseCreator withServerOrReceiverFault(final String faultStringOrReason, final Locale locale) {
|
||||
Assert.hasLength(faultStringOrReason, "'faultStringOrReason' must not be empty");
|
||||
return SoapFaultResponseCreator.createServerOrReceiverFault(faultStringOrReason, locale);
|
||||
return new SoapFaultResponseCreator() {
|
||||
@Override
|
||||
public void addSoapFault(SoapBody soapBody) {
|
||||
soapBody.addServerOrReceiverFault(faultStringOrReason, locale);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -141,9 +157,14 @@ public abstract class ResponseCreators {
|
||||
* @param locale the language of faultStringOrReason. Optional for SOAP 1.1
|
||||
* @see org.springframework.ws.soap.SoapBody#addVersionMismatchFault(String, Locale)
|
||||
*/
|
||||
public static ResponseCreator withVersionMismatchFault(String faultStringOrReason, Locale locale) {
|
||||
public static ResponseCreator withVersionMismatchFault(final String faultStringOrReason, final Locale locale) {
|
||||
Assert.hasLength(faultStringOrReason, "'faultStringOrReason' must not be empty");
|
||||
return SoapFaultResponseCreator.createVersionMismatchFault(faultStringOrReason, locale);
|
||||
return new SoapFaultResponseCreator() {
|
||||
@Override
|
||||
public void addSoapFault(SoapBody soapBody) {
|
||||
soapBody.addVersionMismatchFault(faultStringOrReason, locale);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -18,7 +18,6 @@ package org.springframework.ws.test.client;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.springframework.ws.WebServiceMessage;
|
||||
import org.springframework.ws.soap.SoapBody;
|
||||
@@ -48,50 +47,10 @@ abstract class SoapFaultResponseCreator extends AbstractResponseCreator {
|
||||
addSoapFault(responseBody);
|
||||
}
|
||||
|
||||
public abstract void addSoapFault(SoapBody soapBody);
|
||||
|
||||
public static SoapFaultResponseCreator createMustUnderstandFault(final String faultStringOrReason,
|
||||
final Locale locale) {
|
||||
return new SoapFaultResponseCreator() {
|
||||
@Override
|
||||
public void addSoapFault(SoapBody soapBody) {
|
||||
soapBody.addMustUnderstandFault(faultStringOrReason, locale);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
public static SoapFaultResponseCreator createClientOrSenderFault(final String faultStringOrReason,
|
||||
final Locale locale) {
|
||||
return new SoapFaultResponseCreator() {
|
||||
@Override
|
||||
public void addSoapFault(SoapBody soapBody) {
|
||||
soapBody.addClientOrSenderFault(faultStringOrReason, locale);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static SoapFaultResponseCreator createServerOrReceiverFault(final String faultStringOrReason,
|
||||
final Locale locale) {
|
||||
return new SoapFaultResponseCreator() {
|
||||
@Override
|
||||
public void addSoapFault(SoapBody soapBody) {
|
||||
soapBody.addServerOrReceiverFault(faultStringOrReason, locale);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
public static SoapFaultResponseCreator createVersionMismatchFault(final String faultStringOrReason,
|
||||
final Locale locale) {
|
||||
return new SoapFaultResponseCreator() {
|
||||
@Override
|
||||
public void addSoapFault(SoapBody soapBody) {
|
||||
soapBody.addVersionMismatchFault(faultStringOrReason, locale);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Abstract template method that allows subclasses to add a SOAP Fault to the given Body.
|
||||
*
|
||||
* @param soapBody the body to attach a fault to
|
||||
*/
|
||||
protected abstract void addSoapFault(SoapBody soapBody);
|
||||
}
|
||||
|
||||
@@ -304,7 +304,7 @@ public class MockWebServiceServerTest {
|
||||
StringResult result = new StringResult();
|
||||
template.sendSourceAndReceiveToResult(request, result);
|
||||
}
|
||||
|
||||
|
||||
public static class MyClient extends WebServiceGatewaySupport {
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
/*
|
||||
* Copyright 2005-2010 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.test.client;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Locale;
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.transform.Result;
|
||||
import javax.xml.transform.TransformerException;
|
||||
|
||||
import org.springframework.core.io.ByteArrayResource;
|
||||
import org.springframework.ws.WebServiceMessage;
|
||||
import org.springframework.ws.soap.SoapMessage;
|
||||
import org.springframework.ws.soap.SoapVersion;
|
||||
import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;
|
||||
import org.springframework.ws.soap.soap11.Soap11Fault;
|
||||
import org.springframework.xml.transform.StringResult;
|
||||
import org.springframework.xml.transform.StringSource;
|
||||
import org.springframework.xml.transform.TransformerHelper;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class ResponseCreatorsTest {
|
||||
|
||||
private final TransformerHelper transformerHelper = new TransformerHelper();
|
||||
|
||||
private SaajSoapMessageFactory messageFactory;
|
||||
|
||||
@Before
|
||||
public void createMessageFactory() {
|
||||
messageFactory = new SaajSoapMessageFactory();
|
||||
messageFactory.afterPropertiesSet();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void withPayloadSource() throws Exception {
|
||||
String payload = "<payload xmlns='http://springframework.org'/>";
|
||||
ResponseCreator responseCreator = ResponseCreators.withPayload(new StringSource(payload));
|
||||
|
||||
WebServiceMessage response = responseCreator.createResponse(null, null, messageFactory);
|
||||
|
||||
assertXMLEqual(payload, getPayloadAsString(response));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void withPayloadResource() throws Exception {
|
||||
String payload = "<payload xmlns='http://springframework.org'/>";
|
||||
ResponseCreator responseCreator =
|
||||
ResponseCreators.withPayload(new ByteArrayResource(payload.getBytes("UTF-8")));
|
||||
|
||||
WebServiceMessage response = responseCreator.createResponse(null, null, messageFactory);
|
||||
|
||||
assertXMLEqual(payload, getPayloadAsString(response));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void withIOException() throws Exception {
|
||||
IOException expected = new IOException("Foo");
|
||||
ResponseCreator responseCreator = ResponseCreators.withException(expected);
|
||||
|
||||
try {
|
||||
responseCreator.createResponse(null, null, null);
|
||||
}
|
||||
catch (IOException actual) {
|
||||
assertSame(expected, actual);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void withRuntimeException() throws Exception {
|
||||
RuntimeException expected = new RuntimeException("Foo");
|
||||
ResponseCreator responseCreator = ResponseCreators.withException(expected);
|
||||
|
||||
try {
|
||||
responseCreator.createResponse(null, null, null);
|
||||
}
|
||||
catch (RuntimeException actual) {
|
||||
assertSame(expected, actual);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void withMustUnderstandFault() throws Exception {
|
||||
String faultString = "Foo";
|
||||
ResponseCreator responseCreator = ResponseCreators.withMustUnderstandFault(faultString, Locale.ENGLISH);
|
||||
|
||||
testFault(responseCreator, faultString, SoapVersion.SOAP_11.getMustUnderstandFaultName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void withClientOrSenderFault() throws Exception {
|
||||
String faultString = "Foo";
|
||||
ResponseCreator responseCreator = ResponseCreators.withClientOrSenderFault(faultString, Locale.ENGLISH);
|
||||
|
||||
testFault(responseCreator, faultString, SoapVersion.SOAP_11.getClientOrSenderFaultName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void withServerOrReceiverFault() throws Exception {
|
||||
String faultString = "Foo";
|
||||
ResponseCreator responseCreator = ResponseCreators.withServerOrReceiverFault(faultString, Locale.ENGLISH);
|
||||
|
||||
testFault(responseCreator, faultString, SoapVersion.SOAP_11.getServerOrReceiverFaultName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void withVersionMismatchFault() throws Exception {
|
||||
String faultString = "Foo";
|
||||
ResponseCreator responseCreator = ResponseCreators.withVersionMismatchFault(faultString, Locale.ENGLISH);
|
||||
|
||||
testFault(responseCreator, faultString, SoapVersion.SOAP_11.getVersionMismatchFaultName());
|
||||
}
|
||||
|
||||
private void testFault(ResponseCreator responseCreator, String faultString, QName faultCode) throws IOException {
|
||||
SoapMessage response = (SoapMessage) responseCreator.createResponse(null, null, messageFactory);
|
||||
|
||||
assertTrue("Response has no fault", response.hasFault());
|
||||
Soap11Fault soapFault = (Soap11Fault) response.getSoapBody().getFault();
|
||||
assertEquals("Response has invalid fault code", faultCode, soapFault.getFaultCode());
|
||||
assertEquals("Response has invalid fault string", faultString, soapFault.getFaultStringOrReason());
|
||||
assertEquals("Response has invalid fault locale", Locale.ENGLISH, soapFault.getFaultStringLocale());
|
||||
}
|
||||
|
||||
private String getPayloadAsString(WebServiceMessage message) throws TransformerException {
|
||||
Result result = new StringResult();
|
||||
transformerHelper.transform(message.getPayloadSource(), result);
|
||||
return result.toString();
|
||||
}
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
/*
|
||||
* Copyright 2005-2010 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.test.client;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Locale;
|
||||
import javax.xml.soap.MessageFactory;
|
||||
import javax.xml.soap.SOAPException;
|
||||
import javax.xml.soap.SOAPMessage;
|
||||
|
||||
import org.springframework.ws.soap.SoapMessage;
|
||||
import org.springframework.ws.soap.SoapVersion;
|
||||
import org.springframework.ws.soap.saaj.SaajSoapMessage;
|
||||
import org.springframework.ws.soap.soap11.Soap11Fault;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class SoapFaultResponseCreatorTest {
|
||||
|
||||
private SoapMessage response;
|
||||
|
||||
@Before
|
||||
public void createResponse() throws SOAPException {
|
||||
MessageFactory messageFactory = MessageFactory.newInstance();
|
||||
SOAPMessage saajResponse = messageFactory.createMessage();
|
||||
this.response = new SaajSoapMessage(saajResponse);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void clientOrSenderFault() throws IOException {
|
||||
String faultString = "Foo";
|
||||
SoapFaultResponseCreator callback =
|
||||
SoapFaultResponseCreator.createClientOrSenderFault(faultString, Locale.ENGLISH);
|
||||
|
||||
callback.doWithResponse(null, null, response);
|
||||
|
||||
assertTrue("Response has no fault", response.hasFault());
|
||||
Soap11Fault soapFault = (Soap11Fault) response.getSoapBody().getFault();
|
||||
assertEquals("Response has invalid fault code", SoapVersion.SOAP_11.getClientOrSenderFaultName(),
|
||||
soapFault.getFaultCode());
|
||||
assertEquals("Response has invalid fault string", faultString, soapFault.getFaultStringOrReason());
|
||||
assertEquals("Response has invalid fault locale", Locale.ENGLISH, soapFault.getFaultStringLocale());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mustUnderstandFault() throws IOException {
|
||||
String faultString = "Foo";
|
||||
SoapFaultResponseCreator callback =
|
||||
SoapFaultResponseCreator.createMustUnderstandFault(faultString, Locale.ENGLISH);
|
||||
|
||||
callback.doWithResponse(null, null, response);
|
||||
|
||||
assertTrue("Response has no fault", response.hasFault());
|
||||
Soap11Fault soapFault = (Soap11Fault) response.getSoapBody().getFault();
|
||||
assertEquals("Response has invalid fault code", SoapVersion.SOAP_11.getMustUnderstandFaultName(),
|
||||
soapFault.getFaultCode());
|
||||
assertEquals("Response has invalid fault string", faultString, soapFault.getFaultStringOrReason());
|
||||
assertEquals("Response has invalid fault locale", Locale.ENGLISH, soapFault.getFaultStringLocale());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void serverOrReceiverFault() throws IOException {
|
||||
String faultString = "Foo";
|
||||
SoapFaultResponseCreator callback =
|
||||
SoapFaultResponseCreator.createServerOrReceiverFault(faultString, Locale.ENGLISH);
|
||||
|
||||
callback.doWithResponse(null, null, response);
|
||||
|
||||
assertTrue("Response has no fault", response.hasFault());
|
||||
Soap11Fault soapFault = (Soap11Fault) response.getSoapBody().getFault();
|
||||
assertEquals("Response has invalid fault code", SoapVersion.SOAP_11.getServerOrReceiverFaultName(),
|
||||
soapFault.getFaultCode());
|
||||
assertEquals("Response has invalid fault string", faultString, soapFault.getFaultStringOrReason());
|
||||
assertEquals("Response has invalid fault locale", Locale.ENGLISH, soapFault.getFaultStringLocale());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void versionMismatchFault() throws IOException {
|
||||
String faultString = "Foo";
|
||||
SoapFaultResponseCreator callback =
|
||||
SoapFaultResponseCreator.createVersionMismatchFault(faultString, Locale.ENGLISH);
|
||||
|
||||
callback.doWithResponse(null, null, response);
|
||||
|
||||
assertTrue("Response has no fault", response.hasFault());
|
||||
Soap11Fault soapFault = (Soap11Fault) response.getSoapBody().getFault();
|
||||
assertEquals("Response has invalid fault code", SoapVersion.SOAP_11.getVersionMismatchFaultName(),
|
||||
soapFault.getFaultCode());
|
||||
assertEquals("Response has invalid fault string", faultString, soapFault.getFaultStringOrReason());
|
||||
assertEquals("Response has invalid fault locale", Locale.ENGLISH, soapFault.getFaultStringLocale());
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user