"Test::Async::HTTP" - unit test code that uses "Net::Async::HTTP"
Contents
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 called
"X-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".
Name
"Test::Async::HTTP" - unit test code that uses "Net::Async::HTTP"
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.
