10 package Foo::Meta::Instance;
11 use base 'Class::MOP::Instance';
13 package Bar::Meta::Instance;
14 use base 'Class::MOP::Instance';
16 package FooBar::Meta::Instance;
17 use base 'Foo::Meta::Instance', 'Bar::Meta::Instance';
23 metaclass->import('instance_metaclass' => 'Foo::Meta::Instance');
25 ok(!$@, '... Foo.meta => Foo::Meta is compatible') || diag $@;
30 metaclass->import('instance_metaclass' => 'Bar::Meta::Instance');
32 ok(!$@, '... Bar.meta => Bar::Meta is compatible') || diag $@;
37 metaclass->import('instance_metaclass' => 'Bar::Meta::Instance');
38 Foo::Foo->meta->superclasses('Foo');
40 ok($@, '... Foo::Foo.meta => Bar::Meta is not compatible') || diag $@;
45 metaclass->import('instance_metaclass' => 'Foo::Meta::Instance');
46 Bar::Bar->meta->superclasses('Bar');
48 ok($@, '... Bar::Bar.meta => Foo::Meta is not compatible') || diag $@;
53 metaclass->import('instance_metaclass' => 'FooBar::Meta::Instance');
54 FooBar->meta->superclasses('Foo');
56 ok(!$@, '... FooBar.meta => FooBar::Meta is compatible') || diag $@;
61 metaclass->import('instance_metaclass' => 'FooBar::Meta::Instance');
62 FooBar2->meta->superclasses('Bar');
64 ok(!$@, '... FooBar2.meta => FooBar::Meta is compatible') || diag $@;