Changelogging
[gitmo/Mouse.git] / t / 400_moose_util / 007_apply_roles.t
CommitLineData
fde8e43f 1use strict;
2# This is automatically generated by author/import-moose-test.pl.
3# DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!!
4use t::lib::MooseCompat;
5use warnings;
6
7use Test::More;
8use Mouse::Util qw( apply_all_roles );
9
10{
11 package Role::Foo;
12 use Mouse::Role;
13}
14
15{
16 package Role::Bar;
17 use Mouse::Role;
18}
19
20{
21 package Role::Baz;
22 use Mouse::Role;
23}
24
25{
26 package Class::A;
27 use Mouse;
28}
29
30{
31 package Class::B;
32 use Mouse;
33}
34
35{
36 package Class::C;
37 use Mouse;
38}
39
40{
41 package Class::D;
42 use Mouse;
43}
44
45{
46 package Class::E;
47 use Mouse;
48}
49
50my @roles = qw( Role::Foo Role::Bar Role::Baz );
51apply_all_roles( 'Class::A', @roles );
52ok( Class::A->meta->does_role($_), "Class::A does $_" ) for @roles;
53
54apply_all_roles( 'Class::B', map { $_->meta } @roles );
55ok( Class::A->meta->does_role($_),
56 "Class::B does $_ (applied with meta role object)" )
57 for @roles;
58
59@roles = qw( Role::Foo );
60apply_all_roles( 'Class::C', @roles );
61ok( Class::A->meta->does_role($_), "Class::C does $_" ) for @roles;
62
63apply_all_roles( 'Class::D', map { $_->meta } @roles );
64ok( Class::A->meta->does_role($_),
65 "Class::D does $_ (applied with meta role object)" )
66 for @roles;
67
68@roles = qw( Role::Foo Role::Bar ), Role::Baz->meta;
69apply_all_roles( 'Class::E', @roles );
70ok( Class::A->meta->does_role($_),
71 "Class::E does $_ (mix of names and meta role object)" )
72 for @roles;
73
74done_testing;