Commit | Line | Data |
38bf2a25 |
1 | use strict; |
2 | use warnings; |
3 | |
4 | use FindBin; |
5 | use File::Spec::Functions; |
6 | |
7 | use Test::More; |
8 | |
9 | use Class::MOP; |
10 | |
11 | use lib catdir($FindBin::Bin, 'lib'); |
12 | |
13 | { |
14 | package Foo; |
15 | |
16 | use strict; |
17 | use warnings; |
18 | |
19 | use metaclass 'MyMetaClass' => ( |
20 | 'attribute_metaclass' => 'MyMetaClass::Attribute', |
21 | 'instance_metaclass' => 'MyMetaClass::Instance', |
22 | 'method_metaclass' => 'MyMetaClass::Method', |
23 | 'random_metaclass' => 'MyMetaClass::Random', |
24 | ); |
25 | } |
26 | |
27 | my $meta = Foo->meta; |
28 | |
29 | isa_ok($meta, 'MyMetaClass', '... Correct metaclass'); |
30 | ok(Class::MOP::is_class_loaded('MyMetaClass'), '... metaclass loaded'); |
31 | |
32 | is($meta->attribute_metaclass, 'MyMetaClass::Attribute', '... Correct attribute metaclass'); |
33 | ok(Class::MOP::is_class_loaded('MyMetaClass::Attribute'), '... attribute metaclass loaded'); |
34 | |
35 | is($meta->instance_metaclass, 'MyMetaClass::Instance', '... Correct instance metaclass'); |
36 | ok(Class::MOP::is_class_loaded('MyMetaClass::Instance'), '... instance metaclass loaded'); |
37 | |
38 | is($meta->method_metaclass, 'MyMetaClass::Method', '... Correct method metaclass'); |
39 | ok(Class::MOP::is_class_loaded('MyMetaClass::Method'), '... method metaclass loaded'); |
40 | |
41 | done_testing; |