X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F13-data.t;h=bc4248e9e4f05d54a2fdfad687ef0a4366f3c806;hb=ae89b589d2187cf0ed57bbb6132b9d4a8da29abb;hp=a67b79cfa57e9aa6cd9103c0ad0e6df51caf3a48;hpb=9437b104a81a44b562437da8d5d3c64b61b6a29a;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/t/13-data.t b/t/13-data.t index a67b79c..bc4248e 100644 --- a/t/13-data.t +++ b/t/13-data.t @@ -3,16 +3,14 @@ use strict; use warnings; -use Test::More tests => 38; +use Test::More tests => 35; -use Variable::Magic qw/wizard getdata cast dispell SIG_MIN/; +use Variable::Magic qw; my $c = 1; -my $sig = SIG_MIN; my $wiz = eval { - wizard sig => $sig, - data => sub { return { foo => $_[1] || 12, bar => $_[3] || 27 } }, + wizard data => sub { return { foo => $_[1] || 12, bar => $_[3] || 27 } }, get => sub { $c += $_[1]->{foo}; $_[1]->{foo} = $c }, set => sub { $c += $_[1]->{bar}; $_[1]->{bar} = $c } }; @@ -25,21 +23,15 @@ my $res = eval { cast $a, $wiz }; is($@, '', 'cast doesn\'t croak'); ok($res, 'cast returns true'); -my $data = eval { getdata $a, $wiz }; -is($@, '', 'getdata from wizard doesn\'t croak'); -ok($res, 'getdata from wizard returns true'); -is_deeply($data, { foo => 12, bar => 27 }, - 'getdata from wizard return value is ok'); - -$data = eval { getdata my $b, $wiz }; +my $data = eval { getdata my $b, $wiz }; is($@, '', 'getdata from non-magical scalar doesn\'t croak'); is($data, undef, 'getdata from non-magical scalar returns undef'); -$data = eval { getdata $a, $sig }; -is($@, '', 'getdata from sig doesn\'t croak'); -ok($res, 'getdata from sig returns true'); +$data = eval { getdata $a, $wiz }; +is($@, '', 'getdata from wizard doesn\'t croak'); +ok($res, 'getdata from wizard returns true'); is_deeply($data, { foo => 12, bar => 27 }, - 'getdata from sig return value is ok'); + 'getdata from wizard return value is ok'); my $b = $a; is($c, 13, 'get magic : pass data'); @@ -49,9 +41,9 @@ $a = 57; is($c, 40, 'set magic : pass data'); is($data->{bar}, 40, 'set magic : pass data'); -$data = eval { getdata $a, ($sig + 1) }; -like($@, qr/Invalid\s+wizard\s+object\s+at\s+\Q$0\E/, 'getdata from invalid sig croaks'); -is($data, undef, 'getdata from invalid sig returns undef'); +$data = eval { getdata $a, \"blargh" }; +like($@, qr/Invalid\s+wizard\s+object\s+at\s+\Q$0\E/, 'getdata from invalid wizard croaks'); +is($data, undef, 'getdata from invalid wizard returns undef'); $data = eval { getdata $a, undef }; like($@, qr/Invalid\s+wizard\s+object\s+at\s+\Q$0\E/, 'getdata from undef croaks'); @@ -61,7 +53,7 @@ $res = eval { dispell $a, $wiz }; is($@, '', 'dispell doesn\'t croak'); ok($res, 'dispell returns true'); -$res = eval { cast $a, $wiz, qw/z j t/ }; +$res = eval { cast $a, $wiz, qw }; is($@, '', 'cast with arguments doesn\'t croak'); ok($res, 'cast with arguments returns true'); @@ -71,16 +63,17 @@ ok($res, 'getdata from wizard with arguments returns true'); is_deeply($data, { foo => 'z', bar => 't' }, 'getdata from wizard with arguments return value is ok'); +dispell $a, $wiz; + $wiz = wizard get => sub { }; -dispell $a, $sig; $a = 63; $res = eval { cast $a, $wiz }; is($@, '', 'cast non-data wizard doesn\'t croak'); ok($res, 'cast non-data wizard returns true'); -$data = eval { getdata $a, $wiz }; -is($@, '', 'getdata from non-data wizard doesn\'t croak'); -is($data, undef, 'getdata from non-data wizard invalid returns undef'); +my @data = eval { getdata $a, $wiz }; +is($@, '', 'getdata from non-data wizard doesn\'t croak'); +is_deeply(\@data, [ ], 'getdata from non-data wizard invalid returns undef'); $wiz = wizard data => sub { ++$_[1] }; my ($di, $ei) = (1, 10);