Remove our (now broken) dzil GatherDir subclass
[gitmo/Moose.git] / t / moose_util / moose_util_search_class_by_role.t
CommitLineData
7125b244 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
a28e50e4 6use Test::More;
7125b244 7
28fdde7f 8use Moose::Util ':all';
7125b244 9
10{ package SCBR::Role;
11 use Moose::Role;
12}
13
14{ package SCBR::A;
15 use Moose;
16}
17is search_class_by_role('SCBR::A', 'SCBR::Role'), undef, '... not found role returns undef';
560c498d 18is 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}
25is search_class_by_role('SCBR::B', 'SCBR::Role'), 'SCBR::B', '... class itself returned if it does role';
560c498d 26is 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}
32is search_class_by_role('SCBR::C', 'SCBR::Role'), 'SCBR::B', '... nearest class doing role returned';
560c498d 33is 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}
40is search_class_by_role('SCBR::D', 'SCBR::Role'), 'SCBR::D', '... nearest class being direct class returned';
560c498d 41is search_class_by_role('SCBR::D', SCBR::Role->meta), 'SCBR::D', '... nearest class being direct class returned';
7125b244 42
a28e50e4 43done_testing;