X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F22-magic.t;h=cc8e497b30892328dd65509421cf6f0c6c9323b6;hb=edb71e7af0ed10c8b114f0aaab25ff1b20d4d99e;hp=80bee6f757bee1b4dbb106e3b79b99ba5af80544;hpb=9d25b8ce853695abb629ba78f5645462a21abf0d;p=perl%2Fmodules%2FLexical-Types.git diff --git a/t/22-magic.t b/t/22-magic.t index 80bee6f..cc8e497 100644 --- a/t/22-magic.t +++ b/t/22-magic.t @@ -5,15 +5,17 @@ use warnings; use Test::More; +use lib 't/lib'; +use VPIT::TestHelpers; + BEGIN { - plan skip_all => 'Variable::Magic required to test magic' - unless eval "use Variable::Magic; 1"; + load_or_skip('Variable::Magic', undef, [ ], 'required to test magic'); } { package Lexical::Types::Test::Str; - use Variable::Magic qw/wizard cast/; + use Variable::Magic qw; our $wiz; BEGIN { @@ -28,7 +30,7 @@ BEGIN { { package Str; } BEGIN { - plan tests => 2 * 6; + plan tests => 2 * 8; } use Lexical::Types as => 'Lexical::Types::Test'; @@ -39,7 +41,8 @@ sub check (&$$;$) { my $want = wantarray; my @ret; { - local @{$got}{qw/get set/}; delete @{$got}{qw/get set/}; + local @{$got}{qw}; + delete @{$got}{qw}; if ($want) { @ret = eval { $test->() }; } elsif (defined $want) { @@ -47,11 +50,18 @@ sub check (&$$;$) { } else { eval { $test->() }; } + local $Test::Builder::Level = $Test::Builder::Level + 1; is_deeply $got, $exp, $desc; } return $want ? @ret : $ret[0]; } +sub zzz { + my $d = Variable::Magic::getdata($_[0], $Lexical::Types::Test::Str::wiz); + isnt $d, undef, 'typed lexicals are tagged'; + is ref($d), 'HASH', 'typed lexicals are correctly tagged'; +} + for (1 .. 2) { my Str $x = "abc"; @@ -64,4 +74,6 @@ for (1 .. 2) { my Str $z; check { $z = "bar" . $x } $z, { set => 1 }, 'scalar assign'; is $z, 'barabcfoo', 'scalar assign correctly'; + + zzz($z); }