X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fsafe_isa.t;h=24af78dad7480eed093ea9973723255ec32a1691;hb=3f26844088a675a3d664adbcd7dffbaf0b2c8c39;hp=77b5bc00d06972d1848c122310121c7a9c5d6c49;hpb=c03ede634565ba88366e36ce5cacac3dabb35500;p=p5sagit%2FSafe-Isa.git diff --git a/t/safe_isa.t b/t/safe_isa.t index 77b5bc0..24af78d 100644 --- a/t/safe_isa.t +++ b/t/safe_isa.t @@ -1,9 +1,9 @@ use strict; use warnings; -use Test::More tests => 20; +use Test::More tests => 28; { package Foo; sub new { bless({}, $_[0]) } } -{ package Bar; our @ISA = qw(Foo); sub bar { 1 } } +{ package Bar; our @ISA = qw(Foo); sub bar { $_[1] } } my $foo = Foo->new; my $bar = Bar->new; @@ -27,15 +27,17 @@ use Safe::Isa; ok($foo->$_isa('Foo'), 'foo $_isa Foo'); ok($bar->$_isa('Foo'), 'bar $_isa Foo'); -ok(eval { $blam->$_isa('Foo'); 1 }, 'no boom today'); -ok(eval { $undef->$_isa('Foo'); 1 }, 'nor tomorrow either'); +ok(eval { is($blam->$_isa('Foo'), undef, 'blam isn\'t Foo'); 1 }, 'no boom today'); +ok(eval { is($undef->$_isa('Foo'), undef, 'undef isn\'t Foo either'); 1 }, 'and no boom tomorrow either'); ok(!$foo->$_can('bar'), 'foo !$_can bar'); ok($bar->$_can('bar'), 'bar $_can bar'); -ok(eval { $blam->$_can('bar'); 1 }, 'no boom today'); -ok(eval { $undef->$_can('bar'); 1 }, 'nor tomorrow either'); +ok(eval { is($blam->$_can('bar'), undef, 'blam can\'t bar'); 1 }, 'no boom today'); +ok(eval { is($undef->$_can('bar'), undef, 'undef can\'t bar either'); 1 }, 'and no boom tomorrow either'); ok($foo->$_call_if_object(isa => 'Foo'), 'foo $_call_if_object(isa => Foo)'); ok($bar->$_call_if_object(isa => 'Foo'), 'bar $_call_if_object(isa => Foo)'); -ok(eval { $blam->$_call_if_object(isa => 'Foo'); 1 }, 'no boom today'); -ok(eval { $undef->$_call_if_object(isa => 'Foo'); 1 }, 'nor tomorrow either'); +is($bar->$_call_if_object(bar => ), undef, 'bar $_call_if_object(bar => undef)'); +is($bar->$_call_if_object(bar => 2), 2, 'bar $_call_if_object(bar => 2)'); +ok(eval { is($blam->$_call_if_object(isa => 'Foo'), undef, 'blam can\'t call anything'); 1 }, 'no boom today'); +ok(eval { is($undef->$_call_if_object(isa => 'Foo'), undef, 'undef can\'t call anything'); 1 }, 'and no boom tomorrow either');