X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F000_load.t;h=75c293a1aee882050023b96797bae5d61a5e4abd;hb=af72687d6d45c59be325b4d43c852606c8a2c9c1;hp=a69ba3a13cbb50a219e5be7afe3813ee528915d3;hpb=643f2f94ab780ca0c247cd36a88b13cc51d5c0fc;p=gitmo%2FClass-MOP.git diff --git a/t/000_load.t b/t/000_load.t index a69ba3a..75c293a 100644 --- a/t/000_load.t +++ b/t/000_load.t @@ -1,17 +1,18 @@ use strict; use warnings; -use Test::More tests => 42; +use Test::More tests => 49; BEGIN { use_ok('Class::MOP'); use_ok('Class::MOP::Package'); use_ok('Class::MOP::Module'); use_ok('Class::MOP::Class'); - use_ok('Class::MOP::Immutable'); + use_ok('Class::MOP::Class::Immutable::Trait'); use_ok('Class::MOP::Attribute'); use_ok('Class::MOP::Method'); use_ok('Class::MOP::Method::Wrapped'); + use_ok('Class::MOP::Method::Inlined'); use_ok('Class::MOP::Method::Generated'); use_ok('Class::MOP::Method::Accessor'); use_ok('Class::MOP::Method::Constructor'); @@ -21,11 +22,9 @@ BEGIN { # make sure we are tracking metaclasses correctly -my @CLASS_MOP_CLASS_IMMUTABLE_CLASSES - = map { 'Class::MOP::Class::__ANON__::SERIAL::' . $_ } 1..11; - my %METAS = ( 'Class::MOP::Attribute' => Class::MOP::Attribute->meta, + 'Class::MOP::Method::Inlined' => Class::MOP::Method::Inlined->meta, 'Class::MOP::Method::Generated' => Class::MOP::Method::Generated->meta, 'Class::MOP::Method::Accessor' => Class::MOP::Method::Accessor->meta, 'Class::MOP::Method::Constructor' => @@ -37,6 +36,8 @@ my %METAS = ( 'Class::MOP::Method::Wrapped' => Class::MOP::Method::Wrapped->meta, 'Class::MOP::Instance' => Class::MOP::Instance->meta, 'Class::MOP::Object' => Class::MOP::Object->meta, + 'Class::MOP::Class::Immutable::Trait' => Class::MOP::Class::Immutable::Trait->meta, + 'Class::MOP::Class::Immutable::Class::MOP::Class' => Class::MOP::Class::Immutable::Class::MOP::Class->meta, ); ok( Class::MOP::is_class_loaded($_), '... ' . $_ . ' is loaded' ) @@ -47,10 +48,7 @@ ok( $_->is_immutable(), '... ' . $_->name . ' is immutable' ) is_deeply( {Class::MOP::get_all_metaclasses}, - { - %METAS, - map { $_ => $_->meta } @CLASS_MOP_CLASS_IMMUTABLE_CLASSES - }, + \%METAS, '... got all the metaclasses' ); @@ -61,12 +59,14 @@ is_deeply( [ Class::MOP::Attribute->meta, Class::MOP::Class->meta, - ( map { $_->meta } sort @CLASS_MOP_CLASS_IMMUTABLE_CLASSES ), + Class::MOP::Class::Immutable::Class::MOP::Class->meta, + Class::MOP::Class::Immutable::Trait->meta, Class::MOP::Instance->meta, Class::MOP::Method->meta, Class::MOP::Method::Accessor->meta, Class::MOP::Method::Constructor->meta, Class::MOP::Method::Generated->meta, + Class::MOP::Method::Inlined->meta, Class::MOP::Method::Wrapped->meta, Class::MOP::Module->meta, Class::MOP::Object->meta, @@ -81,56 +81,23 @@ is_deeply( sort qw/ Class::MOP::Attribute Class::MOP::Class + Class::MOP::Class::Immutable::Class::MOP::Class + Class::MOP::Class::Immutable::Trait Class::MOP::Instance Class::MOP::Method Class::MOP::Method::Accessor Class::MOP::Method::Constructor Class::MOP::Method::Generated + Class::MOP::Method::Inlined Class::MOP::Method::Wrapped Class::MOP::Module Class::MOP::Object Class::MOP::Package - /, @CLASS_MOP_CLASS_IMMUTABLE_CLASSES + /, ], '... got all the metaclass names' ); -is_deeply( - [ - map { $_->meta->identifier } - sort { $a cmp $b } Class::MOP::get_all_metaclass_names() - ], - [ - "Class::MOP::Attribute-" - . $Class::MOP::Attribute::VERSION - . "-cpan:STEVAN", - "Class::MOP::Class-" . $Class::MOP::Class::VERSION . "-cpan:STEVAN", - ( sort @CLASS_MOP_CLASS_IMMUTABLE_CLASSES ), - "Class::MOP::Instance-" - . $Class::MOP::Instance::VERSION - . "-cpan:STEVAN", - "Class::MOP::Method-" . $Class::MOP::Method::VERSION . "-cpan:STEVAN", - "Class::MOP::Method::Accessor-" - . $Class::MOP::Method::Accessor::VERSION - . "-cpan:STEVAN", - "Class::MOP::Method::Constructor-" - . $Class::MOP::Method::Constructor::VERSION - . "-cpan:STEVAN", - "Class::MOP::Method::Generated-" - . $Class::MOP::Method::Generated::VERSION - . "-cpan:STEVAN", - "Class::MOP::Method::Wrapped-" - . $Class::MOP::Method::Wrapped::VERSION - . "-cpan:STEVAN", - "Class::MOP::Module-" . $Class::MOP::Module::VERSION . "-cpan:STEVAN", - "Class::MOP::Object-" . $Class::MOP::Object::VERSION . "-cpan:STEVAN", - "Class::MOP::Package-" - . $Class::MOP::Package::VERSION - . "-cpan:STEVAN", - ], - '... got all the metaclass identifiers' -); - # testing the meta-circularity of the system is( @@ -139,6 +106,11 @@ is( ); is( + Class::MOP::Class->meta->meta, Class::MOP::Class->meta->meta->meta, + '... Class::MOP::Class->meta->meta == Class::MOP::Class->meta->meta->meta' +); + +is( Class::MOP::Class->meta, Class::MOP::Class->meta->meta->meta, '... Class::MOP::Class->meta == Class::MOP::Class->meta->meta->meta' );