4 use Test::More tests => 6;
11 package Foo::Meta::Instance;
12 use base 'Class::MOP::Instance';
14 package Bar::Meta::Instance;
15 use base 'Class::MOP::Instance';
17 package FooBar::Meta::Instance;
18 use base 'Foo::Meta::Instance', 'Bar::Meta::Instance';
24 metaclass->import('instance_metaclass' => 'Foo::Meta::Instance');
26 ok(!$@, '... Foo.meta => Foo::Meta is compatible') || diag $@;
31 metaclass->import('instance_metaclass' => 'Bar::Meta::Instance');
33 ok(!$@, '... Bar.meta => Bar::Meta is compatible') || diag $@;
38 metaclass->import('instance_metaclass' => 'Bar::Meta::Instance');
39 Foo::Foo->meta->superclasses('Foo');
41 ok($@, '... Foo::Foo.meta => Bar::Meta is not compatible') || diag $@;
46 metaclass->import('instance_metaclass' => 'Foo::Meta::Instance');
47 Bar::Bar->meta->superclasses('Bar');
49 ok($@, '... Bar::Bar.meta => Foo::Meta is not compatible') || diag $@;
54 metaclass->import('instance_metaclass' => 'FooBar::Meta::Instance');
55 FooBar->meta->superclasses('Foo');
57 ok(!$@, '... FooBar.meta => FooBar::Meta is compatible') || diag $@;
62 metaclass->import('instance_metaclass' => 'FooBar::Meta::Instance');
63 FooBar2->meta->superclasses('Bar');
65 ok(!$@, '... FooBar2.meta => FooBar::Meta is compatible') || diag $@;