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