Commit | Line | Data |
1e7a7baa |
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 => 4; |
6 | |
7 | test('Moose'); |
8 | test('Mouse'); |
9 | exit; |
10 | |
11 | sub test { |
12 | my $class = shift; |
13 | eval <<"..."; |
14 | { |
15 | package ${class}Parent; |
16 | use ${class}; |
17 | sub parent_method { 'ok' } |
18 | } |
19 | |
20 | { |
21 | package ${class}ChildRole; |
22 | use ${class}::Role; |
23 | use base qw/${class}Parent/; |
24 | sub conflict { "role's" } |
25 | } |
26 | |
27 | { |
28 | package ${class}Class; |
29 | use ${class}; |
30 | with '${class}ChildRole'; |
31 | sub conflict { "class's" } |
32 | } |
33 | ... |
34 | die $@ if $@; |
35 | ok !"${class}Class"->can('parent_method'); |
36 | is "${class}Class"->conflict(), "class's"; |
37 | } |
38 | |