handle fixing when the child class already does all necessary roles
[gitmo/Moose.git] / t / 050_metaclasses / 054_metaclass_compat_no_fixing_bug.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4 use Test::More;
5 use Test::Exception;
6
7 {
8     package Foo::Meta::Constructor1;
9     use Moose::Role;
10 }
11
12 {
13     package Foo::Meta::Constructor2;
14     use Moose::Role;
15 }
16
17 {
18     package Foo;
19     use Moose;
20     Moose::Util::MetaRole::apply_metaroles(
21         for             => __PACKAGE__,
22         class_metaroles => { constructor => ['Foo::Meta::Constructor1'] },
23     );
24 }
25
26 {
27     package Foo::Sub;
28     use Moose;
29     Moose::Util::MetaRole::apply_metaroles(
30         for             => __PACKAGE__,
31         class_metaroles => { constructor => ['Foo::Meta::Constructor2'] },
32     );
33     extends 'Foo';
34 }
35
36 {
37     package Foo::Sub::Sub;
38     use Moose;
39     Moose::Util::MetaRole::apply_metaroles(
40         for             => __PACKAGE__,
41         class_metaroles => { constructor => ['Foo::Meta::Constructor2'] },
42     );
43     ::lives_ok { extends 'Foo::Sub' } "doesn't try to fix if nothing is needed";
44 }
45
46 done_testing;