Commit | Line | Data |
aebf20a5 |
1 | #!perl |
2 | use strict; |
3 | use warnings; |
aebf20a5 |
4 | |
a062712d |
5 | use Test::More; |
aebf20a5 |
6 | |
7 | use Mouse::Util qw(does_role); |
8 | |
9 | { |
10 | package FooTrait; |
11 | use Mouse::Role; |
12 | |
13 | package BarTrait; |
14 | use Mouse::Role; |
15 | |
16 | package BaseClass; |
17 | use Mouse -traits => qw(FooTrait); |
18 | |
19 | package SubClass; |
20 | use Mouse -traits => qw(BarTrait); |
21 | |
22 | extends qw(BaseClass); |
a062712d |
23 | |
24 | package SubSubClass; |
25 | use Mouse; |
26 | |
27 | extends qw(SubClass); |
aebf20a5 |
28 | } |
29 | |
30 | ok does_role(BaseClass->meta, 'FooTrait'), ' BaseClass->meta->does("FooTrait")'; |
31 | ok!does_role(BaseClass->meta, 'BarTrait'), '!BaseClass->meta->does("BarTrait")'; |
32 | |
33 | ok does_role(SubClass->meta, 'FooTrait'), 'SubClass->meta->does("FooTrait")'; |
34 | ok does_role(SubClass->meta, 'BarTrait'), 'SubClass->meta->does("BarTrait")'; |
35 | |
a062712d |
36 | ok does_role(SubSubClass->meta, 'FooTrait'), 'SubSubClass->meta->does("FooTrait")'; |
37 | ok does_role(SubSubClass->meta, 'BarTrait'), 'SubSubClass->meta->does("BarTrait")'; |
38 | |
39 | done_testing; |