Commit | Line | Data |
8632b6fe |
1 | use strict; |
2 | use warnings; |
3 | use Test::More; |
33cc81a8 |
4 | plan skip_all => "This test requires Moose 0.91" unless eval { require Moose; Moose->VERSION(0.91); }; |
8632b6fe |
5 | plan tests => 6; |
6 | |
8632b6fe |
7 | { |
90fe520e |
8 | package MouseClass; |
3a63a2e7 |
9 | use Carp; # import external functions (not our methods) |
90fe520e |
10 | use Mouse; |
8632b6fe |
11 | sub foo { } |
90fe520e |
12 | no Mouse; |
8632b6fe |
13 | } |
14 | { |
90fe520e |
15 | package MouseClassImm; |
3a63a2e7 |
16 | use Carp; # import external functions (not our methods) |
90fe520e |
17 | use Mouse; |
8632b6fe |
18 | sub foo { } |
90fe520e |
19 | no Mouse; |
8632b6fe |
20 | __PACKAGE__->meta->make_immutable(); |
21 | } |
22 | { |
90fe520e |
23 | package MouseRole; |
3a63a2e7 |
24 | use Carp; # import external functions (not our methods) |
90fe520e |
25 | use Mouse::Role; |
8632b6fe |
26 | sub bar { } |
90fe520e |
27 | no Mouse::Role; |
8632b6fe |
28 | } |
90fe520e |
29 | { |
30 | package MouseRoleWithoutNoMouseRole; |
31 | use Mouse::Role; |
32 | |
33 | sub baz { } |
34 | # without no Mouse::Role; |
8632b6fe |
35 | } |
90fe520e |
36 | { |
37 | package MouseClassWithRole; |
38 | use Mouse; |
39 | |
40 | with 'MouseRole'; |
41 | no Mouse; |
42 | } |
43 | { |
44 | package MouseClassWithRoles; |
45 | use Mouse; |
46 | |
47 | with qw(MouseRole MouseRoleWithoutNoMouseRole); |
48 | } |
49 | |
50 | is join(',', sort MouseClass->meta->get_method_list()), 'foo,meta', "mutable Mouse"; |
51 | is join(',', sort MouseClassImm->meta->get_method_list()), 'DESTROY,foo,meta,new', "immutable Mouse"; |
52 | |
53 | is join(',', sort MouseRole->meta->get_method_list()), 'bar,meta', "role Mouse"; |
54 | is join(',', sort MouseRoleWithoutNoMouseRole->meta->get_method_list()), |
55 | 'baz,meta', "role Mouse"; |
56 | |
57 | is join(',', sort MouseClassWithRole->meta->get_method_list()), |
58 | 'bar,meta', "Mouse with a role"; |
59 | is join(',', sort MouseClassWithRoles->meta->get_method_list()), |
60 | 'bar,baz,meta', "Mouse with roles"; |
61 | |
8632b6fe |
62 | |