got rid of all the use_ok junk except for 000_load.t
[gitmo/Class-MOP.git] / t / 015_metaclass_inheritance.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 9;
7 use Test::Exception;
8
9 use Class::MOP;
10
11 =pod
12
13 Test that a default set up will cause metaclasses to inherit 
14 the 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
29 my $foo_meta = Foo->meta;
30 isa_ok($foo_meta, 'Class::MOP::Class');
31
32 is($foo_meta->name, 'Foo', '... foo_meta->name == Foo');
33
34 my $bar_meta = Bar->meta;
35 isa_ok($bar_meta, 'Class::MOP::Class');
36
37 is($bar_meta->name, 'Bar', '... bar_meta->name == Bar');
38 isnt($bar_meta, $foo_meta, '... Bar->meta != Foo->meta');
39
40 my $baz_meta = Baz->meta;
41 isa_ok($baz_meta, 'Class::MOP::Class');
42
43 is($baz_meta->name, 'Baz', '... baz_meta->name == Baz');
44 isnt($baz_meta, $bar_meta, '... Baz->meta != Bar->meta');
45 isnt($baz_meta, $foo_meta, '... Baz->meta != Foo->meta');
46