7 use Test::Mouse qw(does_ok);
9 BEGIN{ $SIG{__WARN__} = \&Carp::confess }
12 package MyMouseX::Foo::Method;
17 package MyMouseX::Foo::Class;
22 package MyMouseX::Bar::Method;
27 package MyMouseX::Bar::Class;
34 package MyMouseX::Foo;
36 use Mouse::Util::MetaRole;
38 Mouse::Exporter->setup_import_methods(
42 my(undef, %options) = @_;
44 my $meta = Mouse->init_meta(%options);
45 Mouse::Util::MetaRole::apply_metaroles(
46 for => $options{for_class},
48 class => ['MyMouseX::Foo::Class'],
49 method => ['MyMouseX::Foo::Method'],
54 $INC{'MyMouseX/Foo.pm'} = __FILE__;
56 package MyMouseX::Bar;
58 use Mouse::Util::MetaRole;
60 Mouse::Exporter->setup_import_methods(
64 my(undef, %options) = @_;
66 my $meta = Mouse->init_meta(%options);
67 Mouse::Util::MetaRole::apply_metaroles(
68 for => $options{for_class},
70 class => ['MyMouseX::Bar::Class'],
71 method => ['MyMouseX::Bar::Method'],
76 $INC{'MyMouseX/Bar.pm'} = __FILE__;
104 does_ok(ClassA->meta, 'MyMouseX::Foo::Class');
105 does_ok(ClassA->meta->get_method('a'), 'MyMouseX::Foo::Method');
107 does_ok(ClassB->meta, 'MyMouseX::Bar::Class');
108 does_ok(ClassB->meta->get_method('b'), 'MyMouseX::Bar::Method');
111 does_ok(ClassXAFoo->meta, 'MyMouseX::Foo::Class');
112 does_ok(ClassXAFoo->meta->get_method('xa'), 'MyMouseX::Foo::Method');
114 does_ok(ClassXABar->meta, 'MyMouseX::Foo::Class');
115 does_ok(ClassXABar->meta->get_method('xa'), 'MyMouseX::Foo::Method');
117 does_ok(ClassXABar->meta, 'MyMouseX::Bar::Class');
118 does_ok(ClassXABar->meta->get_method('xa'), 'MyMouseX::Bar::Method');