]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blobdiff - t/23-clear.t
This is 0.64
[perl/modules/Variable-Magic.git] / t / 23-clear.t
index 35a49dd0bad4395301be9b7eb33ff4412b904900..3af5545755e7e3e1585a10c04c4a280be1b7197e 100644 (file)
@@ -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<cast dispell>;
 
-my $c = 0;
-my $wiz = wizard clear => sub { ++$c };
-ok($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;
-ok($c == 0, 'clear : cast array');
+my @a = qw<a b c>;
 
-@a = ();
-ok($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;
-ok($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 = ();
-ok($c == 2, 'clear : clear hash');
-ok(!(keys %h), 'clear : clear hash correctly');
+ dispell @val, $wv;
+ is_deeply \@val, [ ], 'clear: value after';
+}