Class AbstractRequestExpectationManager
- java.lang.Object
- org.springframework.test.web.client.AbstractRequestExpectationManager
- All Implemented Interfaces:
RequestExpectationManager
- Direct Known Subclasses:
SimpleRequestExpectationManager
,UnorderedRequestExpectationManager
public abstract class AbstractRequestExpectationManager extends Object implements RequestExpectationManager
Base class forRequestExpectationManager
implementations responsible for storing expectations and actual requests, and checking for unsatisfied expectations at the end.Subclasses are responsible for validating each request by matching it to to expectations following the order of declaration or not.
- Since:
- 4.3
- Author:
- Rossen Stoyanchev, Juergen Hoeller
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
AbstractRequestExpectationManager.RequestExpectationGroup
Helper class to manage a group of remaining expectations.
Constructor Summary
Constructors Constructor Description AbstractRequestExpectationManager()
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
afterExpectationsDeclared()
Invoked at the time of the first actual request, which effectively means the expectations declaration phase is over.protected AssertionError
createUnexpectedRequestError(ClientHttpRequest request)
Return anAssertionError
that a sub-class can raise for an unexpected request.ResponseActions
expectRequest(ExpectedCount count, RequestMatcher matcher)
Set up a new request expectation.protected List<RequestExpectation>
getExpectations()
Return a read-only list of the expectations.protected String
getRequestDetails()
Return details of executed requests.protected List<ClientHttpRequest>
getRequests()
Return a read-only list of requests executed so far.protected RequestExpectation
matchRequest(ClientHttpRequest request)
As of 5.0.3 subclasses should implement this method instead ofvalidateRequestInternal(ClientHttpRequest)
in order to match the request to an expectation, leaving the call to create the response as a separate step (to be invoked by this class).void
reset()
Reset the internal state removing all expectations and recorded requests.ClientHttpResponse
validateRequest(ClientHttpRequest request)
Validate the given actual request against the declared expectations.protected ClientHttpResponse
validateRequestInternal(ClientHttpRequest request)
Deprecated.as of 5.0.3, subclasses should implementmatchRequest(ClientHttpRequest)
instead and return only the matched expectation, leaving the call to create the response as a separate step (to be invoked by this class).void
verify()
Verify that all expectations have been met.
Constructor Detail
AbstractRequestExpectationManager
public AbstractRequestExpectationManager()
Method Detail
getExpectations
protected List<RequestExpectation> getExpectations()
Return a read-only list of the expectations.
getRequests
protected List<ClientHttpRequest> getRequests()
Return a read-only list of requests executed so far.
expectRequest
public ResponseActions expectRequest(ExpectedCount count, RequestMatcher matcher)
Description copied from interface:RequestExpectationManager
Set up a new request expectation. The returnedResponseActions
is used to add more expectations and define a response.This is a delegate for
MockRestServiceServer.expect(ExpectedCount, RequestMatcher)
.- Specified by:
expectRequest
in interfaceRequestExpectationManager
matcher
- a request expectation- Returns:
- for setting up further expectations and define a response
- See Also:
MockRestServiceServer.expect(RequestMatcher)
,MockRestServiceServer.expect(ExpectedCount, RequestMatcher)
validateRequest
public ClientHttpResponse validateRequest(ClientHttpRequest request) throws IOException
Description copied from interface:RequestExpectationManager
Validate the given actual request against the declared expectations. Is successful return the mock response to use or raise an error.This is used in
MockRestServiceServer
against actual requests.- Specified by:
validateRequest
in interfaceRequestExpectationManager
- Parameters:
request
- the request- Returns:
- the response to return if the request was validated.
- Throws:
IOException
- in case of any validation errors
afterExpectationsDeclared
protected void afterExpectationsDeclared()
Invoked at the time of the first actual request, which effectively means the expectations declaration phase is over.
validateRequestInternal
@Deprecated @Nullable protected ClientHttpResponse validateRequestInternal(ClientHttpRequest request) throws IOException
Deprecated.as of 5.0.3, subclasses should implementmatchRequest(ClientHttpRequest)
instead and return only the matched expectation, leaving the call to create the response as a separate step (to be invoked by this class).Subclasses must implement the actual validation of the request matching to declared expectations.- Throws:
IOException
matchRequest
protected RequestExpectation matchRequest(ClientHttpRequest request) throws IOException
As of 5.0.3 subclasses should implement this method instead ofvalidateRequestInternal(ClientHttpRequest)
in order to match the request to an expectation, leaving the call to create the response as a separate step (to be invoked by this class).- Parameters:
request
- the current request- Returns:
- the matched expectation with its request count updated via
RequestExpectation.incrementAndValidate()
. - Throws:
IOException
- Since:
- 5.0.3
verify
public void verify()
Description copied from interface:RequestExpectationManager
Verify that all expectations have been met.This is a delegate for
MockRestServiceServer.verify()
.- Specified by:
verify
in interfaceRequestExpectationManager
- See Also:
MockRestServiceServer.verify()
getRequestDetails
protected String getRequestDetails()
Return details of executed requests.
createUnexpectedRequestError
protected AssertionError createUnexpectedRequestError(ClientHttpRequest request)
Return anAssertionError
that a sub-class can raise for an unexpected request.
reset
public void reset()
Description copied from interface:RequestExpectationManager
Reset the internal state removing all expectations and recorded requests.This is a delegate for
MockRestServiceServer.reset()
.- Specified by:
reset
in interfaceRequestExpectationManager
- See Also:
MockRestServiceServer.reset()