X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F01_MRO.t;h=32d99a21191154c3e653e05ab1f0079c968e79d1;hb=139e8d8c64758bcc77c21f067e1066ef1a918ea2;hp=5865612808ccb608f68a8319a92a7dcd30be20cf;hpb=8995e8271e0f7f7b9c0942a4425e8a44099bf608;p=gitmo%2FClass-C3-XS.git diff --git a/t/01_MRO.t b/t/01_MRO.t index 5865612..32d99a2 100644 --- a/t/01_MRO.t +++ b/t/01_MRO.t @@ -3,13 +3,10 @@ use strict; use warnings; -use Test::More tests => 11; +use Test::More tests => 2; 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; + use_ok('Class::C3::XS'); } =pod @@ -26,51 +23,22 @@ This tests the classic diamond inheritence pattern. { package Diamond_A; - use Class::C3; - sub hello { 'Diamond_A::hello' } + our @ISA = qw//; } { 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') ], + [ Class::C3::XS::calculateMRO('Diamond_D') ], [ qw(Diamond_D Diamond_B Diamond_C Diamond_A) ], '... got the right MRO for Diamond_D'); - -is(Diamond_D->hello, 'Diamond_C::hello', '... method resolved itself as expected'); - -is(Diamond_D->can('hello')->(), 'Diamond_C::hello', '... can(method) resolved itself as expected'); -is(UNIVERSAL::can("Diamond_D", 'hello')->(), 'Diamond_C::hello', '... can(method) resolved itself as expected'); - -# now undo the C3 -Class::C3::uninitialize(); - -is(Diamond_D->hello, 'Diamond_A::hello', '... old method resolution has been restored'); - -is(Diamond_D->can('hello')->(), 'Diamond_A::hello', '... can(method) resolution has been restored'); -is(UNIVERSAL::can("Diamond_D", 'hello')->(), 'Diamond_A::hello', '... can(method) resolution has been restored'); - -Class::C3::initialize(); - -is(Diamond_D->hello, 'Diamond_C::hello', '... C3 method restored itself as expected'); - -is(Diamond_D->can('hello')->(), 'Diamond_C::hello', '... C3 can(method) restored itself as expected'); -is(UNIVERSAL::can("Diamond_D", 'hello')->(), 'Diamond_C::hello', '... C3 can(method) restored itself as expected');