4 plan skip_all => "This test requires Moose 0.91" unless eval { require Moose; Moose->VERSION(0.91); };
9 use Carp; # import external functions (not our methods)
15 package MouseClassImm;
16 use Carp; # import external functions (not our methods)
20 __PACKAGE__->meta->make_immutable();
24 use Carp; # import external functions (not our methods)
30 package MouseRoleWithoutNoMouseRole;
34 # without no Mouse::Role;
37 package MouseClassWithRole;
44 package MouseClassWithRoles;
47 with qw(MouseRole MouseRoleWithoutNoMouseRole);
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";
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";
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";