1use strict;
2use warnings;
3use Test::More;
4
5unless (
6    eval { require version; require MooseX::MethodAttributes; MooseX::MethodAttributes->VERSION('0.15'); }
7) {
8    plan skip_all => 'Need MooseX::MethodAttributes 0.15 for this test';
9    exit;
10}
11
12plan tests => 4;
13
14{
15    package My::Role;
16    use MooseX::MethodAttributes ();
17    use Moose::Role -traits => 'MethodAttributes';
18
19    sub foo : Action {}
20}
21
22{
23    package My::Controller;
24    use Moose;
25    BEGIN { extends 'Catalyst::Controller'; }
26    with 'CatalystX::Component::Traits';
27}
28
29my $app = bless {}, 'MyApp';
30my $i = eval { My::Controller->COMPONENT($app, { traits => '+My::Role' } ) };
31ok $i;
32ok !$@ or warn $@;
33my $meta = $i->meta;
34ok $meta->can('get_method_attributes');
35my $attr = $meta->get_method_attributes( $i->can('foo') );
36is_deeply $attr, ['Action'];
37
38