Refactor slot initialization into smaller methods
[gitmo/Moose.git] / t / 300_immutable / 014_immutable_metaclass_with_traits.t
index 30d74e5..4fb5baa 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env perl
 use strict;
 use warnings;
-use Test::More tests => 12;
+use Test::More;
 
 {
     package FooTrait;
@@ -21,16 +21,17 @@ isa_ok(Class::MOP::class_of($meta), 'Moose::Meta::Class');
 isa_ok($meta->meta, 'Moose::Meta::Class');
 ok($meta->is_mutable, "class is mutable");
 ok(Class::MOP::class_of($meta)->is_mutable, "metaclass is mutable");
+ok($meta->meta->does_role('FooTrait'), "does the trait");
 Foo->meta->make_immutable;
 is(Class::MOP::class_of('Foo'), Foo->meta,
     "class_of and ->meta are the same on Foo (immutable)");
 $meta = Foo->meta;
 isa_ok($meta->meta, 'Moose::Meta::Class');
 ok($meta->is_immutable, "class is immutable");
-ok($meta->meta->is_mutable, "metaclass is mutable (immutable class)");
-TODO: {
-    local $TODO = "immutable metaclasses with traits do weird things";
-    is(Class::MOP::class_of($meta), $meta->meta,
-        "class_of and ->meta are the same on Foo's metaclass (immutable)");
-    isa_ok(Class::MOP::class_of($meta), 'Moose::Meta::Class');
-}
+ok($meta->meta->is_immutable, "metaclass is immutable (immutable class)");
+is(Class::MOP::class_of($meta), $meta->meta,
+    "class_of and ->meta are the same on Foo's metaclass (immutable)");
+isa_ok(Class::MOP::class_of($meta), 'Moose::Meta::Class');
+ok($meta->meta->does_role('FooTrait'), "still does the trait after immutable");
+
+done_testing;