X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F000_load.t;h=3aa0fcd8ae8536ede5edf54644408a3d737ad570;hb=86a4d8730cfe673db674c692f7703632b700c7c9;hp=6e82101e7e7cc4d6b056613bc14fb7efb41749cb;hpb=29d4e92ae9c54d6a4a9b949a10e22d2163653470;p=gitmo%2FClass-MOP.git diff --git a/t/000_load.t b/t/000_load.t index 6e82101..3aa0fcd 100644 --- a/t/000_load.t +++ b/t/000_load.t @@ -1,7 +1,7 @@ use strict; use warnings; -use Test::More tests => 49; +use Test::More; BEGIN { use_ok('Class::MOP'); @@ -9,7 +9,6 @@ BEGIN { use_ok('Class::MOP::Module'); use_ok('Class::MOP::Class'); use_ok('Class::MOP::Class::Immutable::Trait'); - use_ok('Class::MOP::Immutable'); use_ok('Class::MOP::Attribute'); use_ok('Class::MOP::Method'); use_ok('Class::MOP::Method::Wrapped'); @@ -37,15 +36,24 @@ 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::Trait' => Class::MOP::class_of('Class::MOP::Class::Immutable::Trait'), 'Class::MOP::Class::Immutable::Class::MOP::Class' => Class::MOP::Class::Immutable::Class::MOP::Class->meta, ); ok( Class::MOP::is_class_loaded($_), '... ' . $_ . ' is loaded' ) for keys %METAS; -ok( $_->is_immutable(), '... ' . $_->name . ' is immutable' ) - for values %METAS; +for my $meta (values %METAS) { + # the trait shouldn't be made immutable, it doesn't actually do anything, + # and it doesn't even matter because it's not a class that will be + # instantiated + if ($meta->name eq 'Class::MOP::Class::Immutable::Trait') { + ok( $meta->is_mutable(), '... ' . $meta->name . ' is mutable' ); + } + else { + ok( $meta->is_immutable(), '... ' . $meta->name . ' is immutable' ); + } +} is_deeply( {Class::MOP::get_all_metaclasses}, @@ -61,7 +69,7 @@ is_deeply( Class::MOP::Attribute->meta, Class::MOP::Class->meta, Class::MOP::Class::Immutable::Class::MOP::Class->meta, - Class::MOP::Class::Immutable::Trait->meta, + Class::MOP::class_of('Class::MOP::Class::Immutable::Trait'), Class::MOP::Instance->meta, Class::MOP::Method->meta, Class::MOP::Method::Accessor->meta, @@ -102,17 +110,25 @@ is_deeply( # testing the meta-circularity of the system is( - Class::MOP::Class->meta, Class::MOP::Class->meta->meta, - '... Class::MOP::Class->meta == Class::MOP::Class->meta->meta' + 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' + Class::MOP::Class->meta->meta->meta, Class::MOP::Class->meta->meta->meta->meta, + '... Class::MOP::Class->meta->meta->meta == Class::MOP::Class->meta->meta->meta->meta' ); is( - Class::MOP::Class->meta, Class::MOP::Class->meta->meta->meta->meta, - '... Class::MOP::Class->meta == Class::MOP::Class->meta->meta->meta->meta' + Class::MOP::Class->meta->meta, Class::MOP::Class->meta->meta->meta->meta, + '... Class::MOP::Class->meta->meta == Class::MOP::Class->meta->meta->meta->meta' ); +is( + Class::MOP::Class->meta->meta, Class::MOP::Class->meta->meta->meta->meta->meta, + '... Class::MOP::Class->meta->meta == Class::MOP::Class->meta->meta->meta->meta->meta' +); + +isa_ok(Class::MOP::Class->meta, 'Class::MOP::Class'); + +done_testing;