Skip tests for strict constructor on Moose
[gitmo/Mouse.git] / t / 001_mouse / 055-exporter.t
CommitLineData
346a3ab8 1#!perl
2use strict;
3use warnings;
4use Test::More tests => 14;
5
6use Mouse ();
7
8BEGIN{
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
36can_ok 'MyMouse', qw(import unimport);
37can_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