Commit | Line | Data |
16504b15 |
1 | #!/usr/bin/env perl |
2 | # This is automatically generated by author/import-moose-test.pl. |
3 | # DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!! |
4 | use t::lib::MooseCompat; |
5 | use strict; |
6 | use warnings; |
7 | use Test::More; |
8 | |
9 | { |
10 | package FooTrait; |
11 | use Mouse::Role; |
12 | } |
13 | { |
14 | package Foo; |
15 | use Mouse -traits => ['FooTrait']; |
16 | } |
17 | |
18 | is(Mouse::Util::class_of('Foo'), Foo->meta, |
19 | "class_of and ->meta are the same on Foo"); |
20 | my $meta = Foo->meta; |
21 | is(Mouse::Util::class_of($meta), $meta->meta, |
22 | "class_of and ->meta are the same on Foo's metaclass"); |
23 | isa_ok(Mouse::Util::class_of($meta), 'Mouse::Meta::Class'); |
24 | isa_ok($meta->meta, 'Mouse::Meta::Class'); |
25 | ok($meta->is_mutable, "class is mutable"); |
26 | ok(Mouse::Util::class_of($meta)->is_mutable, "metaclass is mutable"); |
27 | ok($meta->meta->does_role('FooTrait'), "does the trait"); |
28 | Foo->meta->make_immutable; |
29 | is(Mouse::Util::class_of('Foo'), Foo->meta, |
30 | "class_of and ->meta are the same on Foo (immutable)"); |
31 | $meta = Foo->meta; |
32 | isa_ok($meta->meta, 'Mouse::Meta::Class'); |
33 | ok($meta->is_immutable, "class is immutable"); |
34 | { local $TODO = 'Mouse dos not support $meta->meta->is_immutable'; |
35 | ok($meta->meta->is_immutable, "metaclass is immutable (immutable class)"); |
36 | } |
37 | is(Mouse::Util::class_of($meta), $meta->meta, |
38 | "class_of and ->meta are the same on Foo's metaclass (immutable)"); |
39 | isa_ok(Mouse::Util::class_of($meta), 'Mouse::Meta::Class'); |
40 | ok($meta->meta->does_role('FooTrait'), "still does the trait after immutable"); |
41 | |
42 | done_testing; |