use MooseX::Meta::Method::Signature; use MooseX::Meta::Signature::Named; use Test::More; use Test::Exception; use strict; use warnings; plan tests => 6; throws_ok { MooseX::Meta::Method::Signature->wrap_with_signature (0,sub {}) } qr/No valid signature provided/; { my $signature = MooseX::Meta::Signature::Named->new; my $method = MooseX::Meta::Method::Signature->wrap_with_signature ($signature,sub {}, 'Foo', 'bar'); isa_ok ($method,'MooseX::Meta::Method::Signature'); isa_ok ($method,'Moose::Meta::Method'); ok ($method->has_signature); isa_ok ($method->signature,'MooseX::Meta::Signature::Named'); } { my $method = MooseX::Meta::Method::Signature->wrap (sub {}, package_name => 'Foo', name => 'bar'); ok (! $method->has_signature); }