Commit | Line | Data |
bb8566e4 |
1 | use strictures 1; |
2 | use Test::More; |
3 | use Test::Exception; |
4 | |
5 | use Moo::HandleMoose; |
6 | |
7 | { |
8 | package MooRole; |
9 | use Moo::Role; |
10 | |
11 | package MooRoledMooClass; |
12 | use Moo; |
13 | with 'MooRole'; |
14 | |
15 | package MooRoledMooseClass; |
16 | use Moose; |
17 | with 'MooRole'; |
18 | |
19 | package MooseParent; |
20 | use Moose; |
21 | |
22 | has e => ( |
23 | is => 'ro', |
24 | required => 1, |
25 | does => 'MooRole', |
26 | ); |
27 | |
28 | package MooParent; |
29 | use Moo; |
30 | |
31 | has e => ( |
32 | is => 'ro', |
33 | required => 1, |
34 | does => 'MooRole', |
35 | ); |
36 | } |
37 | |
38 | for my $parent (qw(MooseParent MooParent)) { |
39 | for my $child (qw(MooRoledMooClass MooRoledMooseClass)) { |
40 | lives_ok { |
41 | $parent->new( |
42 | e => $child->new(), |
43 | ); |
44 | } "$parent instantiated with a $child delegate that does a MooRole"; |
45 | } |
46 | } |
47 | |
48 | done_testing; |