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 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'.

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>