AnyEvent-Consul

 view release on metacpan or  search on metacpan

t/30-error-cb.t  view on Meta::CPAN

use strict;

use Test::More;
use Test::Exception;

use AnyEvent::Consul;

{
    my $cv = AE::cv;

    my $global_error = 0;
    my $agent = AnyEvent::Consul->agent(error_cb => sub { $global_error++; $cv->send });
    ok $agent, "got Agent API object";

    lives_ok { $agent->members } "failing call with global error callback succeeds";
    $cv->recv;
    ok $global_error, "global error callback was called";
}

{
    my $cv = AE::cv;

    my $agent = AnyEvent::Consul->agent;
    ok $agent, "got Agent API object";

    my $error = 0;
    lives_ok { $agent->members(error_cb => sub { $error++; $cv->send }) } "failing call with error callback succeeds";
    $cv->recv;
    ok $error, "error callback was called";
}

=pod
{
    my $global_error = 0;
    my $agent = AnyEvent::Consul->agent(error_cb => sub { $global_error++ });
    ok $agent, "got Agent API object with global error callback";

    lives_ok { $agent->members } "failing call with global error callback succeeds";
    ok $global_error, "global error callback was called";

    {
        $global_error = 0;
        my $error = 0;
        lives_ok { $agent->members(error_cb => sub { $error++ }) } "failing call with error callback succeeds";
        ok $error, "error callback was called";
        ok !$global_error, "global error callback was not called";
    }
}
=cut

done_testing;



( run in 1.026 second using v1.01-cache-2.11-cpan-49f99fa48dc )