use Test::Exception tests => 9 * 15;
use Object::Deadly;
use Symbol 'gensym';
for my $obj (
Object::Deadly->new,
Object::Deadly->new('a message'),
Object::Deadly->new_with(
do { my $v; \$v }
),
Object::Deadly->new_with( [] ),
Object::Deadly->new_with( {} ),
Object::Deadly->new_with(qr//),
Object::Deadly->new_with( sub { } ),
Object::Deadly->new_with( \*STDIN ),
Object::Deadly->new_with(gensym)
)
{
lives_ok { Object::Deadly->new } '->DESTROY lives';
my $obj = Object::Deadly->new('XXX');
dies_ok { $obj->import('...') } '->import dies';
dies_ok { $obj->isa('...') } '->isa dies';
dies_ok { $obj->can('...') } '->can dies';
dies_ok { $obj->DOES('...') } '->DOES dies';
dies_ok { $obj->VERSION } '->VERSION dies';
dies_ok { $obj->require } '->require dies';
dies_ok {"$obj"} '"$obj" dies';
dies_ok { 0 + $obj } '0+$obj dies';
dies_ok { !$obj } 'not($obj) dies';
for my $sigil (qw( $ @ % & * )) {
eval "dies_ok { $sigil\$obj } '$sigil\$obj dies'";
die $@ if $@;
}
}