diff --git a/test/src/main/java/org/springframework/ws/mock/client/MockWebServiceMessageSender.java b/test/src/main/java/org/springframework/ws/mock/client/MockWebServiceMessageSender.java index caf6da5f..563814a9 100644 --- a/test/src/main/java/org/springframework/ws/mock/client/MockWebServiceMessageSender.java +++ b/test/src/main/java/org/springframework/ws/mock/client/MockWebServiceMessageSender.java @@ -25,8 +25,14 @@ import java.util.List; import org.springframework.util.Assert; import org.springframework.ws.transport.WebServiceMessageSender; -import static org.junit.Assert.assertTrue; - +/** + * Mock implementation of {@link WebServiceMessageSender}. Contains a list of expected {@link MockSenderConnection}s, + * and iterates over those. + * + * @author Arjen Poutsma + * @author Lukas Krecan + * @since 2.0 + */ class MockWebServiceMessageSender implements WebServiceMessageSender { private final List expectedConnections = new LinkedList(); @@ -38,7 +44,9 @@ class MockWebServiceMessageSender implements WebServiceMessageSender { if (connectionIterator == null) { connectionIterator = expectedConnections.iterator(); } - assertTrue("No further connections expected", connectionIterator.hasNext()); + if (!connectionIterator.hasNext()) { + throw new AssertionError("No further connections expected"); + } MockSenderConnection currentConnection = connectionIterator.next(); currentConnection.setUri(uri); diff --git a/test/src/main/java/org/springframework/ws/mock/client/ThreadLocalMockWebServiceMessageSender.java b/test/src/main/java/org/springframework/ws/mock/client/ThreadLocalMockWebServiceMessageSender.java index 6620be08..faa4e0fe 100644 --- a/test/src/main/java/org/springframework/ws/mock/client/ThreadLocalMockWebServiceMessageSender.java +++ b/test/src/main/java/org/springframework/ws/mock/client/ThreadLocalMockWebServiceMessageSender.java @@ -32,10 +32,18 @@ import org.springframework.ws.transport.WebServiceMessageSender; class ThreadLocalMockWebServiceMessageSender implements WebServiceMessageSender { public WebServiceConnection createConnection(URI uri) throws IOException { - return MockWebServiceMessageSenderHolder.get().createConnection(uri); + return getMock().createConnection(uri); } public boolean supports(URI uri) { - return MockWebServiceMessageSenderHolder.get().supports(uri); + return getMock().supports(uri); + } + + private MockWebServiceMessageSender getMock() { + MockWebServiceMessageSender mock = MockWebServiceMessageSenderHolder.get(); + if (mock == null) { + throw new AssertionError("No further connections expected"); + } + return mock; } } 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 38a96037..c1ee184a 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 @@ -153,6 +153,17 @@ public class WebServiceMockTest { template.sendSourceAndReceiveToResult(new StringSource(request), new StringResult()); assertNull(MockWebServiceMessageSenderHolder.get()); } + + @Test(expected = AssertionError.class) + public void unexpectedConnection() throws Exception { + String request = ""; + String response = ""; + + expect(payload(request)).andRespond(withPayload(response)); + + template.sendSourceAndReceiveToResult(new StringSource(request), new StringResult()); + template.sendSourceAndReceiveToResult(new StringSource(request), new StringResult()); + } }