Commit | Line | Data |
346a3ab8 |
1 | #!perl |
2 | use strict; |
3 | use warnings; |
4 | use Test::More tests => 14; |
5 | |
6 | use Mouse (); |
7 | |
8 | BEGIN{ |
9 | package MyMouse; |
10 | use Mouse; |
11 | Mouse::Exporter->setup_import_methods( |
12 | as_is => [qw(foo)], |
13 | also => [qw(Mouse)], |
14 | ); |
15 | |
16 | sub foo{ 100 } |
17 | |
18 | $INC{'MyMouse.pm'}++; |
19 | |
20 | package MyMouseEx; |
21 | use Mouse; |
22 | Mouse::Exporter->setup_import_methods( |
23 | as_is => [\&bar], |
24 | also => [qw(MyMouse)], |
25 | |
26 | # groups => { |
27 | # foobar_only => [qw(foo bar)], |
28 | # }, |
29 | ); |
30 | |
31 | sub bar{ 200 } |
32 | |
33 | $INC{'MyMouseEx.pm'}++; |
34 | } |
35 | |
36 | can_ok 'MyMouse', qw(import unimport); |
37 | can_ok 'MyMouseEx', qw(import unimport); |
38 | |
39 | { |
40 | package MyApp; |
41 | use Test::More; |
42 | use MyMouse; |
43 | |
44 | can_ok __PACKAGE__, 'meta'; |
45 | ok defined(&foo), 'foo is imported'; |
46 | ok defined(&has), 'has is also imported'; |
47 | |
48 | no MyMouse; |
49 | |
50 | ok !defined(&foo), 'foo is unimported'; |
51 | ok !defined(&has), 'has is also unimported'; |
52 | } |
53 | { |
54 | package MyAppEx; |
55 | use Test::More; |
56 | use MyMouseEx; |
57 | |
58 | can_ok __PACKAGE__, 'meta'; |
59 | ok defined(&foo), 'foo is imported'; |
60 | ok defined(&bar), 'foo is also imported'; |
61 | ok defined(&has), 'has is also imported'; |
62 | |
63 | no MyMouseEx; |
64 | |
65 | ok !defined(&foo), 'foo is unimported'; |
66 | ok !defined(&bar), 'foo is also unimported'; |
67 | ok !defined(&has), 'has is also unimported'; |
68 | } |
69 | |
70 | # exporting groups are not implemented in Moose::Exporter |
71 | #{ |
72 | # package MyAppExTags; |
73 | # use Test::More; |
74 | # use MyMouseEx qw(:foobar_only); |
75 | # |
76 | # can_ok __PACKAGE__, 'meta'; |
77 | # ok defined(&foo); |
78 | # ok defined(&bar); |
79 | # ok!defined(&has), "export tags"; |
80 | #} |
81 | |