Add meta() method to method metaclasses
[gitmo/Mouse.git] / t / 001_mouse / 063-meta-of-metaclasses.t
CommitLineData
b4d1723e 1#!perl
2use strict;
3use warnings;
4
3821b191 5use Test::More tests => 10;
b4d1723e 6
3821b191 7{
8 package Class;
9 use Mouse;
b4d1723e 10
3821b191 11 has foo => (is => 'rw');
b4d1723e 12
3821b191 13 __PACKAGE__->meta->make_immutable; # ensure metaclasses loaded
b4d1723e 14
3821b191 15 package Role;
16 use Mouse::Role;
b4d1723e 17
3821b191 18 sub bar {}
19}
20
21{
22 my $metaclass = Class->meta;
23
24 can_ok($metaclass, 'meta');
25
26 can_ok($metaclass->constructor_class, 'meta');
27 can_ok($metaclass->destructor_class, 'meta');
28 can_ok($metaclass->attribute_metaclass, 'meta');
29
30 can_ok($metaclass->get_method('foo'), 'meta');
31 can_ok($metaclass->get_attribute('foo'), 'meta');
32 can_ok($metaclass->get_attribute('foo')->accessor_metaclass, 'meta');
33 can_ok($metaclass->get_attribute('foo')->delegation_metaclass, 'meta');
34}
35
36{
37 my $metarole = Class->meta;
38
39 can_ok($metarole, 'meta');
40
41 can_ok($metarole->get_method('foo'), 'meta');
42}