X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F002_class_precedence_list.t;h=7bc1fd4d51e808df80795719aa94e90b100a39fd;hb=0cf811c0867feb0e846eb3bc1f34aee4a1f169f1;hp=28d32917fbaf2a6340eda9fff3676e679e81bdd3;hpb=efd3d14c1cf03120dfd1ed7787f8050e55bb8319;p=gitmo%2FClass-MOP.git diff --git a/t/002_class_precedence_list.t b/t/002_class_precedence_list.t index 28d3291..7bc1fd4 100644 --- a/t/002_class_precedence_list.t +++ b/t/002_class_precedence_list.t @@ -1,9 +1,7 @@ -#!/usr/bin/perl - use strict; use warnings; -use Test::More tests => 6; +use Test::More; use Class::MOP; use Class::MOP::Class; @@ -24,19 +22,19 @@ B C package My::B; our @ISA = ('My::A'); package My::C; - our @ISA = ('My::A'); - package My::D; - our @ISA = ('My::B', 'My::C'); + our @ISA = ('My::A'); + package My::D; + our @ISA = ('My::B', 'My::C'); } is_deeply( - [ My::D->meta->class_precedence_list ], - [ 'My::D', 'My::B', 'My::A', 'My::C', 'My::A' ], + [ My::D->meta->class_precedence_list ], + [ 'My::D', 'My::B', 'My::A', 'My::C', 'My::A' ], '... My::D->meta->class_precedence_list == (D B A C A)'); is_deeply( - [ My::D->meta->linearized_isa ], - [ 'My::D', 'My::B', 'My::A', 'My::C' ], + [ My::D->meta->linearized_isa ], + [ 'My::D', 'My::B', 'My::A', 'My::C' ], '... My::D->meta->linearized_isa == (D B A C)'); =pod @@ -55,14 +53,14 @@ is_deeply( eval { { package My::2::A; - use metaclass; + use metaclass; our @ISA = ('My::2::C'); - + package My::2::B; our @ISA = ('My::2::A'); - + package My::2::C; - our @ISA = ('My::2::B'); + our @ISA = ('My::2::B'); } My::2::B->meta->class_precedence_list @@ -82,23 +80,23 @@ ok($@, '... recursive inheritance breaks correctly :)'); { package My::3::A; - use metaclass; + use metaclass; package My::3::B; our @ISA = ('My::3::A'); package My::3::C; - our @ISA = ('My::3::A', 'My::3::B'); - package My::3::D; - our @ISA = ('My::3::B', 'My::3::C'); + our @ISA = ('My::3::A', 'My::3::B'); + package My::3::D; + our @ISA = ('My::3::B', 'My::3::C'); } is_deeply( - [ My::3::D->meta->class_precedence_list ], - [ 'My::3::D', 'My::3::B', 'My::3::A', 'My::3::C', 'My::3::A', 'My::3::B', 'My::3::A' ], + [ My::3::D->meta->class_precedence_list ], + [ 'My::3::D', 'My::3::B', 'My::3::A', 'My::3::C', 'My::3::A', 'My::3::B', 'My::3::A' ], '... My::3::D->meta->class_precedence_list == (D B A C A B A)'); is_deeply( - [ My::3::D->meta->linearized_isa ], - [ 'My::3::D', 'My::3::B', 'My::3::A', 'My::3::C' ], + [ My::3::D->meta->linearized_isa ], + [ 'My::3::D', 'My::3::B', 'My::3::A', 'My::3::C' ], '... My::3::D->meta->linearized_isa == (D B A C B)'); =pod @@ -113,49 +111,50 @@ my @CLASS_PRECEDENCE_LIST; { package Foo; - use metaclass; - - sub CPL { push @CLASS_PRECEDENCE_LIST => 'Foo' } - + use metaclass; + + sub CPL { push @CLASS_PRECEDENCE_LIST => 'Foo' } + package Bar; our @ISA = ('Foo'); - - sub CPL { + + sub CPL { push @CLASS_PRECEDENCE_LIST => 'Bar'; $_[0]->SUPER::CPL(); - } - + } + package Baz; - use metaclass; + use metaclass; our @ISA = ('Bar'); - - sub CPL { + + sub CPL { push @CLASS_PRECEDENCE_LIST => 'Baz'; $_[0]->SUPER::CPL(); - } - + } + package Foo::Bar; our @ISA = ('Baz'); - - sub CPL { + + sub CPL { push @CLASS_PRECEDENCE_LIST => 'Foo::Bar'; $_[0]->SUPER::CPL(); - } - + } + package Foo::Bar::Baz; our @ISA = ('Foo::Bar'); - - sub CPL { + + sub CPL { push @CLASS_PRECEDENCE_LIST => 'Foo::Bar::Baz'; $_[0]->SUPER::CPL(); - } + } } Foo::Bar::Baz->CPL(); is_deeply( - [ Foo::Bar::Baz->meta->class_precedence_list ], - [ @CLASS_PRECEDENCE_LIST ], + [ Foo::Bar::Baz->meta->class_precedence_list ], + [ @CLASS_PRECEDENCE_LIST ], '... Foo::Bar::Baz->meta->class_precedence_list == @CLASS_PRECEDENCE_LIST'); +done_testing;