1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
use v5.10;
use strict;
use warnings;
use Test2::V0;
use Future;
# wrap
{
my $f = Future->new;
my $future = Future->wrap( $f );
ok( defined $future, 'Future->wrap(Future) defined' );
isa_ok( $future, [ "Future" ], 'Future->wrap(Future)' );
$f->done( "Wrapped Future" );
is( scalar $future->result, "Wrapped Future", 'Future->wrap(Future)->result' );
$future = Future->wrap( "Plain string" );
ok( defined $future, 'Future->wrap(string) defined' );
isa_ok( $future, [ "Future" ], 'Future->wrap(string)' );
is( scalar $future->result, "Plain string", 'Future->wrap(string)->result' );
}
# unwrap
{
is( [ Future->unwrap( Future->done( 1, 2, 3 ) ) ],
[ 1, 2, 3 ],
'Future->unwrap Future in list context' );
is( [ Future->unwrap( 1, 2, 3 ) ],
[ 1, 2, 3 ],
'Future->unwrap plain list in list context' );
is( scalar Future->unwrap( Future->done( qw( a b c ) ) ),
"a",
'Future->unwrap Future in scalar context' );
is( scalar Future->unwrap( qw( a b c ) ),
"a",
'Future->unwrap plain list in scalar context' );
}
done_testing;
|