1#!/usr/bin/perl 2 3use v5.10; 4use strict; 5use warnings; 6 7use Test::More; 8 9use Future; 10use Future::Queue; 11 12# push before shift 13{ 14 my $queue = Future::Queue->new; 15 16 $queue->push( "ITEM" ); 17 18 my $f = $queue->shift; 19 ok( $f->is_done, '$queue->shift already ready' ); 20 is( $f->result, "ITEM", '$queue->shift->result' ); 21} 22 23# shift before push 24{ 25 my $queue = Future::Queue->new; 26 27 my $f = $queue->shift; 28 ok( !$f->is_done, '$queue->shift not yet ready' ); 29 30 $queue->push( "ITEM" ); 31 32 ok( $f->is_done, '$queue->shift now ready after push' ); 33 is( $f->result, "ITEM", '$queue->shift->result' ); 34} 35 36done_testing; 37