X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F14-callbacks.t;h=c599b2fe7dc69bf6c027408e4f488e598e7eeb12;hb=a4e7b4c7ea392db794d6729cfeb792c445edcb06;hp=eb72559acbf75e4afe8e9688b01aa1662a2c7d00;hpb=4a23afbd13837f7054d2d5e206d207b44cef9e3a;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/t/14-callbacks.t b/t/14-callbacks.t index eb72559..c599b2f 100644 --- a/t/14-callbacks.t +++ b/t/14-callbacks.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 12; +use Test::More tests => 17; use Variable::Magic qw/wizard cast/; @@ -27,6 +27,24 @@ eval { is($@, '', 'callback returning undef doesn\'t warn/croak'); is($x, $n, 'callback returning undef fails'); +{ + my $c = 0; + sub X::wat { ++$c } + my $wiz = eval { wizard get => \'X::wat' }; + is($@, '', 'wizard with a string callback doesn\'t croak'); + my $b = $n; + my $res = eval { cast $b, $wiz }; + is($@, '', 'cast a wizard with a string callback doesn\'t croak'); + my $x; + eval { + local $SIG{__WARN__} = sub { die }; + $x = $b; + }; + is($@, '', 'string callback doesn\'t warn/croak'); + is($c, 1, 'string callback is called'); + is($x, $n, 'string callback returns the right thing'); +} + my @callers; $wiz = wizard get => sub { my @c;