Add another MOOSE_TEST_MD option, MooseX
[gitmo/Moose.git] / t / cmop / load.t
index f6b3ec4..7e5a94d 100644 (file)
@@ -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'