use strict;
use warnings;
use Test::More;
use Test::Moose;
{
package Bar;
use Moose::Role;
}
{
package Baz;
use Moose::Role;
}
{
package Foo;
use Moose;
use MooseX::Method::Signatures;
method bar ($baz) does Bar { $baz }
method bla ($baz) does Bar does Baz { $baz }
method boo ($baz) does (Bar, Baz) { $baz }
}
my $o = Foo->new;
can_ok($o, 'bar');
my $method = Foo->meta->get_method('bar');
does_ok($method, 'Bar');
can_ok($o, 'bla');
$method = Foo->meta->get_method('bla');
does_ok($method, 'Bar');
does_ok($method, 'Baz');
can_ok($o, 'boo');
$method = Foo->meta->get_method('boo');
does_ok($method, 'Bar');
does_ok($method, 'Baz');
done_testing;