X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F300_immutable%2F014_immutable_metaclass_with_traits.t;h=4fb5baac377d1040870aa09f4a2c0ccd170c6077;hb=a6d3794f353dd356cc916044ae525ce6e23dfc99;hp=30d74e55192f70e8639401b05a9b88f9306e7b50;hpb=b4633c880e6a1be8ea71b5dac58bc60661969820;p=gitmo%2FMoose.git diff --git a/t/300_immutable/014_immutable_metaclass_with_traits.t b/t/300_immutable/014_immutable_metaclass_with_traits.t index 30d74e5..4fb5baa 100644 --- a/t/300_immutable/014_immutable_metaclass_with_traits.t +++ b/t/300_immutable/014_immutable_metaclass_with_traits.t @@ -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;