From 3b334e408718894d9fd1cd0c8361f8b4c3fb5eb2 Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Tue, 27 Jul 2010 12:38:26 +0000 Subject: [PATCH] SWS-544 - Added URI to ResponseCallback --- .../ws/mock/client/ErrorResponseCallback.java | 5 +++-- .../client/ExceptionResponseCallback.java | 5 +++-- .../ws/mock/client/MockSenderConnection.java | 4 ++-- .../mock/client/PayloadResponseCallback.java | 5 +++-- .../ws/mock/client/ResponseCallback.java | 10 ++++++---- .../client/SoapFaultResponseCallback.java | 4 +++- .../client/ErrorResponseCallbackTest.java | 2 +- .../client/ExceptionResponseCallbackTest.java | 4 ++-- .../client/SoapFaultResponseCallbackTest.java | 20 +++++++++++-------- .../ws/mock/client/WebServiceMockTest.java | 11 +++++----- 10 files changed, 41 insertions(+), 29 deletions(-) diff --git a/test/src/main/java/org/springframework/ws/mock/client/ErrorResponseCallback.java b/test/src/main/java/org/springframework/ws/mock/client/ErrorResponseCallback.java index a649a0a4..278235a9 100644 --- a/test/src/main/java/org/springframework/ws/mock/client/ErrorResponseCallback.java +++ b/test/src/main/java/org/springframework/ws/mock/client/ErrorResponseCallback.java @@ -17,6 +17,7 @@ package org.springframework.ws.mock.client; import java.io.IOException; +import java.net.URI; import org.springframework.ws.WebServiceMessage; @@ -35,11 +36,11 @@ class ErrorResponseCallback implements ResponseCallback { this.errorMessage = errorMessage; } - public void doWithResponse(WebServiceMessage response, WebServiceMessage request) throws IOException { + public void doWithResponse(URI uri, WebServiceMessage response, WebServiceMessage request) throws IOException { // Do nothing } String getErrorMessage() { return errorMessage; } -} \ No newline at end of file +} diff --git a/test/src/main/java/org/springframework/ws/mock/client/ExceptionResponseCallback.java b/test/src/main/java/org/springframework/ws/mock/client/ExceptionResponseCallback.java index 76257adb..a8fd53a9 100644 --- a/test/src/main/java/org/springframework/ws/mock/client/ExceptionResponseCallback.java +++ b/test/src/main/java/org/springframework/ws/mock/client/ExceptionResponseCallback.java @@ -17,6 +17,7 @@ package org.springframework.ws.mock.client; import java.io.IOException; +import java.net.URI; import org.springframework.ws.WebServiceMessage; @@ -39,7 +40,7 @@ class ExceptionResponseCallback implements ResponseCallback { this.exception = exception; } - public void doWithResponse(WebServiceMessage request, WebServiceMessage response) throws IOException { + public void doWithResponse(URI uri, WebServiceMessage request, WebServiceMessage response) throws IOException { if (exception instanceof IOException) { throw (IOException) exception; } @@ -47,4 +48,4 @@ class ExceptionResponseCallback implements ResponseCallback { throw (RuntimeException) exception; } } -} \ No newline at end of file +} diff --git a/test/src/main/java/org/springframework/ws/mock/client/MockSenderConnection.java b/test/src/main/java/org/springframework/ws/mock/client/MockSenderConnection.java index c9931125..1f450c7f 100644 --- a/test/src/main/java/org/springframework/ws/mock/client/MockSenderConnection.java +++ b/test/src/main/java/org/springframework/ws/mock/client/MockSenderConnection.java @@ -89,7 +89,7 @@ class MockSenderConnection implements FaultAwareWebServiceConnection, ResponseAc public WebServiceMessage receive(WebServiceMessageFactory messageFactory) throws IOException { if (responseCallback != null) { WebServiceMessage response = messageFactory.createWebServiceMessage(); - responseCallback.doWithResponse(request, response); + responseCallback.doWithResponse(uri, request, response); return response; } else { @@ -132,4 +132,4 @@ class MockSenderConnection implements FaultAwareWebServiceConnection, ResponseAc } } -} \ No newline at end of file +} diff --git a/test/src/main/java/org/springframework/ws/mock/client/PayloadResponseCallback.java b/test/src/main/java/org/springframework/ws/mock/client/PayloadResponseCallback.java index cb480d63..dc5ce0ff 100644 --- a/test/src/main/java/org/springframework/ws/mock/client/PayloadResponseCallback.java +++ b/test/src/main/java/org/springframework/ws/mock/client/PayloadResponseCallback.java @@ -17,6 +17,7 @@ package org.springframework.ws.mock.client; import java.io.IOException; +import java.net.URI; import javax.xml.transform.Source; import javax.xml.transform.TransformerException; @@ -37,7 +38,7 @@ class PayloadResponseCallback extends TransformerObjectSupport implements Respon this.payload = payload; } - public void doWithResponse(WebServiceMessage request, WebServiceMessage response) throws IOException { + public void doWithResponse(URI uri, WebServiceMessage request, WebServiceMessage response) throws IOException { try { transform(payload, response.getPayloadResult()); } @@ -45,4 +46,4 @@ class PayloadResponseCallback extends TransformerObjectSupport implements Respon throw new AssertionError("Could not transform response payload to message: " + ex.getMessage()); } } -} \ No newline at end of file +} diff --git a/test/src/main/java/org/springframework/ws/mock/client/ResponseCallback.java b/test/src/main/java/org/springframework/ws/mock/client/ResponseCallback.java index 3080ba2f..9de39571 100644 --- a/test/src/main/java/org/springframework/ws/mock/client/ResponseCallback.java +++ b/test/src/main/java/org/springframework/ws/mock/client/ResponseCallback.java @@ -17,12 +17,13 @@ package org.springframework.ws.mock.client; import java.io.IOException; +import java.net.URI; import org.springframework.ws.WebServiceMessage; /** - * Callback interface for code that operates on response {@link org.springframework.ws.WebServiceMessage}s. Defines the contract for creating - * responses in test scenarios. + * Callback interface for code that operates on response {@link org.springframework.ws.WebServiceMessage}s. Defines the + * contract for creating responses in test scenarios. * * @author Arjen Poutsma * @author Lukas Krecan @@ -33,10 +34,11 @@ public interface ResponseCallback { /** * Execute any number of operations on the supplied response, given the request. * + * @param uri of the service called * @param request the request message * @param response the response message - * @throws java.io.IOException in case of I/O errors + * @throws IOException in case of I/O errors */ - void doWithResponse(WebServiceMessage request, WebServiceMessage response) throws IOException; + void doWithResponse(URI uri, WebServiceMessage request, WebServiceMessage response) throws IOException; } \ No newline at end of file diff --git a/test/src/main/java/org/springframework/ws/mock/client/SoapFaultResponseCallback.java b/test/src/main/java/org/springframework/ws/mock/client/SoapFaultResponseCallback.java index 3b1579ff..36b2e9fd 100644 --- a/test/src/main/java/org/springframework/ws/mock/client/SoapFaultResponseCallback.java +++ b/test/src/main/java/org/springframework/ws/mock/client/SoapFaultResponseCallback.java @@ -17,6 +17,7 @@ package org.springframework.ws.mock.client; import java.io.IOException; +import java.net.URI; import java.util.Locale; import org.springframework.ws.WebServiceMessage; @@ -33,7 +34,8 @@ import static org.springframework.ws.mock.client.Assert.fail; */ abstract class SoapFaultResponseCallback implements ResponseCallback { - public final void doWithResponse(WebServiceMessage request, WebServiceMessage response) throws IOException { + public final void doWithResponse(URI uri, WebServiceMessage request, WebServiceMessage response) + throws IOException { if (!(response instanceof SoapMessage)) { fail("Response message is not a SOAP message"); return; diff --git a/test/src/test/java/org/springframework/ws/mock/client/ErrorResponseCallbackTest.java b/test/src/test/java/org/springframework/ws/mock/client/ErrorResponseCallbackTest.java index ed36cbd3..806d5cbd 100644 --- a/test/src/test/java/org/springframework/ws/mock/client/ErrorResponseCallbackTest.java +++ b/test/src/test/java/org/springframework/ws/mock/client/ErrorResponseCallbackTest.java @@ -28,7 +28,7 @@ public class ErrorResponseCallbackTest { public void callback() throws IOException { String errorMessage = "Error message"; ErrorResponseCallback callback = new ErrorResponseCallback(errorMessage); - callback.doWithResponse(null, null); + callback.doWithResponse(null, null, null); assertEquals(errorMessage, callback.getErrorMessage()); } } diff --git a/test/src/test/java/org/springframework/ws/mock/client/ExceptionResponseCallbackTest.java b/test/src/test/java/org/springframework/ws/mock/client/ExceptionResponseCallbackTest.java index fd89feac..bbeaf5a7 100644 --- a/test/src/test/java/org/springframework/ws/mock/client/ExceptionResponseCallbackTest.java +++ b/test/src/test/java/org/springframework/ws/mock/client/ExceptionResponseCallbackTest.java @@ -26,13 +26,13 @@ public class ExceptionResponseCallbackTest { public void ioException() throws Exception { ExceptionResponseCallback callback = new ExceptionResponseCallback(new IOException()); - callback.doWithResponse(null, null); + callback.doWithResponse(null, null, null); } @Test(expected = RuntimeException.class) public void runtimeException() throws Exception { ExceptionResponseCallback callback = new ExceptionResponseCallback(new RuntimeException()); - callback.doWithResponse(null, null); + callback.doWithResponse(null, null, null); } } \ No newline at end of file diff --git a/test/src/test/java/org/springframework/ws/mock/client/SoapFaultResponseCallbackTest.java b/test/src/test/java/org/springframework/ws/mock/client/SoapFaultResponseCallbackTest.java index 10e704cc..1145d62e 100644 --- a/test/src/test/java/org/springframework/ws/mock/client/SoapFaultResponseCallbackTest.java +++ b/test/src/test/java/org/springframework/ws/mock/client/SoapFaultResponseCallbackTest.java @@ -47,9 +47,10 @@ public class SoapFaultResponseCallbackTest { @Test public void clientOrSenderFault() throws IOException { String faultString = "Foo"; - SoapFaultResponseCallback callback = SoapFaultResponseCallback.createClientOrSenderFault(faultString, Locale.ENGLISH); + SoapFaultResponseCallback callback = + SoapFaultResponseCallback.createClientOrSenderFault(faultString, Locale.ENGLISH); - callback.doWithResponse(null, response); + callback.doWithResponse(null, null, response); assertTrue("Response has no fault", response.hasFault()); Soap11Fault soapFault = (Soap11Fault) response.getSoapBody().getFault(); @@ -62,9 +63,10 @@ public class SoapFaultResponseCallbackTest { @Test public void mustUnderstandFault() throws IOException { String faultString = "Foo"; - SoapFaultResponseCallback callback = SoapFaultResponseCallback.createMustUnderstandFault(faultString, Locale.ENGLISH); + SoapFaultResponseCallback callback = + SoapFaultResponseCallback.createMustUnderstandFault(faultString, Locale.ENGLISH); - callback.doWithResponse(null, response); + callback.doWithResponse(null, null, response); assertTrue("Response has no fault", response.hasFault()); Soap11Fault soapFault = (Soap11Fault) response.getSoapBody().getFault(); @@ -77,9 +79,10 @@ public class SoapFaultResponseCallbackTest { @Test public void serverOrReceiverFault() throws IOException { String faultString = "Foo"; - SoapFaultResponseCallback callback = SoapFaultResponseCallback.createServerOrReceiverFault(faultString, Locale.ENGLISH); + SoapFaultResponseCallback callback = + SoapFaultResponseCallback.createServerOrReceiverFault(faultString, Locale.ENGLISH); - callback.doWithResponse(null, response); + callback.doWithResponse(null, null, response); assertTrue("Response has no fault", response.hasFault()); Soap11Fault soapFault = (Soap11Fault) response.getSoapBody().getFault(); @@ -92,9 +95,10 @@ public class SoapFaultResponseCallbackTest { @Test public void versionMismatchFault() throws IOException { String faultString = "Foo"; - SoapFaultResponseCallback callback = SoapFaultResponseCallback.createVersionMismatchFault(faultString, Locale.ENGLISH); + SoapFaultResponseCallback callback = + SoapFaultResponseCallback.createVersionMismatchFault(faultString, Locale.ENGLISH); - callback.doWithResponse(null, response); + callback.doWithResponse(null, null, response); assertTrue("Response has no fault", response.hasFault()); Soap11Fault soapFault = (Soap11Fault) response.getSoapBody().getFault(); diff --git a/test/src/test/java/org/springframework/ws/mock/client/WebServiceMockTest.java b/test/src/test/java/org/springframework/ws/mock/client/WebServiceMockTest.java index 0f68649a..3d621bc1 100644 --- a/test/src/test/java/org/springframework/ws/mock/client/WebServiceMockTest.java +++ b/test/src/test/java/org/springframework/ws/mock/client/WebServiceMockTest.java @@ -57,20 +57,21 @@ public class WebServiceMockTest { @Test public void mocks() throws Exception { - String uri = "http://example.com"; + URI uri = URI.create("http://example.com"); RequestMatcher requestMatcher1 = EasyMock.createStrictMock("requestMatcher1", RequestMatcher.class); RequestMatcher requestMatcher2 = EasyMock.createStrictMock("requestMatcher2", RequestMatcher.class); ResponseCallback responseCallback = EasyMock.createStrictMock(ResponseCallback.class); - requestMatcher1.match(EasyMock.eq(URI.create(uri)), EasyMock.isA(SaajSoapMessage.class)); - requestMatcher2.match(EasyMock.eq(URI.create(uri)), EasyMock.isA(SaajSoapMessage.class)); - responseCallback.doWithResponse(EasyMock.isA(SaajSoapMessage.class), EasyMock.isA(SaajSoapMessage.class)); + requestMatcher1.match(EasyMock.eq(uri), EasyMock.isA(SaajSoapMessage.class)); + requestMatcher2.match(EasyMock.eq(uri), EasyMock.isA(SaajSoapMessage.class)); + responseCallback.doWithResponse(EasyMock.eq(uri), EasyMock.isA(SaajSoapMessage.class), + EasyMock.isA(SaajSoapMessage.class)); EasyMock.replay(requestMatcher1, requestMatcher2, responseCallback); expect(requestMatcher1).andExpect(requestMatcher2).andRespond(responseCallback); - template.sendSourceAndReceiveToResult(uri, new StringSource(""), + template.sendSourceAndReceiveToResult(uri.toString(), new StringSource(""), new StringResult()); EasyMock.verify(requestMatcher1, requestMatcher2, responseCallback);