#!/usr/bin/perl use strict; use Test::More 'no_plan'; use_ok( 'Brick::Bucket' ); # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ok( defined &Brick::Bucket::__compose_satisfy_none, "__compose_satisfy_none defined" ); ok( defined &Brick::Bucket::__none, "__none defined" ); # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # my $false_sub = sub { die {} }; my $true_sub = sub { 1 }; my $empty_string_sub = sub { die {} }; my $undef_sub = sub { die {} }; my $die_sub = sub { die { handler => 'die_sub', message => 'I die for no good reason other than I like it', } }; # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # use lib qw( t/lib ); use_ok( 'Mock::Bucket' ); my $bucket = Mock::Bucket->new; isa_ok( $bucket, 'Mock::Bucket' ); isa_ok( $bucket, Mock::Bucket->bucket_class ); # test both names foreach my $sub_name ( qw(__compose_satisfy_none __none) ) { # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # try it with one sub { my $sub = $bucket->$sub_name( $false_sub ); isa_ok( $sub, ref sub {}, "$sub_name returns a code ref" ); my $result = eval { $sub->({}) }; is( $result, 1, "Satisfied no tests (that's good)" ); } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # try it with two subs { my $sub = $bucket->$sub_name( $false_sub, $undef_sub ); isa_ok( $sub, ref sub {}, "$sub_name returns a code ref" ); my $result = eval { $sub->({}) }; is( $result, 1, "Satisfied no tests (that's good)" ); } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # try it with three subs { my $sub = $bucket->$sub_name( $false_sub, $undef_sub, $empty_string_sub ); isa_ok( $sub, ref sub {}, "$sub_name returns a code ref" ); my $result = eval { $sub->({}) }; is( $result, 1, "Satisfied no tests (that's good)" ); } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # try it with some subs that pass { my $sub = $bucket->$sub_name( $false_sub, $undef_sub, $empty_string_sub, $true_sub ); isa_ok( $sub, ref sub {}, "$sub_name returns a code ref" ); my $result = eval { $sub->({}) }; ok( ! $result, "Satisfied something (that's bad)" ); } }