none of this use_ok nonsense
[gitmo/Class-MOP.git] / t / 045_metaclass_loads_classes.t
CommitLineData
f2266181 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use FindBin;
7use File::Spec::Functions;
8
9use Test::More tests => 9;
10
11BEGIN {
12 use_ok('Class::MOP');
13}
14
15use 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
31my $meta = Foo->meta;
32
33isa_ok($meta, 'MyMetaClass', '... Correct metaclass');
34ok(Class::MOP::is_class_loaded('MyMetaClass'), '... metaclass loaded');
35
36is($meta->attribute_metaclass, 'MyMetaClass::Attribute', '... Correct attribute metaclass');
37ok(Class::MOP::is_class_loaded('MyMetaClass::Attribute'), '... attribute metaclass loaded');
38
39is($meta->instance_metaclass, 'MyMetaClass::Instance', '... Correct instance metaclass');
40ok(Class::MOP::is_class_loaded('MyMetaClass::Instance'), '... instance metaclass loaded');
41
42is($meta->method_metaclass, 'MyMetaClass::Method', '... Correct method metaclass');
43ok(Class::MOP::is_class_loaded('MyMetaClass::Method'), '... method metaclass loaded');