Add another MOOSE_TEST_MD option, MooseX
[gitmo/Moose.git] / t / cmop / metaclass_inheritance.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5 use Test::Fatal;
6
7 use Class::MOP;
8
9 =pod
10
11 Test that a default set up will cause metaclasses to inherit
12 the same metaclass type, but produce different metaclasses.
13
14 =cut
15
16 {
17     package Foo;
18     use metaclass;
19
20     package Bar;
21     use base 'Foo';
22
23     package Baz;
24     use base 'Bar';
25 }
26
27 my $foo_meta = Foo->meta;
28 isa_ok($foo_meta, 'Class::MOP::Class');
29
30 is($foo_meta->name, 'Foo', '... foo_meta->name == Foo');
31
32 my $bar_meta = Bar->meta;
33 isa_ok($bar_meta, 'Class::MOP::Class');
34
35 is($bar_meta->name, 'Bar', '... bar_meta->name == Bar');
36 isnt($bar_meta, $foo_meta, '... Bar->meta != Foo->meta');
37
38 my $baz_meta = Baz->meta;
39 isa_ok($baz_meta, 'Class::MOP::Class');
40
41 is($baz_meta->name, 'Baz', '... baz_meta->name == Baz');
42 isnt($baz_meta, $bar_meta, '... Baz->meta != Bar->meta');
43 isnt($baz_meta, $foo_meta, '... Baz->meta != Foo->meta');
44
45 done_testing;