12 use Moose -traits => ['FooTrait'];
15 is(Class::MOP::class_of('Foo'), Foo->meta,
16 "class_of and ->meta are the same on Foo");
18 is(Class::MOP::class_of($meta), $meta->meta,
19 "class_of and ->meta are the same on Foo's metaclass");
20 isa_ok(Class::MOP::class_of($meta), 'Moose::Meta::Class');
21 isa_ok($meta->meta, 'Moose::Meta::Class');
22 ok($meta->is_mutable, "class is mutable");
23 ok(Class::MOP::class_of($meta)->is_mutable, "metaclass is mutable");
24 ok($meta->meta->does_role('FooTrait'), "does the trait");
25 Foo->meta->make_immutable;
26 is(Class::MOP::class_of('Foo'), Foo->meta,
27 "class_of and ->meta are the same on Foo (immutable)");
29 isa_ok($meta->meta, 'Moose::Meta::Class');
30 ok($meta->is_immutable, "class is immutable");
31 ok($meta->meta->is_immutable, "metaclass is immutable (immutable class)");
32 is(Class::MOP::class_of($meta), $meta->meta,
33 "class_of and ->meta are the same on Foo's metaclass (immutable)");
34 isa_ok(Class::MOP::class_of($meta), 'Moose::Meta::Class');
35 ok($meta->meta->does_role('FooTrait'), "still does the trait after immutable");