got rid of all the use_ok junk except for 000_load.t
[gitmo/Class-MOP.git] / t / 043_instance_metaclass_incompat.t
CommitLineData
d82060fe 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
efd3d14c 6use Test::More tests => 6;
d82060fe 7
efd3d14c 8BEGIN {use metaclass;
d82060fe 9}
10
11# meta classes
12{
13 package Foo::Meta::Instance;
14 use base 'Class::MOP::Instance';
15
16 package Bar::Meta::Instance;
17 use base 'Class::MOP::Instance';
18
19 package FooBar::Meta::Instance;
20 use base 'Foo::Meta::Instance', 'Bar::Meta::Instance';
21}
22
23$@ = undef;
24eval {
25 package Foo;
c23184fc 26 metaclass->import('instance_metaclass' => 'Foo::Meta::Instance');
d82060fe 27};
28ok(!$@, '... Foo.meta => Foo::Meta is compatible') || diag $@;
29
30$@ = undef;
31eval {
32 package Bar;
c23184fc 33 metaclass->import('instance_metaclass' => 'Bar::Meta::Instance');
d82060fe 34};
35ok(!$@, '... Bar.meta => Bar::Meta is compatible') || diag $@;
36
37$@ = undef;
38eval {
39 package Foo::Foo;
40 use base 'Foo';
c23184fc 41 metaclass->import('instance_metaclass' => 'Bar::Meta::Instance');
d82060fe 42};
43ok($@, '... Foo::Foo.meta => Bar::Meta is not compatible') || diag $@;
44
45$@ = undef;
46eval {
47 package Bar::Bar;
48 use base 'Bar';
c23184fc 49 metaclass->import('instance_metaclass' => 'Foo::Meta::Instance');
d82060fe 50};
51ok($@, '... Bar::Bar.meta => Foo::Meta is not compatible') || diag $@;
52
53$@ = undef;
54eval {
55 package FooBar;
56 use base 'Foo';
c23184fc 57 metaclass->import('instance_metaclass' => 'FooBar::Meta::Instance');
d82060fe 58};
59ok(!$@, '... FooBar.meta => FooBar::Meta is compatible') || diag $@;
60
61$@ = undef;
62eval {
63 package FooBar2;
64 use base 'Bar';
c23184fc 65 metaclass->import('instance_metaclass' => 'FooBar::Meta::Instance');
d82060fe 66};
67ok(!$@, '... FooBar2.meta => FooBar::Meta is compatible') || diag $@;
68
69