X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F20_reinitialize.t;fp=t%2F20_reinitialize.t;h=0000000000000000000000000000000000000000;hb=fbe8c8c4b14d12e8f2e254abe7aab98c74391920;hp=7dce5d42000b48250c14d0546d626896f667b3c0;hpb=8995e8271e0f7f7b9c0942a4425e8a44099bf608;p=gitmo%2FClass-C3-XS.git diff --git a/t/20_reinitialize.t b/t/20_reinitialize.t deleted file mode 100644 index 7dce5d4..0000000 --- a/t/20_reinitialize.t +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; - -use Test::More tests => 5; - -BEGIN { - use_ok('Class::C3'); - # uncomment this line, and re-run the - # test to see the normal p5 dispatch order - #$Class::C3::TURN_OFF_C3 = 1; -} - -=pod - -Start with this: - - - / \ - - \ / - - -=cut - -{ - package Diamond_A; - use Class::C3; - sub hello { 'Diamond_A::hello' } -} -{ - package Diamond_B; - use base 'Diamond_A'; - use Class::C3; -} -{ - package Diamond_C; - use Class::C3; - use base 'Diamond_A'; - sub hello { 'Diamond_C::hello' } -} -{ - package Diamond_D; - use base ('Diamond_B', 'Diamond_C'); - use Class::C3; -} - -Class::C3::initialize(); - -is_deeply( - [ Class::C3::calculateMRO('Diamond_D') ], - [ qw(Diamond_D Diamond_B Diamond_C Diamond_A) ], - '... got the right MRO for Diamond_D'); - -=pod - -Then change it to this: - - - \ / \ - - \ / - - -=cut - -{ - package Diamond_E; - use Class::C3; - sub hello { 'Diamond_E::hello' } -} - -{ - no strict 'refs'; - unshift @{"Diamond_B::ISA"} => 'Diamond_E'; -} - -is_deeply( - [ Class::C3::calculateMRO('Diamond_D') ], - [ qw(Diamond_D Diamond_B Diamond_E Diamond_C Diamond_A) ], - '... got the new MRO for Diamond_D'); - -is(Diamond_D->hello, 'Diamond_C::hello', '... method still resolves with old MRO'); - -Class::C3::reinitialize(); - -is(Diamond_D->hello, 'Diamond_E::hello', '... method resolves with reinitialized MRO');