8f9a11876412a30871268f9d97523cab021bad5d
[gitmo/MRO-Compat.git] / t / 10basic.t
1
2 use strict;
3 use warnings;
4
5 use Test::More tests => 5;
6
7 BEGIN {
8     use_ok('MRO::Compat');
9 }
10
11 {
12     package AAA; our @ISA = qw//;
13     package BBB; our @ISA = qw/AAA/;
14     package CCC; our @ISA = qw/AAA/;
15     package DDD; our @ISA = qw/AAA/;
16     package EEE; our @ISA = qw/BBB CCC DDD/;
17     package FFF; our @ISA = qw/EEE DDD/;
18     package GGG; our @ISA = qw/FFF/;
19 }
20
21 is_deeply(
22   mro::get_linear_isa('GGG'),
23   [ 'GGG', 'FFF', 'EEE', 'BBB', 'AAA', 'CCC', 'DDD' ]
24 );
25
26 is_deeply(
27   [mro::get_isarev('GGG')],
28   [],
29 );
30
31 is_deeply(
32   [mro::get_isarev('DDD')],
33   [ 'EEE', 'FFF', 'GGG' ],
34 );
35
36 is_deeply(
37   [mro::get_isarev('AAA')],
38   [ 'BBB', 'CCC', 'DDD', 'EEE', 'FFF', 'GGG' ],
39 );