Spring Web Services Framework

org.springframework.ws.test.server
Class MockWebServiceClient

java.lang.Object
  extended by org.springframework.ws.test.server.MockWebServiceClient

public class MockWebServiceClient
extends Object

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:

  1. Create a MockWebServiceClient instance by using createClient(ApplicationContext) or createClient(WebServiceMessageReceiver, WebServiceMessageFactory)
  2. Send request messages by calling sendRequest(RequestCreator), possibly by using the default RequestCreator implementations provided in RequestCreators (which can be statically imported).
  3. Set up response expectations by calling andExpect(ResponseMatcher), possibly by using the default ResponseMatcher implementations provided in ResponseMatchers (which can be statically imported). Multiple expectations can be set up by chaining andExpect() calls.
Note that because of the 'fluent' API offered by this class (and related classes), you can typically use the Code Completion features (i.e. ctrl-space) in your IDE to set up the mocks.

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.sendMessage(withPayload(requestPayload)).andExpect(payload(expectedResponsePayload));
   }
 }
 

Since:
2.0
Author:
Arjen Poutsma, Lukas Krecan

Method Summary
static MockWebServiceClient createClient(ApplicationContext applicationContext)
          Creates a MockWebServiceClient instance based on the given ApplicationContext.
static MockWebServiceClient createClient(WebServiceMessageReceiver messageReceiver, WebServiceMessageFactory messageFactory)
          Creates a MockWebServiceClient instance based on the given WebServiceMessageReceiver and WebServiceMessageFactory.
 ResponseActions sendRequest(RequestCreator requestCreator)
          Sends a request message by using the given RequestCreator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

createClient

public static MockWebServiceClient createClient(WebServiceMessageReceiver messageReceiver,
                                                WebServiceMessageFactory messageFactory)
Creates a MockWebServiceClient instance based on the given WebServiceMessageReceiver and WebServiceMessageFactory.

Parameters:
messageReceiver - the message receiver, typically a SoapMessageDispatcher
messageFactory - the message factory
Returns:
the created client

createClient

public static MockWebServiceClient createClient(ApplicationContext applicationContext)
Creates a MockWebServiceClient instance based on the given ApplicationContext. This factory method works in a similar fashion as the standard MessageDispatcherServlet. That is:

Parameters:
applicationContext - the application context to base the client on
Returns:
the created client

sendRequest

public ResponseActions sendRequest(RequestCreator requestCreator)
Sends a request message by using the given RequestCreator. Typically called by using the default request creators provided by RequestCreators.

Parameters:
requestCreator - the request creator
Returns:
the response actions
See Also:
RequestCreators

Spring Web Services Framework

Copyright © 2005-2013 The Spring Web Services Framework. All Rights Reserved.