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