1#!/usr/bin/perl
2
3use v5.10;
4use strict;
5use warnings;
6
7use Test::More;
8use Test::Fatal;
9
10use Test::Future::Deferred;
11
12# done
13{
14   my $f = Test::Future::Deferred->done_later( "result" );
15
16   ok( !$f->is_done, '$f not yet ready' );
17   is( scalar $f->get, "result", '$f->get yields result anyway' );
18}
19
20# fail
21{
22   my $f = Test::Future::Deferred->fail_later( "oops\n" );
23
24   ok( !$f->is_failed, '$f not yet ready' );
25   is( exception { $f->get }, "oops\n", '$f->get throws exception anyway' );
26}
27
28# failure
29{
30   my $f = Test::Future::Deferred->fail_later( "oops\n" );
31
32   ok( !$f->is_failed, '$f not yet ready' );
33   is( $f->failure, "oops\n", '$f->failure returns exception anyway' );
34}
35
36done_testing;
37