Async-Hooks
view release on metacpan or search on metacpan
#!perl
use strict;
use warnings;
use Test::More;
use Test::Deep;
use Test::Fatal;
use Async::Hooks::Ctl;
my %called;
sub reset_called { %called = () }
sub mark1 {
$called{'mark1'}++;
return $_[0]->decline;
}
sub mark2 {
$called{'mark2'}++;
return $_[0]->declined;
}
sub mark3 {
$called{'mark3'}++;
return $_[0]->next;
}
sub bad_mark1 {
$called{'bad_mark1'}++;
return;
}
sub done1 {
$called{'done1'}++;
return $_[0]->done;
}
sub done2 {
$called{'done2'}++;
return $_[0]->stop;
}
sub later1 {
my ($ctl, $args) = @_;
$called{'later1'}++;
${$args->[0]} = $ctl;
return;
}
sub cleanup {
$called{'cleanup'}++;
}
subtest 'test arguments' => sub {
my $ctl = Async::Hooks::Ctl->new();
cmp_deeply($ctl->args, []);
reset_called();
is(exception { $ctl->next }, undef);
cmp_deeply(\%called, {});
$ctl = Async::Hooks::Ctl->new([], [1, 2, 3]);
cmp_deeply($ctl->args, [1, 2, 3]);
reset_called();
is(exception { $ctl->decline }, undef);
( run in 0.842 second using v1.01-cache-2.11-cpan-54e63673c56 )