fix list_all_package_symbols
[gitmo/Package-Stash-PP.git] / t / 03-io.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4 use Test::More;
5 use Test::Fatal;
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
21 use Package::Stash;
22
23 {
24     my $stash = Package::Stash->new('Foo');
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 {
33     my $stash = Package::Stash->new('Bar');
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 {
42     my $stash = Package::Stash->new('Baz');
43     ok(!exception {
44         $stash->add_package_symbol('baz', *Foo::foo{IO});
45     }, "can add an IO symbol");
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;