Changelogging
[gitmo/Mouse.git] / t / 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
25 );\r
26\r
27 sub bar{ 200 }\r
28\r
29 $INC{'MyMouseEx.pm'}++;\r
30}\r
31\r
32can_ok 'MyMouse', qw(import unimport);\r
33can_ok 'MyMouseEx', qw(import unimport);\r
34\r
35{\r
36 package MyApp;\r
37 use Test::More;\r
38 use MyMouse;\r
39\r
40 can_ok __PACKAGE__, 'meta';\r
41 ok defined(&foo), 'foo is imported';\r
42 ok defined(&has), 'has is also imported';\r
43\r
44 no MyMouse;\r
45\r
46 ok !defined(&foo), 'foo is unimported';\r
47 ok !defined(&has), 'has is also unimported';\r
48}\r
49{\r
50 package MyAppEx;\r
51 use Test::More;\r
52 use MyMouseEx;\r
53\r
54 can_ok __PACKAGE__, 'meta';\r
55 ok defined(&foo), 'foo is imported';\r
56 ok defined(&bar), 'foo is also imported';\r
57 ok defined(&has), 'has is also imported';\r
58\r
59 no MyMouseEx;\r
60\r
61 ok !defined(&foo), 'foo is unimported';\r
62 ok !defined(&bar), 'foo is also unimported';\r
63 ok !defined(&has), 'has is also unimported';\r
64}\r