NAME
Test::Async::HTTP
- unit test code that uses Net::Async::HTTP
DESCRIPTION
This module implements a mock version of Net::Async::HTTP suitable for unit tests that virtualises the actual HTTP request/response cycle, allowing the unit test script to inspect the requests made and provide responses to them.
METHODS
$f = $http->do_request( %args )
Implements the actual Net::Async::HTTP request API.
The following arguments are handled specially:
timeout
The value of a
timeout
argument is captured as an extra header on the request object calledX-NaHTTP-Timeout
.stall_timeout
expect_continue
SSL
These arguments are entirely ignored.
$response = $http->GET( $uri, %args )->get
$response = $http->HEAD( $uri, %args )->get
$response = $http->PUT( $uri, $content, %args )->get
$response = $http->POST( $uri, $content, %args )->get
Convenient wrappers for using the GET
, HEAD
, PUT
or POST
methods with a URI
object and few if any other arguments, returning a Future
.
Remember that POST
with non-form data (as indicated by a plain scalar instead of an ARRAY
reference of form data name/value pairs) needs a content_type
key in %args
.
$p = $http->next_pending
Returns the next pending request wrapper object if one is outstanding (due to an earlier call to do_request
), or undef
.
PENDING REQUEST OBJECTS
Objects returned by next_pending
respond to the following methods:
$request = $p->request
Returns the HTTP::Request object underlying this pending request.
$p->respond( $resp )
Makes the request complete with the given HTTP::Response response. This response is given to the Future that had been returned by the do_request
method.
$p->respond_header( $header )
$p->respond_more( $data )
$p->respond_done
Alternative to the single respond
method, to allow an equivalent of chunked encoding response. respond_header
responds with the header and initial content, followed by multiple calls to respond_more
to provide more body content, until a final respond_done
call finishes the request.
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>