Net-Async-Webservice-Common

 view release on metacpan or  search on metacpan

t/tests/Net/Async/Webservice/Common/WithRequestWrapper.t  view on Meta::CPAN

                           content => 'some content',
                       ),
                   ),
                   fail_on_error => 1,
               },
               'request ok')
        or diag p $ua->last_call;
    ok(scalar($f->failure),'failure');
    cmp_deeply([$f->failure],
               [all(
                   isa('Net::Async::Webservice::Common::Exception::HTTPError'),
                   methods(
                       request => $ua->last_call->{request},
                       response => all(
                           isa('HTTP::Response'),
                           methods(
                               code => 404,
                               message => 'bad',
                           ),
                       ),
                       more_info => '',
                   ),
               ),'webservice'],
               'correct exception')
        or diag p $f->failure;
};

subtest 'raw request, other fail' => sub {
    $ua->next_result([
        'fail',
        'random failure',
    ]);
    my $f = $t->request(HTTP::Request->new(HEAD=>'/baz'));
    cmp_deeply($ua->last_call,
               {
                   request => all(
                       isa('HTTP::Request'),
                       methods(
                           uri => str('/baz'),
                           method => 'HEAD',
                       ),
                   ),
                   fail_on_error => 1,
               },
               'request ok')
        or diag p $ua->last_call;
    ok(scalar($f->failure),'failure');
    cmp_deeply([$f->failure],
               [all(
                   isa('Net::Async::Webservice::Common::Exception::HTTPError'),
                   methods(
                       request => $ua->last_call->{request},
                       response => undef,
                       more_info => 'random failure',
                   ),
               ),'webservice'],
               'correct exception')
        or diag p $f->failure;
};

my $has_ssl = eval "require IO::Socket::SSL";

subtest 'SSL' => sub {
    $ua->next_result([
        'done',
        HTTP::Response->new(200,'ok',[],'some content'),
    ]);
    my $f = $t->get('https://foo/');
    cmp_deeply($ua->last_call,
               {
                   request => all(
                       isa('HTTP::Request'),
                       methods(
                           uri => str('https://foo/'),
                           method => 'GET',
                       ),
                   ),
                   ( $has_ssl ? ( SSL_verify_mode => ignore() ) : () ),
                   fail_on_error => 1,
               },
               'request ok')
        or diag p $ua->last_call;
};

subtest 'SSL, custom options' => sub {
    my $t2 = TestPkg->new({user_agent=>$ua,ssl_options=>{SSL_something=>12}});
    $ua->next_result([
        'done',
        HTTP::Response->new(200,'ok',[],'some content'),
    ]);
    my $f = $t2->get('https://foo/');
    cmp_deeply($ua->last_call,
               {
                   request => all(
                       isa('HTTP::Request'),
                       methods(
                           uri => str('https://foo/'),
                           method => 'GET',
                       ),
                   ),
                   SSL_something => 12,
                   fail_on_error => 1,
               },
               'request ok')
        or diag p $ua->last_call;
};

done_testing;



( run in 0.767 second using v1.01-cache-2.11-cpan-39bf76dae61 )