Componentised fixup from Vsevolod (Simon) Ilyushchenko
[dbsrgits/DBIx-Class.git] / t / 04dont_break_c3.t
1 #!/usr/bin/perl -w
2 #Simon Ilyushchenko, 12/05/05
3 #Testing the case when we try to inject into @ISA a class that's already a parent of the target class.
4
5 use strict;
6 use Test::More tests => 2;
7
8 {
9 package AAA;
10
11 use base "DBIx::Class::Core";
12
13 package BBB;
14
15 use base 'AAA';
16
17 #Injecting a direct parent.
18 __PACKAGE__->inject_base( __PACKAGE__, 'AAA' );
19
20
21 package CCC;
22
23 use base 'AAA';
24
25 #Injecting an indirect parent.
26 __PACKAGE__->inject_base( __PACKAGE__, 'DBIx::Class::Core' );
27 }
28
29 eval { Class::C3::calculateMRO('BBB'); };
30 ok (! $@, "Correctly skipped injecting a direct parent of class BBB");
31
32 eval { Class::C3::calculateMRO('CCC'); };
33 ok (! $@, "Correctly skipped injecting an indirect parent of class BBB");