From 0a5166afdae1044a3722b5d241ecdc3228dbd370 Mon Sep 17 00:00:00 2001 From: Dave Rolsky Date: Fri, 27 Aug 2010 10:27:24 -0500 Subject: Add tests to make sure that changing the stash is reflected in the cached namespace --- t/01-basic.t | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 't/01-basic.t') 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; -- cgit v1.2.3-54-g00ecf