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