Class MockWebServiceClient
java.lang.Object
org.springframework.ws.test.server.MockWebServiceClient
Main entry point for server-side Web service testing. Typically used to test a
MessageDispatcher
(including its endpoints, mappings, etc) by
creating request messages, and setting up expectations about response messages.
The typical usage of this class is:
- Create a
MockWebServiceClient
instance by usingcreateClient(ApplicationContext)
orcreateClient(WebServiceMessageReceiver, WebServiceMessageFactory)
- Send request messages by calling
sendRequest(RequestCreator)
, possibly by using the defaultRequestCreator
implementations provided inRequestCreators
(which can be statically imported). - Set up response expectations by calling
andExpect(ResponseMatcher)
, possibly by using the defaultResponseMatcher
implementations provided inResponseMatchers
(which can be statically imported). Multiple expectations can be set up by chainingandExpect()
calls.
For example:
import org.junit.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.xml.transform.StringSource; import org.springframework.ws.test.server.MockWebServiceClient; import static org.springframework.ws.test.server.RequestCreators.*; import static org.springframework.ws.test.server.ResponseMatchers.*; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("applicationContext.xml") public class MyWebServiceIntegrationTest { // a standard MessageDispatcherServlet application context, containing endpoints, mappings, etc. @Autowired private ApplicationContext applicationContext; private MockWebServiceClient mockClient; @Before public void createClient() throws Exception { mockClient = MockWebServiceClient.createClient(applicationContext); } // test the CustomerCountEndpoint, which is wired up in the application context above // and handles <customerCount/> messages @Test public void customerCountEndpoint() throws Exception { Source requestPayload = new StringSource( "<customerCountRequest xmlns='http://springframework.org/spring-ws'>" + "<customerName>John Doe</customerName>" + "</customerCountRequest>"); Source expectedResponsePayload = new StringSource( "<customerCountResponse xmlns='http://springframework.org/spring-ws'>" + "<customerCount>42</customerCount>" + "</customerCountResponse>"); mockClient.sendRequest(withPayload(requestPayload)).andExpect(payload(expectedResponsePayload)); } }
- Since:
- 2.0
- Author:
- Arjen Poutsma, Lukas Krecan
-
Method Summary
Modifier and TypeMethodDescriptionstatic MockWebServiceClient
createClient
(org.springframework.context.ApplicationContext applicationContext) Creates aMockWebServiceClient
instance based on the givenApplicationContext
.static MockWebServiceClient
createClient
(WebServiceMessageReceiver messageReceiver, WebServiceMessageFactory messageFactory) Creates aMockWebServiceClient
instance based on the givenWebServiceMessageReceiver
andWebServiceMessageFactory
.sendRequest
(RequestCreator requestCreator) Sends a request message by using the givenRequestCreator
.
-
Method Details
-
createClient
public static MockWebServiceClient createClient(WebServiceMessageReceiver messageReceiver, WebServiceMessageFactory messageFactory) Creates aMockWebServiceClient
instance based on the givenWebServiceMessageReceiver
andWebServiceMessageFactory
.- Parameters:
messageReceiver
- the message receiver, typically aSoapMessageDispatcher
messageFactory
- the message factory- Returns:
- the created client
-
createClient
public static MockWebServiceClient createClient(org.springframework.context.ApplicationContext applicationContext) Creates aMockWebServiceClient
instance based on the givenApplicationContext
. This factory method works in a similar fashion as the standardMessageDispatcherServlet
. That is:- If a
WebServiceMessageReceiver
is configured in the given application context, it will use that. If no message receiver is configured, it will create a defaultSoapMessageDispatcher
. - If a
WebServiceMessageFactory
is configured in the given application context, it will use that. If no message factory is configured, it will create a defaultSaajSoapMessageFactory
.
- Parameters:
applicationContext
- the application context to base the client on- Returns:
- the created client
- If a
-
sendRequest
Sends a request message by using the givenRequestCreator
. Typically called by using the default request creators provided byRequestCreators
.- Parameters:
requestCreator
- the request creator- Returns:
- the response actions
- See Also:
-