Replace CRLF to LF with all the files
[gitmo/Mouse.git] / t / 001_mouse / 055-exporter.t
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