X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F35-stash.t;fp=t%2F35-stash.t;h=43155eb200fddee3957cd62edb5ee62367be096b;hb=9fc034651e3b744e316d0de98c5f9054ede59752;hp=f52dd321d853117c380ab6ea2887cf13716bfa58;hpb=7d38c99468da03e65d5e4ab0784222cf39fba3b4;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/t/35-stash.t b/t/35-stash.t index f52dd32..43155eb 100644 --- a/t/35-stash.t +++ b/t/35-stash.t @@ -9,7 +9,7 @@ use Variable::Magic qw/wizard cast dispell VMG_UVAR VMG_OP_INFO_NAME VMG_OP_INFO my $run; if (VMG_UVAR) { - plan tests => 29; + plan tests => 33; $run = 1; } else { plan skip_all => 'uvar magic is required to test symbol table hooks'; @@ -106,6 +106,17 @@ cast %Hlagh::, $wiz; }, 'stash: valid method call'; } +{ + local %mg; + + eval q{ my $meth = 'shoot'; Hlagh->$meth() }; + + is $@, '', 'stash: valid dynamic method call ran fine'; + is_deeply \%mg, { + store => [ qw/shoot/ ], + }, 'stash: valid dynamic method call'; +} + { local %mg; @@ -119,7 +130,7 @@ cast %Hlagh::, $wiz; is $@, '', 'inherited valid method call ran fine'; is_deeply \%mg, { fetch => [ qw/ISA shoot/ ], - }, 'stash: direct method call'; + }, 'stash: inherited valid method call'; } { @@ -134,6 +145,17 @@ cast %Hlagh::, $wiz; }, 'stash: invalid method call'; } +{ + local %mg; + + eval q{ my $meth = 'unknown_too'; Hlagh->$meth() }; + + like $@, qr/^Can't locate object method "unknown_too" via package "Hlagh"/, 'stash: invalid dynamic method call croaked'; + is_deeply \%mg, { + store => [ qw/unknown_too AUTOLOAD/ ], + }, 'stash: invalid dynamic method call'; +} + { local %mg;