Class ClientPOJOAdapter
- Direct Known Subclasses:
ClassicTestClientAdapter
This adapter expects a request to be made up of POJOs such as Maps and Lists. In Groovy the request could be expressed like this:
def request = [ path : "a/path", method : "GET", query : [ parm1 : "1", parm2 : "2", ] headers : [ header1 : "stuff", header2 : "more_stuff", ] contentType : "application/json", body : '{"location" : "home" }', ]
The adapter will translate this request into calls specific to a particular HTTP client.
The response is then returned with POJOs with this structure:
def response = [ status : 200, headers : [ header1 : "response_stuff", ] contentType : "application/json", body : '{"location" : "work" }', ]
- Since:
- 5.0
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
assertRequestSupported
(Map<String, Object> request) Assert that the request is supportedcheckRequestSupport
(Map<String, Object> request) Check if a request is supported.Execute an HTTP request.abstract String
Name of the HTTP Client that this adapter uses.modifyRequest
(Map<String, Object> request) Modify the request.
-
Field Details
-
BODY
- See Also:
-
CONTENT_TYPE
- See Also:
-
HEADERS
- See Also:
-
METHOD
- See Also:
-
NAME
- See Also:
-
PATH
- See Also:
-
PROTOCOL_VERSION
- See Also:
-
QUERY
- See Also:
-
REQUEST
- See Also:
-
RESPONSE
- See Also:
-
STATUS
- See Also:
-
TIMEOUT
- See Also:
-
-
Constructor Details
-
ClientPOJOAdapter
public ClientPOJOAdapter()
-
-
Method Details
-
getClientName
Name of the HTTP Client that this adapter uses.- Returns:
- name of the HTTP Client.
-
execute
public abstract Map<String,Object> execute(String defaultURI, Map<String, Object> request) throws ExceptionExecute an HTTP request.- Parameters:
defaultURI
- the URI used by default. The path in the request is usually appended to it.request
- the request as specified above.- Returns:
- the response to the request as specified above.
- Throws:
Exception
- in case of a problem
-
checkRequestSupport
Check if a request is supported.
Usually called directly by a testing framework. If an HTTP client does not support a particular request, a non-null reason should be returned. Otherwise, if the request is supported, return null.
If this method is overridden, then the execute method should probably call assertRequestSupported() at the beginning.
- Parameters:
request
- the request as specified above.- Returns:
- null if the request is supported; Otherwise, return a reason.
-
assertRequestSupported
Assert that the request is supported
Usually called by the execute method. Throws an exception if the request is not supported.
- Parameters:
request
- the request as specified above.- Throws:
Exception
- if the request is not supported.
-
modifyRequest
Modify the request.
In a testing context, a testing framework can call this method to allow the adapter to change the request. The request is then given to a special request handler of the in-process HttpServer which will later check an actual HTTP request against what is expected.
In a production context, this is called by the execute method (if at all).
- Parameters:
request
- the request as specified above.- Returns:
- the same request or a modification of it.
-