3 use Test::More tests => 14;
5 use Variable::Magic qw/wizard gensig getsig cast dispell/;
9 my $wiz = eval { wizard sig => $sig };
10 ok(!$@, "wizard creation error ($@)");
11 ok(defined $wiz, 'wizard is defined');
12 ok(ref $wiz eq 'SCALAR', 'wizard is a scalar ref');
13 ok($sig == getsig $wiz, 'wizard signature is correct');
16 my $res = eval { cast $a, $wiz };
17 ok(!$@, "cast croaks ($@)");
18 ok($res, 'cast invalid');
20 $res = eval { dispell $a, $wiz };
21 ok(!$@, "dispell from wizard croaks ($@)");
22 ok($res, 'dispell from wizard invalid');
24 $res = eval { cast $a, $wiz };
25 ok(!$@, "re-cast croaks ($@)");
26 ok($res, 're-cast invalid');
28 $res = eval { dispell $a, $wiz };
29 ok(!$@, "re-dispell croaks ($@)");
30 ok($res, 're-dispell invalid');
34 my $wiz = wizard sig => $sig;
36 my $res = cast $b, $wiz;
39 $res = eval { cast $c, $sig };
40 ok(!$@, "cast from obsolete signature croaks ($@)");
41 ok(!defined($res), 'cast from obsolete signature returns undef');