#!/usr/bin/env perl
use strict;
use warnings;
-use Test::More tests => 10;
+use Test::More tests => 12;
{
package FooTrait;
"class_of and ->meta are the same on Foo's metaclass");
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");
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(Class::MOP::class_of($meta)->is_immutable, "metaclass is immutable");
+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");
}