#!/usr/bin/perl
use Test::More 'no_plan';
use Test::Output;
use_ok( 'Brick::General' );
use_ok( 'Brick::Bucket' );
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 );
ok( defined &Brick::Bucket::__make_constraint, "Method is defined" );
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# call it from a subroutine with a leading underscore
sub _leading_underscore
{
# this should give a warning
$bucket->__make_constraint( sub {} );
}
my $result;
stderr_like { eval { _leading_underscore() } } qr/leading underscore/,
"Making a constraint from a leading underscore carps";
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# call it without a sub argument
{
my $obj = bless {}, 'Foo';
sub Foo::isa { 0 }
my $result = eval { $bucket->__make_constraint( $obj ) };
is( $result, undef, "Result is undefined" );
ok( $@, "\$@ set is undefined" );
}