Refactoring
[gitmo/Mouse.git] / t / 800_shikabased / 013-compatibility-get_method_list.t
CommitLineData
8632b6fe 1use strict;
2use warnings;
3use Test::More;
7d987c56 4plan skip_all => "This test requires Moose 0.81" unless eval { require Moose; Moose->VERSION(0.81); };
8632b6fe 5plan tests => 6;
6
7test($_) for qw/Moose Mouse/;
8exit;
9
10sub test {
11 my $class = shift;
12 eval <<"...";
13{
14 package ${class}Class;
3a63a2e7 15 use Carp; # import external functions (not our methods)
8632b6fe 16 use ${class};
17 sub foo { }
18 no ${class};
19}
20{
21 package ${class}ClassImm;
3a63a2e7 22 use Carp; # import external functions (not our methods)
8632b6fe 23 use ${class};
24 sub foo { }
25 no ${class};
26 __PACKAGE__->meta->make_immutable();
27}
28{
29 package ${class}Role;
3a63a2e7 30 use Carp; # import external functions (not our methods)
8632b6fe 31 use ${class}::Role;
32 sub bar { }
3a63a2e7 33 no ${class}::Role;
8632b6fe 34}
35...
36 die $@ if $@;
e578d610 37 is join(',', sort "${class}Class"->meta->get_method_list()), 'foo,meta', "mutable $class";
38 is join(',', sort "${class}ClassImm"->meta->get_method_list()), 'DESTROY,foo,meta,new', "immutable $class";
faa45e54 39 is join(',', sort "${class}Role"->meta->get_method_list()), 'bar,meta', "role $class";
8632b6fe 40}
41