Commit | Line | Data |
8632b6fe |
1 | use strict; |
2 | use warnings; |
3 | use Test::More; |
4 | plan skip_all => "This test requires Moose" unless eval "require Moose; 1;"; |
5 | plan tests => 6; |
6 | |
7 | test($_) for qw/Moose Mouse/; |
8 | exit; |
9 | |
10 | sub test { |
11 | my $class = shift; |
12 | eval <<"..."; |
13 | { |
14 | package ${class}Class; |
15 | use ${class}; |
16 | sub foo { } |
17 | no ${class}; |
18 | } |
19 | { |
20 | package ${class}ClassImm; |
21 | use ${class}; |
22 | sub foo { } |
23 | no ${class}; |
24 | __PACKAGE__->meta->make_immutable(); |
25 | } |
26 | { |
27 | package ${class}Role; |
28 | use ${class}::Role; |
29 | sub bar { } |
30 | } |
31 | ... |
32 | die $@ if $@; |
33 | is join(',', sort "${class}Class"->meta->get_method_list()), 'foo,meta'; |
34 | is join(',', sort "${class}ClassImm"->meta->get_method_list()), 'foo,meta,new'; |
35 | is join(',', sort "${class}Role"->meta->get_method_list()), 'bar'; |
36 | } |
37 | |