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 | |
9 | use Test::More tests => 9; |
10 | |
11 | BEGIN { |
12 | use_ok('Class::MOP'); |
13 | } |
14 | |
15 | use lib catdir($FindBin::Bin, 'lib'); |
16 | |
17 | { |
18 | package Foo; |
19 | |
20 | use strict; |
21 | use warnings; |
22 | |
23 | use metaclass 'MyMetaClass' => ( |
24 | 'attribute_metaclass' => 'MyMetaClass::Attribute', |
25 | 'instance_metaclass' => 'MyMetaClass::Instance', |
26 | 'method_metaclass' => 'MyMetaClass::Method', |
27 | 'random_metaclass' => 'MyMetaClass::Random', |
28 | ); |
29 | } |
30 | |
31 | my $meta = Foo->meta; |
32 | |
33 | isa_ok($meta, 'MyMetaClass', '... Correct metaclass'); |
34 | ok(Class::MOP::is_class_loaded('MyMetaClass'), '... metaclass loaded'); |
35 | |
36 | is($meta->attribute_metaclass, 'MyMetaClass::Attribute', '... Correct attribute metaclass'); |
37 | ok(Class::MOP::is_class_loaded('MyMetaClass::Attribute'), '... attribute metaclass loaded'); |
38 | |
39 | is($meta->instance_metaclass, 'MyMetaClass::Instance', '... Correct instance metaclass'); |
40 | ok(Class::MOP::is_class_loaded('MyMetaClass::Instance'), '... instance metaclass loaded'); |
41 | |
42 | is($meta->method_metaclass, 'MyMetaClass::Method', '... Correct method metaclass'); |
43 | ok(Class::MOP::is_class_loaded('MyMetaClass::Method'), '... method metaclass loaded'); |