Add my name to AUTHORS
[gitmo/Mouse.git] / t / 800_shikabased / 013-compatibility-get_method_list.t
CommitLineData
8632b6fe 1use strict;
2use warnings;
3use Test::More;
33cc81a8 4plan skip_all => "This test requires Moose 0.91" unless eval { require Moose; Moose->VERSION(0.91); };
8632b6fe 5plan 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
50is join(',', sort MouseClass->meta->get_method_list()), 'foo,meta', "mutable Mouse";
51is join(',', sort MouseClassImm->meta->get_method_list()), 'DESTROY,foo,meta,new', "immutable Mouse";
52
53is join(',', sort MouseRole->meta->get_method_list()), 'bar,meta', "role Mouse";
54is join(',', sort MouseRoleWithoutNoMouseRole->meta->get_method_list()),
55 'baz,meta', "role Mouse";
56
57is join(',', sort MouseClassWithRole->meta->get_method_list()),
58 'bar,meta', "Mouse with a role";
59is join(',', sort MouseClassWithRoles->meta->get_method_list()),
60 'bar,baz,meta', "Mouse with roles";
61
8632b6fe 62