]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blobdiff - t/20-get.t
This is 0.64
[perl/modules/Variable-Magic.git] / t / 20-get.t
index 215b5df03b6bf44cc4a1baac1111f604a0b4e35b..3411417dfb57116f9b05a63e8cbf219efd840f13 100644 (file)
@@ -1,23 +1,35 @@
 #!perl -T
 
-use Test::More tests => 6;
+use strict;
+use warnings;
 
-use Variable::Magic qw/wizard cast/;
+use Test::More tests => (2 * 4 + 2) + (2 * 2) + 1;
 
-my $c = 0;
-my $wiz = wizard get => sub { ++$c };
-ok($c == 0, 'get : create wizard');
+use Variable::Magic qw<cast>;
+
+use lib 't/lib';
+use Variable::Magic::TestWatcher;
+use Variable::Magic::TestValue;
+
+my $wiz = init_watcher 'get', 'get';
 
 my $n = int rand 1000;
 my $a = $n;
 
-cast $a, $wiz;
-ok($c == 0, 'get : cast');
+watch { cast $a, $wiz } { }, 'cast';
+
+my $b;
+# $b has to be set inside the block for the test to pass on 5.8.3 and lower
+watch { $b = $a } { get => 1 }, 'assign to';
+is $b, $n, 'get: assign to correctly';
+
+$b = watch { "X${a}Y" } { get => 1 }, 'interpolate';
+is $b, "X${n}Y", 'get: interpolate correctly';
+
+{
+ my $val = 0;
 
-my $b = $a;
-ok($c == 1, 'get : assign to');
-ok($b == $n, 'get : assign to correctly');
+ init_value $val, 'get', 'get';
 
-$b = "X${a}Y";
-ok($c == 2, 'get : interpolate');
-ok($b eq "X${n}Y", 'get : interpolate correctly');
+ value { my $x = $val } \0;
+}