From: Dave Rolsky Date: Fri, 27 Aug 2010 15:27:24 +0000 (-0500) Subject: Add tests to make sure that changing the stash is reflected in the cached namespace X-Git-Tag: 0.07~4 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=0a5166afdae1044a3722b5d241ecdc3228dbd370;p=gitmo%2FPackage-Stash.git Add tests to make sure that changing the stash is reflected in the cached namespace --- diff --git a/t/01-basic.t b/t/01-basic.t index efd82b4..5112b11 100644 --- a/t/01-basic.t +++ b/t/01-basic.t @@ -270,4 +270,58 @@ dies_ok { is($stash->get_package_symbol('foo'), *Baz::foo{IO}, "got foo"); } +{ + package Quux; + + our $foo = 23; + our @foo = "bar"; + our %foo = (baz => 1); + sub foo { } + open *foo, '<', $0; +} + +{ + my $stash = Package::Stash->new('Quux'); + + my %expect = ( + '$foo' => \23, + '@foo' => ["bar"], + '%foo' => { baz => 1 }, + '&foo' => \&Quux::foo, + 'foo' => *Quux::foo{IO}, + ); + + for my $sym ( sort keys %expect ) { + is_deeply( + $stash->get_package_symbol($sym), + $expect{$sym}, + "got expected value for $sym" + ); + } + + $stash->add_package_symbol('%bar' => {x => 42}); + + $expect{'%bar'} = {x => 42}; + + for my $sym ( sort keys %expect ) { + is_deeply( + $stash->get_package_symbol($sym), + $expect{$sym}, + "got expected value for $sym" + ); + } + + $stash->add_package_symbol('%bar' => {x => 43}); + + $expect{'%bar'} = {x => 43}; + + for my $sym ( sort keys %expect ) { + is_deeply( + $stash->get_package_symbol($sym), + $expect{$sym}, + "got expected value for $sym" + ); + } +} + done_testing;