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