public class MockWebServiceServer extends Object
WebServiceTemplate, set up expectations on request messages, and create response messages.
The typical usage of this class is:
MockWebServiceServer instance by calling createServer(WebServiceTemplate),
createServer(WebServiceGatewaySupport), or createServer(ApplicationContext).
expect(RequestMatcher), possibly by using the default
RequestMatcher implementations provided in RequestMatchers (which can be statically imported).
Multiple expectations can be set up by chaining ResponseActions.andExpect(RequestMatcher) calls.andRespond(ResponseCreator), possibly by using the default
ResponseCreator implementations provided in ResponseCreators (which can be statically imported).WebServiceTemplate as normal, either directly of through client code.verify().For example:
import org.junit.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.xml.transform.StringSource;
import org.springframework.ws.test.client.MockWebServiceServer;
import static org.springframework.ws.test.client.RequestMatchers.*;
import static org.springframework.ws.test.client.ResponseCreators.*;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("applicationContext.xml")
public class MyWebServiceClientIntegrationTest {
// MyWebServiceClient extends WebServiceGatewaySupport, and is configured in applicationContext.xml
@Autowired
private MyWebServiceClient client;
private MockWebServiceServer mockServer;
@Before
public void createServer() throws Exception {
mockServer = MockWebServiceServer.createServer(client);
}
@Test
public void getCustomerCount() throws Exception {
Source expectedRequestPayload =
new StringSource("<customerCountRequest xmlns=\"http://springframework.org/spring-ws/test\" />");
Source responsePayload = new StringSource("<customerCountResponse xmlns='http://springframework.org/spring-ws/test'>" +
"<customerCount>10</customerCount>" +
"</customerCountResponse>");
mockServer.expect(payload(expectedRequestPayload)).andRespond(withPayload(responsePayload));
// client.getCustomerCount() uses the WebServiceTemplate
int customerCount = client.getCustomerCount();
assertEquals(10, response.getCustomerCount());
mockServer.verify();
}
}
| Modifier and Type | Method and Description |
|---|---|
static MockWebServiceServer |
createServer(ApplicationContext applicationContext)
Creates a
MockWebServiceServer instance based on the given ApplicationContext. |
static MockWebServiceServer |
createServer(WebServiceGatewaySupport gatewaySupport)
Creates a
MockWebServiceServer instance based on the given WebServiceGatewaySupport. |
static MockWebServiceServer |
createServer(WebServiceTemplate webServiceTemplate)
Creates a
MockWebServiceServer instance based on the given WebServiceTemplate. |
ResponseActions |
expect(RequestMatcher requestMatcher)
Records an expectation specified by the given
RequestMatcher. |
void |
verify()
Verifies that all expectations were met.
|
public static MockWebServiceServer createServer(WebServiceTemplate webServiceTemplate)
MockWebServiceServer instance based on the given WebServiceTemplate.webServiceTemplate - the web service templatepublic static MockWebServiceServer createServer(WebServiceGatewaySupport gatewaySupport)
MockWebServiceServer instance based on the given WebServiceGatewaySupport.gatewaySupport - the client classpublic static MockWebServiceServer createServer(ApplicationContext applicationContext)
MockWebServiceServer instance based on the given ApplicationContext.
This factory method will try and find a configured WebServiceTemplate in the given application context.
If no template can be found, it will try and find a WebServiceGatewaySupport, and use its configured
template. If neither can be found, an exception is thrown.
applicationContext - the application context to base the client onIllegalArgumentException - if the given application context contains neither a WebServiceTemplate
nor a WebServiceGatewaySupport.public ResponseActions expect(RequestMatcher requestMatcher)
RequestMatcher. Returns a ResponseActions object
that allows for creating the response, or to set up more expectations.requestMatcher - the request matcher expectedpublic void verify()
AssertionError - in case of unmet expectations