X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F20-get.t;h=3411417dfb57116f9b05a63e8cbf219efd840f13;hb=ae89b589d2187cf0ed57bbb6132b9d4a8da29abb;hp=215b5df03b6bf44cc4a1baac1111f604a0b4e35b;hpb=77a84f75f33e3ee44e61182dec76699e23025375;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/t/20-get.t b/t/20-get.t index 215b5df..3411417 100644 --- a/t/20-get.t +++ b/t/20-get.t @@ -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; + +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; +}