DEATH TO ALL zionist ELLIPSES
[gitmo/Moose.git] / t / 400_moose_util / 003_moose_util_search_class_by_role.t
CommitLineData
7125b244 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Test::More tests => 5;
7
8BEGIN {
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}
1808c2da 19is search_class_by_role('SCBR::A', 'SCBR::Role'), undef, 'not found role returns undef';
7125b244 20
21{ package SCBR::B;
22 use Moose;
23 extends 'SCBR::A';
24 with 'SCBR::Role';
25}
1808c2da 26is search_class_by_role('SCBR::B', 'SCBR::Role'), 'SCBR::B', 'class itself returned if it does role';
7125b244 27
28{ package SCBR::C;
29 use Moose;
30 extends 'SCBR::B';
31}
1808c2da 32is search_class_by_role('SCBR::C', 'SCBR::Role'), 'SCBR::B', 'nearest class doing role returned';
7125b244 33
34{ package SCBR::D;
35 use Moose;
36 extends 'SCBR::C';
37 with 'SCBR::Role';
38}
1808c2da 39is search_class_by_role('SCBR::D', 'SCBR::Role'), 'SCBR::D', 'nearest class being direct class returned';
7125b244 40