un-todo some passing todo tests
Jesse Luehrs [Fri, 2 Apr 2010 19:10:17 +0000 (14:10 -0500)]
t/050_metaclasses/015_metarole.t
t/050_metaclasses/050_metarole_backcompat.t
t/600_todo_tests/007_metaclass_compat.t

index 99931d8..c91c2a6 100644 (file)
@@ -664,17 +664,12 @@ lives_ok {
         'Parent constructor class has metarole from Parent'
     );
 
-TODO:
-    {
-        local $TODO
-            = 'Moose 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;
index ea325ae..d4a6adf 100644 (file)
@@ -656,17 +656,12 @@ lives_ok {
         'Parent constructor class has metarole from Parent'
     );
 
-TODO:
-    {
-        local $TODO
-            = 'Moose 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;
index dfee8d2..2b9a346 100644 (file)
@@ -43,13 +43,18 @@ ok(Foo->meta->constructor_class->meta->does_role('Foo::Trait::Constructor'),
     extends 'Foo';
 }
 
-{ local $TODO = "metaclass compatibility fixing doesn't notice things unless the class or instance metaclass change";
+$called = 0;
+
+Foo::Sub->new;
+is($called, 0, "no calls before inlining");
+
+Foo::Sub->meta->make_immutable;
+
 Foo::Sub->new;
-is($called, 2, "subclass inherits constructor traits");
+is($called, 1, "inherits constructor trait properly");
 
 ok(Foo::Sub->meta->constructor_class->meta->can('does_role')
 && Foo::Sub->meta->constructor_class->meta->does_role('Foo::Trait::Constructor'),
    "subclass inherits constructor traits");
-}
 
 done_testing;