Include method name in immutable methods (fixes #49680)
[gitmo/Class-MOP.git] / t / 045_metaclass_loads_classes.t
CommitLineData
f2266181 1use strict;
2use warnings;
3
4use FindBin;
5use File::Spec::Functions;
6
efd3d14c 7use Test::More tests => 8;
f2266181 8
efd3d14c 9use Class::MOP;
f2266181 10
11use 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
27my $meta = Foo->meta;
28
29isa_ok($meta, 'MyMetaClass', '... Correct metaclass');
30ok(Class::MOP::is_class_loaded('MyMetaClass'), '... metaclass loaded');
31
32is($meta->attribute_metaclass, 'MyMetaClass::Attribute', '... Correct attribute metaclass');
33ok(Class::MOP::is_class_loaded('MyMetaClass::Attribute'), '... attribute metaclass loaded');
34
35is($meta->instance_metaclass, 'MyMetaClass::Instance', '... Correct instance metaclass');
36ok(Class::MOP::is_class_loaded('MyMetaClass::Instance'), '... instance metaclass loaded');
37
38is($meta->method_metaclass, 'MyMetaClass::Method', '... Correct method metaclass');
39ok(Class::MOP::is_class_loaded('MyMetaClass::Method'), '... method metaclass loaded');