public class MockServerClient extends Object implements Stoppable
Modifier and Type | Field and Description |
---|---|
protected CompletableFuture<Integer> |
portFuture |
Constructor and Description |
---|
MockServerClient(CompletableFuture<Integer> portFuture)
Start the client communicating to a MockServer on localhost at the port
specified with the Future
|
MockServerClient(String host,
int port)
Start the client communicating to a MockServer at the specified host and port
for example:
|
MockServerClient(String host,
int port,
String contextPath)
Start the client communicating to a MockServer at the specified host and port
and contextPath for example:
|
Modifier and Type | Method and Description |
---|---|
List<Integer> |
bind(Integer... ports)
Bind new ports to listen on
|
MockServerClient |
clear(HttpRequest httpRequest)
Clear all expectations and logs that match the http
|
MockServerClient |
clear(HttpRequest httpRequest,
ClearType type)
Clear expectations, logs or both that match the http
|
void |
close() |
String |
contextPath() |
boolean |
hasStarted()
Returns whether MockServer has started, if called after MockServer has been stopped
this method will block for 5 seconds while confirming that MockServer is not starting
|
boolean |
hasStarted(int attempts,
long timeout,
TimeUnit timeUnit)
Returns whether server MockServer has started, by polling the MockServer a configurable amount of times
|
boolean |
hasStopped()
Returns whether MockServer has stopped, if called too quickly after starting MockServer
this may return false because MockServer has not yet started, to ensure MockServer has
started use hasStarted()
|
boolean |
hasStopped(int attempts,
long timeout,
TimeUnit timeUnit)
Returns whether server MockServer has stopped, by polling the MockServer a configurable
amount of times.
|
boolean |
isRunning()
Deprecated.
use hasStopped() or hasStarted() instead
|
boolean |
isRunning(int attempts,
long timeout,
TimeUnit timeUnit)
Deprecated.
use hasStopped() or hasStarted() instead
|
boolean |
isSecure() |
InetSocketAddress |
remoteAddress() |
MockServerClient |
reset()
Reset MockServer by clearing all expectations
|
Expectation[] |
retrieveActiveExpectations(HttpRequest httpRequest)
Retrieve the active expectations match the httpRequest parameter, use null for the parameter to retrieve all expectations
|
String |
retrieveActiveExpectations(HttpRequest httpRequest,
Format format)
Retrieve the active expectations match the httpRequest parameter, use null for the parameter to retrieve all expectations
|
String |
retrieveLogMessages(HttpRequest httpRequest)
Retrieve the logs associated to a specific requests, this shows all logs for expectation matching, verification, clearing, etc
|
String[] |
retrieveLogMessagesArray(HttpRequest httpRequest)
Retrieve the logs associated to a specific requests, this shows all logs for expectation matching, verification, clearing, etc
|
Expectation[] |
retrieveRecordedExpectations(HttpRequest httpRequest)
Retrieve the request-response combinations that have been recorded as a list of expectations, only those that match the httpRequest parameter are returned, use null to retrieve all requests
|
String |
retrieveRecordedExpectations(HttpRequest httpRequest,
Format format)
Retrieve the request-response combinations that have been recorded as a list of expectations, only those that match the httpRequest parameter are returned, use null to retrieve all requests
|
HttpRequest[] |
retrieveRecordedRequests(HttpRequest httpRequest)
Retrieve the recorded requests that match the httpRequest parameter, use null for the parameter to retrieve all requests
|
String |
retrieveRecordedRequests(HttpRequest httpRequest,
Format format)
Retrieve the recorded requests that match the httpRequest parameter, use null for the parameter to retrieve all requests
|
LogEventRequestAndResponse[] |
retrieveRecordedRequestsAndResponses(HttpRequest httpRequest)
Retrieve the recorded requests and responses that match the httpRequest parameter, use null for the parameter to retrieve all requests and responses
|
String |
retrieveRecordedRequestsAndResponses(HttpRequest httpRequest,
Format format)
Retrieve the recorded requests that match the httpRequest parameter, use null for the parameter to retrieve all requests
|
void |
sendExpectation(Expectation... expectations)
Deprecated.
this is deprecated due to unclear naming, use method upsert(Expectation... expectations) instead
|
MockServerClient |
setRequestOverride(HttpRequest requestOverride) |
void |
stop()
Stop MockServer gracefully (only support for Netty version, not supported for WAR version)
|
Future<MockServerClient> |
stop(boolean ignoreFailure)
Stop MockServer gracefully (only support for Netty version, not supported for WAR version)
|
Future<MockServerClient> |
stopAsync()
Stop MockServer gracefully (only support for Netty version, not supported for WAR version)
|
void |
upsert(Expectation... expectations)
Specify one or more expectations to be create, or updated (if the id matches).
|
MockServerClient |
verify(HttpRequest... httpRequests)
Verify a list of requests have been sent in the order specified for example:
|
MockServerClient |
verify(HttpRequest httpRequest,
VerificationTimes times)
Verify a request has been sent for example:
|
MockServerClient |
verifyZeroInteractions()
Verify no requests have been sent.
|
ForwardChainExpectation |
when(HttpRequest httpRequest)
Specify an unlimited expectation that will respond regardless of the number of matching http
for example:
|
ForwardChainExpectation |
when(HttpRequest httpRequest,
Times times)
Specify a limited expectation that will respond a specified number of times when the http is matched
|
ForwardChainExpectation |
when(HttpRequest httpRequest,
Times times,
TimeToLive timeToLive)
Specify a limited expectation that will respond a specified number of times when the http is matched
|
ForwardChainExpectation |
when(HttpRequest httpRequest,
Times times,
TimeToLive timeToLive,
Integer priority)
Specify a limited expectation that will respond a specified number of times when the http is matched and will be matched according to priority as follows:
|
MockServerClient |
withSecure(boolean secure) |
protected CompletableFuture<Integer> portFuture
public MockServerClient(CompletableFuture<Integer> portFuture)
portFuture
- the port for the MockServer to communicate withpublic MockServerClient(String host, int port)
MockServerClient mockServerClient = new MockServerClient("localhost", 1080);
host
- the host for the MockServer to communicate withport
- the port for the MockServer to communicate withpublic MockServerClient(String host, int port, String contextPath)
MockServerClient mockServerClient = new MockServerClient("localhost", 1080, "/mockserver");
host
- the host for the MockServer to communicate withport
- the port for the MockServer to communicate withcontextPath
- the context path that the MockServer war is deployed topublic MockServerClient setRequestOverride(HttpRequest requestOverride)
public boolean isSecure()
public MockServerClient withSecure(boolean secure)
public InetSocketAddress remoteAddress()
public String contextPath()
@Deprecated public boolean isRunning()
@Deprecated public boolean isRunning(int attempts, long timeout, TimeUnit timeUnit)
public boolean hasStopped()
public boolean hasStopped(int attempts, long timeout, TimeUnit timeUnit)
public boolean hasStarted()
public boolean hasStarted(int attempts, long timeout, TimeUnit timeUnit)
public Future<MockServerClient> stopAsync()
public void stop()
public Future<MockServerClient> stop(boolean ignoreFailure)
public void close()
close
in interface Closeable
close
in interface AutoCloseable
public MockServerClient reset()
public MockServerClient clear(HttpRequest httpRequest)
httpRequest
- the http request that is matched against when deciding whether to clear each expectation if null all expectations are clearedpublic MockServerClient clear(HttpRequest httpRequest, ClearType type)
httpRequest
- the http request that is matched against when deciding whether to clear each expectation if null all expectations are clearedtype
- the type to clear, EXPECTATION, LOG or BOTHpublic MockServerClient verify(HttpRequest... httpRequests) throws AssertionError
mockServerClient .verify( request() .withPath("/first_request") .withBody("some_request_body"), request() .withPath("/second_request") .withBody("some_request_body") );
httpRequests
- the http requests that must be matched for this verification to passAssertionError
- if the request has not been foundpublic MockServerClient verify(HttpRequest httpRequest, VerificationTimes times) throws AssertionError
mockServerClient .verify( request() .withPath("/some_path") .withBody("some_request_body"), VerificationTimes.exactly(3) );VerificationTimes supports multiple static factory methods:
once() - verify the request was only received once exactly(n) - verify the request was only received exactly n times atLeast(n) - verify the request was only received at least n times
httpRequest
- the http request that must be matched for this verification to passtimes
- the number of times this request must be matchedAssertionError
- if the request has not been foundpublic MockServerClient verifyZeroInteractions() throws AssertionError
AssertionError
- if any request has been foundpublic HttpRequest[] retrieveRecordedRequests(HttpRequest httpRequest)
httpRequest
- the http request that is matched against when deciding whether to return each request, use null for the parameter to retrieve for all requestspublic String retrieveRecordedRequests(HttpRequest httpRequest, Format format)
httpRequest
- the http request that is matched against when deciding whether to return each request, use null for the parameter to retrieve for all requestsformat
- the format to retrieve the expectations, either JAVA or JSONpublic LogEventRequestAndResponse[] retrieveRecordedRequestsAndResponses(HttpRequest httpRequest)
httpRequest
- the http request that is matched against when deciding whether to return each request (and its corresponding response), use null for the parameter to retrieve for all requestspublic String retrieveRecordedRequestsAndResponses(HttpRequest httpRequest, Format format)
httpRequest
- the http request that is matched against when deciding whether to return each request, use null for the parameter to retrieve for all requestsformat
- the format to retrieve the expectations, either JAVA or JSONpublic Expectation[] retrieveRecordedExpectations(HttpRequest httpRequest)
httpRequest
- the http request that is matched against when deciding whether to return each request, use null for the parameter to retrieve for all requestspublic String retrieveRecordedExpectations(HttpRequest httpRequest, Format format)
httpRequest
- the http request that is matched against when deciding whether to return each request, use null for the parameter to retrieve for all requestsformat
- the format to retrieve the expectations, either JAVA or JSONpublic String retrieveLogMessages(HttpRequest httpRequest)
httpRequest
- the http request that is matched against when deciding whether to return each request, use null for the parameter to retrieve for all requestspublic String[] retrieveLogMessagesArray(HttpRequest httpRequest)
httpRequest
- the http request that is matched against when deciding whether to return each request, use null for the parameter to retrieve for all requestspublic ForwardChainExpectation when(HttpRequest httpRequest)
mockServerClient .when( request() .withPath("/some_path") .withBody("some_request_body") ) .respond( response() .withBody("some_response_body") .withHeader("responseName", "responseValue") )
httpRequest
- the http request that must be matched for this expectation to respondpublic ForwardChainExpectation when(HttpRequest httpRequest, Times times)
Example use:
mockServerClient .when( request() .withPath("/some_path") .withBody("some_request_body"), Times.exactly(5) ) .respond( response() .withBody("some_response_body") .withHeader("responseName", "responseValue") )
httpRequest
- the http request that must be matched for this expectation to respondtimes
- the number of times to respond when this http is matchedpublic ForwardChainExpectation when(HttpRequest httpRequest, Times times, TimeToLive timeToLive)
Example use:
mockServerClient .when( request() .withPath("/some_path") .withBody("some_request_body"), Times.exactly(5), TimeToLive.exactly(TimeUnit.SECONDS, 120) ) .respond( response() .withBody("some_response_body") .withHeader("responseName", "responseValue") )
httpRequest
- the http request that must be matched for this expectation to respondtimes
- the number of times to respond when this http is matchedtimeToLive
- the length of time from when the server receives the expectation that the expectation should be activepublic ForwardChainExpectation when(HttpRequest httpRequest, Times times, TimeToLive timeToLive, Integer priority)
- higher priority expectation will be matched first - identical priority expectations will be match in the order they were submitted - default priority is 0
Example use:
mockServerClient .when( request() .withPath("/some_path") .withBody("some_request_body"), Times.exactly(5), TimeToLive.exactly(TimeUnit.SECONDS, 120), 10 ) .respond( response() .withBody("some_response_body") .withHeader("responseName", "responseValue") )
httpRequest
- the http request that must be matched for this expectation to respondtimes
- the number of times to respond when this http is matchedtimeToLive
- the length of time from when the server receives the expectation that the expectation should be activepriority
- the priority for the expectation when matching, higher priority expectation will be matched first, identical priority expectations will be match in the order they were submittedpublic void upsert(Expectation... expectations)
This method should be used to update existing expectation by id. All fields will be updated for expectations with a matching id as the existing expectation is deleted and recreated.
To retrieve the id(s) for existing expectation(s) the retrieveActiveExpectations(HttpRequest httpRequest) method can be used.
Typically, to create expectations this method should not be used directly instead the when(...) and response(...) or forward(...) or error(...) methods should be used for example:
mockServerClient .when( request() .withPath("/some_path") .withBody("some_request_body"), Times.exactly(5), TimeToLive.exactly(TimeUnit.SECONDS, 120) ) .respond( response() .withBody("some_response_body") .withHeader("responseName", "responseValue") )
expectations
- one or more expectations to create or update (if the id field matches)@Deprecated public void sendExpectation(Expectation... expectations)
mockServerClient .when( request() .withPath("/some_path") .withBody("some_request_body"), Times.exactly(5), TimeToLive.exactly(TimeUnit.SECONDS, 120) ) .respond( response() .withBody("some_response_body") .withHeader("responseName", "responseValue") )
expectations
- one or more expectationspublic Expectation[] retrieveActiveExpectations(HttpRequest httpRequest)
httpRequest
- the http request that is matched against when deciding whether to return each expectation, use null for the parameter to retrieve for all requestspublic String retrieveActiveExpectations(HttpRequest httpRequest, Format format)
httpRequest
- the http request that is matched against when deciding whether to return each expectation, use null for the parameter to retrieve for all requestsformat
- the format to retrieve the expectations, either JAVA or JSONCopyright © 2020. All rights reserved.