Add another MOOSE_TEST_MD option, MooseX
[gitmo/Moose.git] / t / cmop / load.t
index 596a35b..7e5a94d 100644 (file)
@@ -23,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');
 }
@@ -36,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,
@@ -49,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( 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 {
@@ -88,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,
@@ -96,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'
 );
@@ -120,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'