Require Dist::Zilla 4.200016+
[gitmo/Moose.git] / t / roles / role_consumers.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5
6 {
7     package Foo::Role;
8     use Moose::Role;
9 }
10
11 {
12     package Bar::Role;
13     use Moose::Role;
14 }
15
16 {
17     package Foo;
18     use Moose;
19     with 'Foo::Role';
20 }
21
22 {
23     package Bar;
24     use Moose;
25     extends 'Foo';
26     with 'Bar::Role';
27 }
28
29 {
30     package FooBar;
31     use Moose;
32     with 'Foo::Role', 'Bar::Role';
33 }
34
35 {
36     package Foo::Role::User;
37     use Moose::Role;
38     with 'Foo::Role';
39 }
40
41 {
42     package Foo::User;
43     use Moose;
44     with 'Foo::Role::User';
45 }
46
47 is_deeply([sort Foo::Role->meta->consumers],
48           ['Bar', 'Foo', 'Foo::Role::User', 'Foo::User', 'FooBar']);
49 is_deeply([sort Bar::Role->meta->consumers],
50           ['Bar', 'FooBar']);
51 is_deeply([sort Foo::Role::User->meta->consumers],
52           ['Foo::User']);
53
54 done_testing;