X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F14-callbacks.t;fp=t%2F14-callbacks.t;h=a34549a55f5c792631392ecf8f1094d4f5cf3fb2;hb=fee1a480bc5d827590dc7394e0a77741bad86dc3;hp=0000000000000000000000000000000000000000;hpb=751094f5d7b43171afc7104e957ca7fe2d21eb34;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/t/14-callbacks.t b/t/14-callbacks.t new file mode 100644 index 0000000..a34549a --- /dev/null +++ b/t/14-callbacks.t @@ -0,0 +1,28 @@ +#!perl -T + +use strict; +use warnings; + +use Test::More tests => 7; + +use Variable::Magic qw/wizard cast/; + +my $wiz = eval { wizard get => sub { undef } }; +ok(!$@, "wizard creation error ($@)"); +ok(defined $wiz, 'wizard is defined'); +ok(ref $wiz eq 'SCALAR', 'wizard is a scalar ref'); + +my $n = int rand 1000; +my $a = $n; + +my $res = eval { cast $a, $wiz }; +ok(!$@, "cast croaks ($@)"); +ok($res, 'cast invalid'); + +my $x; +eval { + local $SIG{__WARN__} = sub { die }; + $x = $a +}; +ok(!$@, 'callback returning undef croaks'); +ok(defined($x) && ($x == $n), 'callback returning undef fails');