This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Module-Build to CPAN version 0.4200
[perl5.git] / cpan / Module-Build / t / parents.t
CommitLineData
bb4e9162
YST
1#!/usr/bin/perl -w
2
3use strict;
10b84a45 4use lib 't/lib';
613f422f 5use MBTest tests => 26;
bb4e9162 6
613f422f 7blib_load('Module::Build');
bb4e9162 8
738349a8 9#########################
bb4e9162
YST
10
11package Foo;
12sub foo;
13
14package MySub1;
15use base 'Module::Build';
16
17package MySub2;
18use base 'MySub1';
19
20package MySub3;
21use base qw(MySub2 Foo);
22
23package MyTest;
24use base 'Module::Build';
25
26package MyBulk;
27use base qw(MySub2 MyTest);
28
29package main;
30
31ok my @parents = MySub1->mb_parents;
32# There will be at least one platform class in between.
33ok @parents >= 2;
34# They should all inherit from Module::Build::Base;
35ok ! grep { !$_->isa('Module::Build::Base') } @parents;
36is $parents[0], 'Module::Build';
37is $parents[-1], 'Module::Build::Base';
38
39ok @parents = MySub2->mb_parents;
40ok @parents >= 3;
41ok ! grep { !$_->isa('Module::Build::Base') } @parents;
42is $parents[0], 'MySub1';
43is $parents[1], 'Module::Build';
44is $parents[-1], 'Module::Build::Base';
45
46ok @parents = MySub3->mb_parents;
47ok @parents >= 4;
48ok ! grep { !$_->isa('Module::Build::Base') } @parents;
49is $parents[0], 'MySub2';
50is $parents[1], 'MySub1';
51is $parents[2], 'Module::Build';
52is $parents[-1], 'Module::Build::Base';
53
54ok @parents = MyBulk->mb_parents;
55ok @parents >= 5;
56ok ! grep { !$_->isa('Module::Build::Base') } @parents;
57is $parents[0], 'MySub2';
58is $parents[1], 'MySub1';
59is $parents[2], 'Module::Build';
60is $parents[-2], 'Module::Build::Base';
61is $parents[-1], 'MyTest';