Commit | Line | Data |
7125b244 |
1 | #!/usr/bin/perl |
2 | |
3 | use strict; |
4 | use warnings; |
5 | |
a28e50e4 |
6 | use Test::More; |
7125b244 |
7 | |
28fdde7f |
8 | use Moose::Util ':all'; |
7125b244 |
9 | |
10 | { package SCBR::Role; |
11 | use Moose::Role; |
12 | } |
13 | |
14 | { package SCBR::A; |
15 | use Moose; |
16 | } |
17 | is search_class_by_role('SCBR::A', 'SCBR::Role'), undef, '... not found role returns undef'; |
560c498d |
18 | is search_class_by_role('SCBR::A', SCBR::Role->meta), undef, '... not found role returns undef'; |
7125b244 |
19 | |
20 | { package SCBR::B; |
21 | use Moose; |
22 | extends 'SCBR::A'; |
23 | with 'SCBR::Role'; |
24 | } |
25 | is search_class_by_role('SCBR::B', 'SCBR::Role'), 'SCBR::B', '... class itself returned if it does role'; |
560c498d |
26 | is search_class_by_role('SCBR::B', SCBR::Role->meta), 'SCBR::B', '... class itself returned if it does role'; |
7125b244 |
27 | |
28 | { package SCBR::C; |
29 | use Moose; |
30 | extends 'SCBR::B'; |
31 | } |
32 | is search_class_by_role('SCBR::C', 'SCBR::Role'), 'SCBR::B', '... nearest class doing role returned'; |
560c498d |
33 | is search_class_by_role('SCBR::C', SCBR::Role->meta), 'SCBR::B', '... nearest class doing role returned'; |
7125b244 |
34 | |
35 | { package SCBR::D; |
36 | use Moose; |
37 | extends 'SCBR::C'; |
38 | with 'SCBR::Role'; |
39 | } |
40 | is search_class_by_role('SCBR::D', 'SCBR::Role'), 'SCBR::D', '... nearest class being direct class returned'; |
560c498d |
41 | is search_class_by_role('SCBR::D', SCBR::Role->meta), 'SCBR::D', '... nearest class being direct class returned'; |
7125b244 |
42 | |
a28e50e4 |
43 | done_testing; |