X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fcmop%2Fload.t;h=7e5a94d8e6a18481f39a061972ecf1c55bf64a38;hb=a559205a7d18e6fe2476d0710b253e6674804d9a;hp=f6b3ec41dfd29dfed04ad49562b16556cd99f0f8;hpb=829433c47061dd70a608bfcd940113c4172b6950;p=gitmo%2FMoose.git diff --git a/t/cmop/load.t b/t/cmop/load.t index f6b3ec4..7e5a94d 100644 --- a/t/cmop/load.t +++ b/t/cmop/load.t @@ -3,6 +3,8 @@ use warnings; use Test::More; +use Class::Load qw(is_class_loaded); + BEGIN { use_ok('Class::MOP'); use_ok('Class::MOP::Mixin'); @@ -21,6 +23,7 @@ BEGIN { use_ok('Class::MOP::Method::Accessor'); use_ok('Class::MOP::Method::Constructor'); use_ok('Class::MOP::Method::Meta'); + use_ok('Class::MOP::Method::Overload'); use_ok('Class::MOP::Instance'); use_ok('Class::MOP::Object'); } @@ -34,6 +37,7 @@ my %METAS = ( 'Class::MOP::Method::Accessor' => Class::MOP::Method::Accessor->meta, 'Class::MOP::Method::Constructor' => Class::MOP::Method::Constructor->meta, 'Class::MOP::Method::Meta' => Class::MOP::Method::Meta->meta, + 'Class::MOP::Method::Overload' => Class::MOP::Method::Overload->meta, 'Class::MOP::Mixin' => Class::MOP::Mixin->meta, 'Class::MOP::Mixin::AttributeCore' => Class::MOP::Mixin::AttributeCore->meta, 'Class::MOP::Mixin::HasAttributes' => Class::MOP::Mixin::HasAttributes->meta, @@ -47,16 +51,19 @@ my %METAS = ( 'Class::MOP::Object' => Class::MOP::Object->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, + 'UNIVERSAL' => Class::MOP::class_of('UNIVERSAL'), ); -ok( Class::MOP::is_class_loaded($_), '... ' . $_ . ' is loaded' ) +ok( is_class_loaded($_), '... ' . $_ . ' is loaded' ) for keys %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. Making UNIVERSAL immutable just seems like a bad idea. +my %expect_mutable = map { $_ => 1 } qw( Class::MOP::Class::Immutable::Trait UNIVERSAL ); + 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') { + if ( $expect_mutable{$meta->name} ) { ok( $meta->is_mutable(), '... ' . $meta->name . ' is mutable' ); } else { @@ -86,6 +93,7 @@ is_deeply( Class::MOP::Method::Generated->meta, Class::MOP::Method::Inlined->meta, Class::MOP::Method::Meta->meta, + Class::MOP::Method::Overload->meta, Class::MOP::Method::Wrapped->meta, Class::MOP::Mixin->meta, Class::MOP::Mixin::AttributeCore->meta, @@ -94,6 +102,7 @@ is_deeply( Class::MOP::Module->meta, Class::MOP::Object->meta, Class::MOP::Package->meta, + Class::MOP::class_of('UNIVERSAL'), ], '... got all the metaclass instances' ); @@ -118,9 +127,11 @@ is_deeply( Class::MOP::Method::Inlined Class::MOP::Method::Wrapped Class::MOP::Method::Meta + Class::MOP::Method::Overload Class::MOP::Module Class::MOP::Object Class::MOP::Package + UNIVERSAL /, ], '... got all the metaclass names'