Move is_valid_class_name into XS
[gitmo/Mouse.git] / t / 001_mouse / 813-compatibility-get_method_list.t
CommitLineData
8632b6fe 1use strict;
2use warnings;
5ad574d9 3use Test::More tests => 6;
8632b6fe 4
8632b6fe 5{
90fe520e 6 package MouseClass;
3a63a2e7 7 use Carp; # import external functions (not our methods)
90fe520e 8 use Mouse;
8632b6fe 9 sub foo { }
90fe520e 10 no Mouse;
8632b6fe 11}
12{
90fe520e 13 package MouseClassImm;
3a63a2e7 14 use Carp; # import external functions (not our methods)
90fe520e 15 use Mouse;
8632b6fe 16 sub foo { }
90fe520e 17 no Mouse;
7efbc77d 18 __PACKAGE__->meta->make_immutable();
8632b6fe 19}
20{
90fe520e 21 package MouseRole;
3a63a2e7 22 use Carp; # import external functions (not our methods)
90fe520e 23 use Mouse::Role;
8632b6fe 24 sub bar { }
90fe520e 25 no Mouse::Role;
8632b6fe 26}
90fe520e 27{
28 package MouseRoleWithoutNoMouseRole;
29 use Mouse::Role;
30
31 sub baz { }
32 # without no Mouse::Role;
8632b6fe 33}
90fe520e 34{
35 package MouseClassWithRole;
36 use Mouse;
37
38 with 'MouseRole';
39 no Mouse;
40}
41{
42 package MouseClassWithRoles;
43 use Mouse;
44
45 with qw(MouseRole MouseRoleWithoutNoMouseRole);
46}
47
48is join(',', sort MouseClass->meta->get_method_list()), 'foo,meta', "mutable Mouse";
49is join(',', sort MouseClassImm->meta->get_method_list()), 'DESTROY,foo,meta,new', "immutable Mouse";
50
51is join(',', sort MouseRole->meta->get_method_list()), 'bar,meta', "role Mouse";
52is join(',', sort MouseRoleWithoutNoMouseRole->meta->get_method_list()),
53 'baz,meta', "role Mouse";
54
55is join(',', sort MouseClassWithRole->meta->get_method_list()),
56 'bar,meta', "Mouse with a role";
57is join(',', sort MouseClassWithRoles->meta->get_method_list()),
58 'bar,baz,meta', "Mouse with roles";
59
8632b6fe 60