Regenerate test files
[gitmo/Mouse.git] / t-failing / 050_metaclasses / 050_metarole_backcompat.t
@@ -1,15 +1,26 @@
 #!/usr/bin/perl
+# This is automatically generated by author/import-moose-test.pl.
+# DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!!
+use t::lib::MooseCompat;
+
+# This is a copy of 015_metarole.t taken on 01/01/2010. It provides a
+# comprehensive test of backwards compatibility in the MetaRole API.
 
 use strict;
 use warnings;
 
 use lib 't/lib', 'lib';
 
-use Test::More 'no_plan';
+use Test::More;
+$TODO = q{Mouse is not yet completed};
 use Test::Exception;
 
 use Mouse::Util::MetaRole;
 
+{
+    no warnings 'redefine';
+    *Mouse::Deprecated::deprecated = sub { return };
+}
 
 {
     package My::Meta::Class;
@@ -81,7 +92,6 @@ use Mouse::Util::MetaRole;
 }
 
 {
-    last; # skip
     Mouse::Util::MetaRole::apply_metaclass_roles(
         for_class                      => 'My::Class',
         wrapped_method_metaclass_roles => ['Role::Foo'],
@@ -102,8 +112,6 @@ use Mouse::Util::MetaRole;
 }
 
 {
-    last; # skip
-
     Mouse::Util::MetaRole::apply_metaclass_roles(
         for_class              => 'My::Class',
         instance_metaclass_roles => ['Role::Foo'],
@@ -136,8 +144,8 @@ use Mouse::Util::MetaRole;
         q{... My::Class->meta()'s attribute metaclass still does Role::Foo} );
     ok( My::Class->meta()->method_metaclass()->meta()->does_role('Role::Foo'),
         q{... My::Class->meta()'s method metaclass still does Role::Foo} );
-#    ok( My::Class->meta()->instance_metaclass()->meta()->does_role('Role::Foo'),
-#        q{... My::Class->meta()'s instance metaclass still does Role::Foo} );
+    ok( My::Class->meta()->instance_metaclass()->meta()->does_role('Role::Foo'),
+        q{... My::Class->meta()'s instance metaclass still does Role::Foo} );
 
     # Actually instantiating the constructor class is too freaking hard!
     ok( My::Class->meta()->constructor_class()->can('foo'),
@@ -158,8 +166,8 @@ use Mouse::Util::MetaRole;
         q{... My::Class->meta()'s attribute metaclass still does Role::Foo} );
     ok( My::Class->meta()->method_metaclass()->meta()->does_role('Role::Foo'),
         q{... My::Class->meta()'s method metaclass still does Role::Foo} );
-#    ok( My::Class->meta()->instance_metaclass()->meta()->does_role('Role::Foo'),
-#        q{... My::Class->meta()'s instance metaclass still does Role::Foo} );
+    ok( My::Class->meta()->instance_metaclass()->meta()->does_role('Role::Foo'),
+        q{... My::Class->meta()'s instance metaclass still does Role::Foo} );
     ok( My::Class->meta()->constructor_class()->meta()->does_role('Role::Foo'),
         q{... My::Class->meta()'s constructor class still does Role::Foo} );
 
@@ -169,8 +177,6 @@ use Mouse::Util::MetaRole;
 }
 
 {
-    last; # skip
-
     Mouse::Util::MetaRole::apply_metaclass_roles(
         for_class                        => 'My::Role',
         application_to_class_class_roles => ['Role::Foo'],
@@ -184,8 +190,6 @@ use Mouse::Util::MetaRole;
 }
 
 {
-    last; # skip
-
     Mouse::Util::MetaRole::apply_metaclass_roles(
         for_class                        => 'My::Role',
         application_to_role_class_roles => ['Role::Foo'],
@@ -201,8 +205,6 @@ use Mouse::Util::MetaRole;
 }
 
 {
-    last; # skip
-
     Mouse::Util::MetaRole::apply_metaclass_roles(
         for_class                           => 'My::Role',
         application_to_instance_class_roles => ['Role::Foo'],
@@ -266,10 +268,10 @@ use Mouse::Util::MetaRole;
     is( My::Class2->meta()->get_method('bar')->foo(), 10,
         '... call foo() on a method metaclass object' );
 
-#    ok( My::Class2->meta()->instance_metaclass()->meta()->does_role('Role::Foo'),
-#        q{apply Role::Foo to My::Class2->meta()'s instance metaclass} );
-#    is( My::Class2->meta()->get_meta_instance()->foo(), 10,
-#        '... call foo() on an instance metaclass object' );
+    ok( My::Class2->meta()->instance_metaclass()->meta()->does_role('Role::Foo'),
+        q{apply Role::Foo to My::Class2->meta()'s instance metaclass} );
+    is( My::Class2->meta()->get_meta_instance()->foo(), 10,
+        '... call foo() on an instance metaclass object' );
 
     ok( My::Class2->meta()->constructor_class()->meta()->does_role('Role::Foo'),
         q{apply Role::Foo to My::Class2->meta()'s constructor class} );
@@ -352,7 +354,7 @@ use Mouse::Util::MetaRole;
 {
     package My::Class5;
     use Mouse;
-    
+
     extends 'My::Class';
 }
 
@@ -370,7 +372,7 @@ use Mouse::Util::MetaRole;
     ok( My::Class5->meta()->destructor_class()->meta()->does_role('Role::Foo'),
         q{My::Class5->meta()'s destructor class also does Role::Foo} );
 }
-exit;
+
 {
     Mouse::Util::MetaRole::apply_metaclass_roles(
         for_class       => 'My::Class5',
@@ -477,7 +479,7 @@ exit;
 # This tests applying meta roles to a metaclass's metaclass. This is
 # completely insane, but is exactly what happens with
 # Fey::Meta::Class::Table. It's a subclass of Mouse::Meta::Class
-# itself, and then it _uses_ MouseX::ClassAttribute, so the metaclass
+# itself, and then it _uses_ MooseX::ClassAttribute, so the metaclass
 # for Fey::Meta::Class::Table does a role.
 #
 # At one point this caused a metaclass incompatibility error down
@@ -542,7 +544,7 @@ exit;
 {
     package My::Constructor;
 
-    use base 'Mouse::Meta::Method::Constructor';
+    use base 'Mouse::Meta::Method';
 }
 
 {
@@ -566,7 +568,7 @@ exit;
 }
 
 {
-    package ExportsMouse;
+    package ExportsMoose;
 
     Mouse::Exporter->setup_import_methods(
         also        => 'Mouse',
@@ -586,8 +588,8 @@ exit;
 }
 
 lives_ok {
-    package UsesExportedMouse;
-    ExportsMouse->import;
+    package UsesExportedMoose;
+    ExportsMoose->import;
 } 'import module which loads a role from disk during init_meta';
 
 {
@@ -662,15 +664,12 @@ lives_ok {
         'Parent constructor class has metarole from Parent'
     );
 
-TODO:
-    {
-        local $TODO
-            = 'Mouse does not see that the child differs from the parent because it only checks the class and instance metaclasses do determine compatibility';
-        ok(
-            Child->meta->constructor_class->meta->can('does_role')
-                && Child->meta->constructor_class->meta->does_role(
-                'Role::Foo'),
-            'Child constructor class has metarole from Parent'
-        );
-    }
+    ok(
+        Child->meta->constructor_class->meta->can('does_role')
+            && Child->meta->constructor_class->meta->does_role(
+            'Role::Foo'),
+        'Child constructor class has metarole from Parent'
+    );
 }
+
+done_testing;