Remove our (now broken) dzil GatherDir subclass
[gitmo/Moose.git] / t / moose_util / apply_roles.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5 use Moose::Util qw( apply_all_roles );
6
7 {
8     package Role::Foo;
9     use Moose::Role;
10 }
11
12 {
13     package Role::Bar;
14     use Moose::Role;
15 }
16
17 {
18     package Role::Baz;
19     use Moose::Role;
20 }
21
22 {
23     package Class::A;
24     use Moose;
25 }
26
27 {
28     package Class::B;
29     use Moose;
30 }
31
32 {
33     package Class::C;
34     use Moose;
35 }
36
37 {
38     package Class::D;
39     use Moose;
40 }
41
42 {
43     package Class::E;
44     use Moose;
45 }
46
47 my @roles = qw( Role::Foo Role::Bar Role::Baz );
48 apply_all_roles( 'Class::A', @roles );
49 ok( Class::A->meta->does_role($_), "Class::A does $_" ) for @roles;
50
51 apply_all_roles( 'Class::B', map { $_->meta } @roles );
52 ok( Class::A->meta->does_role($_),
53     "Class::B does $_ (applied with meta role object)" )
54     for @roles;
55
56 @roles = qw( Role::Foo );
57 apply_all_roles( 'Class::C', @roles );
58 ok( Class::A->meta->does_role($_), "Class::C does $_" ) for @roles;
59
60 apply_all_roles( 'Class::D', map { $_->meta } @roles );
61 ok( Class::A->meta->does_role($_),
62     "Class::D does $_ (applied with meta role object)" )
63     for @roles;
64
65 @roles = qw( Role::Foo Role::Bar ), Role::Baz->meta;
66 apply_all_roles( 'Class::E', @roles );
67 ok( Class::A->meta->does_role($_),
68     "Class::E does $_ (mix of names and meta role object)" )
69     for @roles;
70
71 done_testing;