Allow for extensions to create faults

This commit is contained in:
Arjen Poutsma
2010-09-22 13:25:58 +00:00
parent 9c1f36ec5e
commit dda706b82a
2 changed files with 15 additions and 12 deletions

View File

@@ -24,17 +24,16 @@ import java.util.List;
import org.springframework.util.Assert;
import org.springframework.ws.WebServiceMessage;
import org.springframework.ws.WebServiceMessageFactory;
import org.springframework.ws.transport.FaultAwareWebServiceConnection;
import org.springframework.ws.transport.WebServiceConnection;
/**
* Mock implementation of {@link FaultAwareWebServiceConnection}. Implements {@link ResponseActions} to form a fluent
* API.
* Mock implementation of {@link WebServiceConnection}. Implements {@link ResponseActions} to form a fluent API.
*
* @author Arjen Poutsma
* @author Lukas Krecan
* @since 2.0
*/
class MockSenderConnection implements FaultAwareWebServiceConnection, ResponseActions {
class MockSenderConnection implements WebServiceConnection, ResponseActions {
private final List<RequestMatcher> requestMatchers = new LinkedList<RequestMatcher>();
@@ -114,14 +113,6 @@ class MockSenderConnection implements FaultAwareWebServiceConnection, ResponseAc
}
}
public boolean hasFault() throws IOException {
return responseCreator instanceof SoapFaultResponseCreator;
}
public void setFault(boolean fault) throws IOException {
// Do nothing
}
public void close() throws IOException {
requestMatchers.clear();
request = null;

View File

@@ -19,6 +19,7 @@ package org.springframework.ws.mock.client;
import java.io.IOException;
import java.net.URI;
import java.util.Collections;
import java.util.Locale;
import java.util.Map;
import javax.xml.namespace.QName;
import javax.xml.soap.MessageFactory;
@@ -31,6 +32,7 @@ import org.springframework.ws.WebServiceMessage;
import org.springframework.ws.client.core.WebServiceMessageCallback;
import org.springframework.ws.client.core.WebServiceTemplate;
import org.springframework.ws.soap.SoapMessage;
import org.springframework.ws.soap.client.SoapFaultClientException;
import org.springframework.ws.soap.saaj.SaajSoapMessage;
import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;
import org.springframework.xml.transform.StringResult;
@@ -259,4 +261,14 @@ public class WebServiceMockTest {
public void verifyOnly() throws Exception {
verifyConnections();
}
@Test(expected = SoapFaultClientException.class)
public void fault() throws Exception {
Source request = new StringSource("<request xmlns='http://example.com'/>");
expect(anything()).andRespond(withClientOrSenderFault("reason", Locale.ENGLISH));
StringResult result = new StringResult();
template.sendSourceAndReceiveToResult(request, result);
}
}