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