Commit | Line | Data |
56a29840 |
1 | #!/usr/bin/env perl |
2 | use strict; |
3 | use warnings; |
4 | use Test::More; |
13f4d7c3 |
5 | use Test::Fatal; |
56a29840 |
6 | |
7 | { |
8 | package Foo; |
9 | open *foo, "<", $0; |
10 | |
11 | sub foo { } |
12 | } |
13 | |
14 | { |
15 | package Bar; |
16 | open *bar, "<", $0; |
17 | |
18 | sub bar { } |
19 | } |
20 | |
e94260da |
21 | use Package::Stash; |
56a29840 |
22 | |
23 | { |
e94260da |
24 | my $stash = Package::Stash->new('Foo'); |
56a29840 |
25 | ok($stash->has_package_symbol('&foo'), "has &foo"); |
26 | ok($stash->has_package_symbol('foo'), "has foo"); |
27 | $stash->remove_package_symbol('&foo'); |
28 | ok(!$stash->has_package_symbol('&foo'), "has &foo"); |
29 | ok($stash->has_package_symbol('foo'), "has foo"); |
30 | } |
31 | |
32 | { |
e94260da |
33 | my $stash = Package::Stash->new('Bar'); |
56a29840 |
34 | ok($stash->has_package_symbol('&bar'), "has &bar"); |
35 | ok($stash->has_package_symbol('bar'), "has bar"); |
36 | $stash->remove_package_symbol('bar'); |
37 | ok($stash->has_package_symbol('&bar'), "has &bar"); |
38 | ok(!$stash->has_package_symbol('bar'), "has bar"); |
39 | } |
40 | |
41 | { |
e94260da |
42 | my $stash = Package::Stash->new('Baz'); |
13f4d7c3 |
43 | ok(!exception { |
56a29840 |
44 | $stash->add_package_symbol('baz', *Foo::foo{IO}); |
13f4d7c3 |
45 | }, "can add an IO symbol"); |
56a29840 |
46 | ok($stash->has_package_symbol('baz'), "has baz"); |
47 | is($stash->get_package_symbol('baz'), *Foo::foo{IO}, "got the right baz"); |
48 | } |
49 | |
50 | done_testing; |