use strict;
use warnings;
use Test::More;
unless (
eval { require version; require MooseX::MethodAttributes; MooseX::MethodAttributes->VERSION('0.15'); }
) {
plan skip_all => 'Need MooseX::MethodAttributes 0.15 for this test';
exit;
}
plan tests => 4;
{
package My::Role;
use MooseX::MethodAttributes ();
use Moose::Role -traits => 'MethodAttributes';
sub foo : Action {}
}
{
package My::Controller;
use Moose;
BEGIN { extends 'Catalyst::Controller'; }
with 'CatalystX::Component::Traits';
}
my $app = bless {}, 'MyApp';
my $i = eval { My::Controller->COMPONENT($app, { traits => '+My::Role' } ) };
ok $i;
ok !$@ or warn $@;
my $meta = $i->meta;
ok $meta->can('get_method_attributes');
my $attr = $meta->get_method_attributes( $i->can('foo') );
is_deeply $attr, ['Action'];