summaryrefslogtreecommitdiffstats
path: root/t/04-get.t
diff options
context:
space:
mode:
Diffstat (limited to 't/04-get.t')
-rw-r--r--t/04-get.t66
1 files changed, 66 insertions, 0 deletions
diff --git a/t/04-get.t b/t/04-get.t
new file mode 100644
index 0000000..ebeb864
--- /dev/null
+++ b/t/04-get.t
@@ -0,0 +1,66 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+
+use Package::Stash;
+
+{
+ BEGIN {
+ my $stash = Package::Stash->new('Foo');
+ my $val = $stash->get_package_symbol('%foo');
+ is($val, undef, "got nothing yet");
+ }
+ {
+ no warnings 'void', 'once';
+ %Foo::foo;
+ }
+ BEGIN {
+ my $stash = Package::Stash->new('Foo');
+ my $val = $stash->get_package_symbol('%foo');
+ is(ref($val), 'HASH', "got something");
+ $val->{bar} = 1;
+ is_deeply($stash->get_package_symbol('%foo'), {bar => 1},
+ "got the right variable");
+ }
+}
+
+{
+ BEGIN {
+ my $stash = Package::Stash->new('Bar');
+ my $val = $stash->get_package_symbol('@foo');
+ is($val, undef, "got something");
+ }
+ {
+ no warnings 'void', 'once';
+ @Bar::foo;
+ }
+ BEGIN {
+ my $stash = Package::Stash->new('Bar');
+ my $val = $stash->get_package_symbol('@foo');
+ is(ref($val), 'ARRAY', "got something");
+ push @$val, 1;
+ is_deeply($stash->get_package_symbol('@foo'), [1],
+ "got the right variable");
+ }
+}
+
+{
+ my $stash = Package::Stash->new('Baz');
+ my $val = $stash->get_or_add_package_symbol('%foo');
+ is(ref($val), 'HASH', "got something");
+ $val->{bar} = 1;
+ is_deeply($stash->get_or_add_package_symbol('%foo'), {bar => 1},
+ "got the right variable");
+}
+
+{
+ my $stash = Package::Stash->new('Quux');
+ my $val = $stash->get_or_add_package_symbol('@foo');
+ is(ref($val), 'ARRAY', "got something");
+ push @$val, 1;
+ is_deeply($stash->get_or_add_package_symbol('@foo'), [1],
+ "got the right variable");
+}
+
+done_testing;