Commit | Line | Data |
7125b244 |
1 | #!/usr/bin/perl |
2 | |
3 | use strict; |
4 | use warnings; |
5 | |
6 | use Test::More tests => 5; |
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'; |
20 | |
21 | { package SCBR::B; |
22 | use Moose; |
23 | extends 'SCBR::A'; |
24 | with 'SCBR::Role'; |
25 | } |
26 | is search_class_by_role('SCBR::B', 'SCBR::Role'), 'SCBR::B', '... class itself returned if it does role'; |
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'; |
33 | |
34 | { package SCBR::D; |
35 | use Moose; |
36 | extends 'SCBR::C'; |
37 | with 'SCBR::Role'; |
38 | } |
39 | is search_class_by_role('SCBR::D', 'SCBR::Role'), 'SCBR::D', '... nearest class being direct class returned'; |
40 | |