0.02, isarev arrayref, pkg_gen, ...
[gitmo/MRO-Compat.git] / t / 10basic.t
CommitLineData
ed71cabb 1
2use strict;
3use warnings;
4
ac5a5a7f 5use Test::More tests => 11;
ed71cabb 6
7BEGIN {
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/;
ac5a5a7f 19 package UNIVERSAL; our @ISA = qw/DDD/;
ed71cabb 20}
21
22is_deeply(
23 mro::get_linear_isa('GGG'),
ac5a5a7f 24 [ 'GGG', 'FFF', 'EEE', 'BBB', 'AAA', 'CCC', 'DDD' ],
25 "get_linear_isa for GGG",
ed71cabb 26);
42915ba4 27
28is_deeply(
a9edfcb9 29 [sort @{mro::get_isarev('GGG')}],
42915ba4 30 [],
ac5a5a7f 31 "get_isarev for GGG",
42915ba4 32);
33
34is_deeply(
a9edfcb9 35 [sort @{mro::get_isarev('DDD')}],
ac5a5a7f 36 [ 'EEE', 'FFF', 'GGG', 'UNIVERSAL' ],
37 "get_isarev for DDD",
42915ba4 38);
39
d029d565 40
42915ba4 41is_deeply(
a9edfcb9 42 [sort @{mro::get_isarev('AAA')}],
ac5a5a7f 43 [ 'BBB', 'CCC', 'DDD', 'EEE', 'FFF', 'GGG', 'UNIVERSAL' ],
44 "get_isarev for AAA",
42915ba4 45);
ac5a5a7f 46
47ok(mro::is_universal('UNIVERSAL'), "UNIVERSAL is_universal");
48ok(mro::is_universal('DDD'), "DDD is_universal");
49ok(mro::is_universal('AAA'), "AAA is_universal");
50ok(!mro::is_universal('MRO::Compat'), "MRO::Compat !is_universal");
51ok(!mro::is_universal('BBB'), "BBB !is_universal");
52ok(!mro::is_universal('FFF'), "FFF !is_universal");