X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F23-clear.t;h=3af5545755e7e3e1585a10c04c4a280be1b7197e;hb=ae89b589d2187cf0ed57bbb6132b9d4a8da29abb;hp=ec8f9aaf0bcb6a1998baf19c38a32b038ca3c3d8;hpb=a86e3e47a167afadf7de1231d6401a1139330ad0;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/t/23-clear.t b/t/23-clear.t index ec8f9aa..3af5545 100644 --- a/t/23-clear.t +++ b/t/23-clear.t @@ -3,28 +3,37 @@ use strict; use warnings; -use Test::More tests => 7; +use Test::More tests => (2 * 5 + 2) + (2 * 2 + 1) + 1; -use Variable::Magic qw/wizard cast/; +use Variable::Magic qw; -my $c = 0; -my $wiz = wizard clear => sub { ++$c }; -is($c, 0, 'clear : create wizard'); +use lib 't/lib'; +use Variable::Magic::TestWatcher; +use Variable::Magic::TestValue; -my @a = qw/a b c/; +my $wiz = init_watcher 'clear', 'clear'; -cast @a, $wiz; -is($c, 0, 'clear : cast array'); +my @a = qw; -@a = (); -is($c, 1, 'clear : clear array'); -ok(!defined $a[0], 'clear : clear array correctly'); +watch { cast @a, $wiz } { }, 'cast array'; + +watch { @a = () } { clear => 1 }, 'clear array'; +is_deeply \@a, [ ], 'clear: clear array correctly'; my %h = (foo => 1, bar => 2); -cast %h, $wiz; -is($c, 1, 'clear : cast hash'); +watch { cast %h, $wiz } { }, 'cast hash'; + +watch { %h = () } { clear => 1 }, 'clear hash'; +is_deeply \%h, { }, 'clear: clear hash correctly'; + +{ + my @val = (4 .. 6); + + my $wv = init_value @val, 'clear', 'clear'; + + value { @val = () } [ 4 .. 6 ]; -%h = (); -is($c, 2, 'clear : clear hash'); -ok(!(keys %h), 'clear : clear hash correctly'); + dispell @val, $wv; + is_deeply \@val, [ ], 'clear: value after'; +}