got rid of all the use_ok junk except for 000_load.t
[gitmo/Class-MOP.git] / t / 044_instance_metaclass_incompat_dyn.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;
c23184fc 40 metaclass->import('instance_metaclass' => 'Bar::Meta::Instance');
d82060fe 41 Foo::Foo->meta->superclasses('Foo');
42};
43ok($@, '... Foo::Foo.meta => Bar::Meta is not compatible') || diag $@;
44
45$@ = undef;
46eval {
47 package Bar::Bar;
c23184fc 48 metaclass->import('instance_metaclass' => 'Foo::Meta::Instance');
d82060fe 49 Bar::Bar->meta->superclasses('Bar');
50};
51ok($@, '... Bar::Bar.meta => Foo::Meta is not compatible') || diag $@;
52
53$@ = undef;
54eval {
55 package FooBar;
c23184fc 56 metaclass->import('instance_metaclass' => 'FooBar::Meta::Instance');
d82060fe 57 FooBar->meta->superclasses('Foo');
58};
59ok(!$@, '... FooBar.meta => FooBar::Meta is compatible') || diag $@;
60
61$@ = undef;
62eval {
63 package FooBar2;
c23184fc 64 metaclass->import('instance_metaclass' => 'FooBar::Meta::Instance');
d82060fe 65 FooBar2->meta->superclasses('Bar');
66};
67ok(!$@, '... FooBar2.meta => FooBar::Meta is compatible') || diag $@;
68
69