f197ca6acb5000d7270ce70675608ca23da30306
[gitmo/Mouse.git] / t / 800_shikabased / 013-compatibility-get_method_list.t
1 use strict;
2 use warnings;
3 use Test::More;
4 plan skip_all => "This test requires Moose 0.91" unless eval { require Moose; Moose->VERSION(0.91); };
5 plan tests => 6;
6
7 {
8     package MouseClass;
9     use Carp; # import external functions (not our methods)
10     use Mouse;
11     sub foo { }
12     no Mouse;
13 }
14 {
15     package MouseClassImm;
16     use Carp; # import external functions (not our methods)
17     use Mouse;
18     sub foo { }
19     no Mouse;
20     __PACKAGE__->meta->make_immutable();
21 }
22 {
23     package MouseRole;
24     use Carp; # import external functions (not our methods)
25     use Mouse::Role;
26     sub bar { }
27     no Mouse::Role;
28 }
29 {
30     package MouseRoleWithoutNoMouseRole;
31     use Mouse::Role;
32
33     sub baz { }
34     # without no Mouse::Role;
35 }
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
62