use Scalar::Util 'isweak';
use Test::More;
-use Test::Exception;
+use Test::Fatal;
{
my $baz = Baz->new;
isa_ok($baz, 'Baz');
- lives_ok {
+ is( exception {
$foo->bar($bar);
- } '... did not die setting bar';
+ }, undef, '... did not die setting bar' );
is($foo->bar, $bar, '... set the value foo.bar correctly');
is($bar->foo, $foo, '... which in turn set the value bar.foo correctly');
ok(isweak($bar->{foo}), '... bar.foo is a weak reference');
- lives_ok {
+ is( exception {
$foo->bar(undef);
- } '... did not die un-setting bar';
+ }, undef, '... did not die un-setting bar' );
is($foo->bar, undef, '... set the value foo.bar correctly');
is($bar->foo, $foo, '... which in turn set the value bar.foo correctly');
# test the writer
- lives_ok {
+ is( exception {
$foo->set_baz($baz);
- } '... did not die setting baz';
+ }, undef, '... did not die setting baz' );
is($foo->get_baz, $baz, '... set the value foo.baz correctly');
is($baz->foo, $foo, '... which in turn set the value baz.foo correctly');
package Bling;
use Moose;
- ::dies_ok {
+ ::isnt( ::exception {
has('bling' => (is => 'rw', trigger => 'Fail'));
- } '... a trigger must be a CODE ref';
+ }, undef, '... a trigger must be a CODE ref' );
- ::dies_ok {
+ ::isnt( ::exception {
has('bling' => (is => 'rw', trigger => []));
- } '... a trigger must be a CODE ref';
+ }, undef, '... a trigger must be a CODE ref' );
}
# Triggers do not fire on built values
{
my $blarg;
- lives_ok { $blarg = Blarg->new; } 'Blarg->new() lives';
+ is( exception { $blarg = Blarg->new; }, undef, 'Blarg->new() lives' );
ok($blarg, 'Have a $blarg');
foreach my $attr (qw/foo bar baz/) {
is($blarg->$attr(), "default $attr value", "$attr has default value");
is_deeply(\%Blarg::trigger_calls, { map { $_ => 1 } qw/foo bar baz/ }, 'All triggers fired once on assign');
is_deeply(\%Blarg::trigger_vals, { map { $_ => "Different $_ value" } qw/foo bar baz/ }, 'All triggers given assigned values');
- lives_ok { $blarg => Blarg->new( map { $_ => "Yet another $_ value" } qw/foo bar baz/ ) } '->new() with parameters';
+ is( exception { $blarg => Blarg->new( map { $_ => "Yet another $_ value" } qw/foo bar baz/ ) }, undef, '->new() with parameters' );
is_deeply(\%Blarg::trigger_calls, { map { $_ => 2 } qw/foo bar baz/ }, 'All triggers fired once on construct');
is_deeply(\%Blarg::trigger_vals, { map { $_ => "Yet another $_ value" } qw/foo bar baz/ }, 'All triggers given assigned values');
}