1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
use strict;
use warnings;
use Test::More tests => 9;
use lib 't/lib';
use Moose::Util qw/does_role/;
BEGIN { use_ok 'SubClass'; }
BEGIN { use_ok 'SubClassUseBaseAndUseMoose'; }
my $meta = SubClass->meta;
my $meta2 = SubClassUseBaseAndUseMoose->meta;
ok( does_role(
BaseClass->meta->method_metaclass
=> 'MooseX::MethodAttributes::Role::Meta::Method'
) => 'BaseClass does method meta role'
);
ok( does_role(
$meta->method_metaclass
=> 'MooseX::MethodAttributes::Role::Meta::Method'
) => 'SubClass does method meta role'
);
ok( does_role(
$meta2->method_metaclass
=> 'MooseX::MethodAttributes::Role::Meta::Method'
) => 'SubClassUseBaseAndUseMoose does method meta role'
);
is_deeply(
$meta2->get_method('bar')->attributes,
['Bar'],
);
is_deeply(
$meta->get_method('bar')->attributes,
['Bar'],
);
is_deeply(
$meta->find_method_by_name('foo')->attributes,
['Foo'],
);
is_deeply(
[map { [$_->name => $_->attributes] } SubClass->meta->get_all_methods_with_attributes],
[['affe', ['Birne']],
['foo', ['Foo']],
['moo', ['Moo']],
['bar', ['Bar']]],
);
|