The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

use strict;
use warnings;

use Test::More tests => 9;

use HTTP::Request;

use HTTP::Async;
my $q = HTTP::Async->new;

# Try to add some requests for bad hosts. HTTP::Async should not fail
# but should return HTTP::Responses with the correct status code etc.

my @bad_requests =
  map { HTTP::Request->new( GET => $_ ) }
  ( 'http://i.dont.exist/foo/bar', 'ftp://wrong.protocol.com/foo/bar' );

ok $q->add(@bad_requests), "Added bad requests";

while ( $q->not_empty ) {
    my $res = $q->next_response || next;

    isa_ok $res, 'HTTP::Response', "Got a proper response";
    ok !$res->is_success, "Response was not a success";
    ok $res->is_error, "Response was an error";
    ok $res->request,  "response has a request attached.";
}