added test case for compatibility
[gitmo/Mouse.git] / t / 800_shikabased / 012-role-compatibility.t
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