File: 26wrap-unwrap.pl

package info (click to toggle)
libfuture-perl 0.52-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 676 kB
  • sloc: perl: 4,636; makefile: 2
file content (46 lines) | stat: -rw-r--r-- 1,154 bytes parent folder | download | duplicates (2)
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;