CPS

 view release on metacpan or  search on metacpan

t/05kpareach.t  view on Meta::CPAN

#!/usr/bin/perl

use strict;
use warnings;

use Test::More;

use CPS qw( kpareach );

my $result = "";

kpareach(
   [ "A", "B" ],
   sub { $result .= shift; shift->() },
   sub { $result .= "C"; }
);

is( $result, "ABC", 'kpareach sync' );

my @pokes;

$result = "";
kpareach(
   [ "A", "B" ],
   sub { $result .= shift; push @pokes, shift },
   sub { $result .= "C"; }
);

is( $result, "AB", 'kpareach async before pokes' );
is( scalar @pokes, 2, '2 pokes queued' );

(shift @pokes)->();

is( $result, "AB", 'kpareach async still unfinished after 1 poke' );

(shift @pokes)->();

is( $result, "ABC", 'kpareach async now finished after 2 pokes' );

done_testing;



( run in 0.912 second using v1.01-cache-2.11-cpan-c333fce770f )