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