yuval-wins
[gitmo/Class-MOP.git] / t / 000_load.t
CommitLineData
8b978dd5 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
d41e86f2 6use Test::More tests => 7;
8b978dd5 7
8BEGIN {
1a7ebbb3 9 use_ok('Class::MOP');
8b978dd5 10 use_ok('Class::MOP::Class');
11 use_ok('Class::MOP::Attribute');
12 use_ok('Class::MOP::Method');
d41e86f2 13}
14
15# make sure we are tracking metaclasses correctly
16
17my %METAS = (
18 'Class::MOP::Attribute' => Class::MOP::Attribute->meta,
19 'Class::MOP::Class' => Class::MOP::Class->meta,
20 'Class::MOP::Method' => Class::MOP::Method->meta
21);
22
23is_deeply(
24 { Class::MOP::Class->get_all_metaclasses },
25 \%METAS,
26 '... got all the metaclasses');
27
28is_deeply(
29 [ sort { $a->name cmp $b->name } Class::MOP::Class->get_all_metaclass_instances ],
30 [ Class::MOP::Attribute->meta, Class::MOP::Class->meta, Class::MOP::Method->meta ],
31 '... got all the metaclass instances');
32
33is_deeply(
34 [ sort Class::MOP::Class->get_all_metaclass_names ],
35 [ 'Class::MOP::Attribute', 'Class::MOP::Class', 'Class::MOP::Method' ],
36 '... got all the metaclass names');