a7de9fc98967114bbfc22e67f53ec12faa182fdb
[dbsrgits/DBIx-Class.git] / t / 04dont_break_c3.t
1
2 use strict;
3 use Test::More tests => 2;
4 use MRO::Compat;
5
6 use lib qw(t/lib);
7 use DBICTest; # do not remove even though it is not used
8
9 {
10 package AAA;
11
12 use base "DBIx::Class::Core";
13
14 package BBB;
15
16 use base 'AAA';
17
18 #Injecting a direct parent.
19 __PACKAGE__->inject_base( __PACKAGE__, 'AAA' );
20
21
22 package CCC;
23
24 use base 'AAA';
25
26 #Injecting an indirect parent.
27 __PACKAGE__->inject_base( __PACKAGE__, 'DBIx::Class::Core' );
28 }
29
30 eval { mro::get_linear_isa('BBB'); };
31 ok (! $@, "Correctly skipped injecting a direct parent of class BBB");
32
33 eval { mro::get_linear_isa('CCC'); };
34 ok (! $@, "Correctly skipped injecting an indirect parent of class BBB");