Async-Hooks

 view release on metacpan or  search on metacpan

t/10-ctl.t  view on Meta::CPAN

#!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 )