Document XS get_method_map
[gitmo/Class-MOP.git] / t / 015_metaclass_inheritance.t
CommitLineData
448af783 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
efd3d14c 6use Test::More tests => 9;
448af783 7use Test::Exception;
8
efd3d14c 9use Class::MOP;
448af783 10
11=pod
12
13Test that a default set up will cause metaclasses to inherit
14the same metaclass type, but produce different metaclasses.
15
16=cut
17
18{
19 package Foo;
20 use metaclass;
21
22 package Bar;
23 use base 'Foo';
24
25 package Baz;
26 use base 'Bar';
27}
28
29my $foo_meta = Foo->meta;
30isa_ok($foo_meta, 'Class::MOP::Class');
31
32is($foo_meta->name, 'Foo', '... foo_meta->name == Foo');
33
34my $bar_meta = Bar->meta;
35isa_ok($bar_meta, 'Class::MOP::Class');
36
37is($bar_meta->name, 'Bar', '... bar_meta->name == Bar');
38isnt($bar_meta, $foo_meta, '... Bar->meta != Foo->meta');
39
40my $baz_meta = Baz->meta;
41isa_ok($baz_meta, 'Class::MOP::Class');
42
43is($baz_meta->name, 'Baz', '... baz_meta->name == Baz');
44isnt($baz_meta, $bar_meta, '... Baz->meta != Bar->meta');
88dd563c 45isnt($baz_meta, $foo_meta, '... Baz->meta != Foo->meta');
46