1
2use strict;
3use warnings;
4
5use Test::More tests => 10;
6
7my $mss = 'Method::Signatures::Simple';
8use_ok $mss;
9my $inst = $mss->new(invocant => '$self');
10
11my @tests = (
12    [''               => [ qr'my \$self = shift;'                                   ]],
13    ['$class: %opts'  => [ qr'my \$class = shift;', qr'my \(\%opts\) = \@_;'        ]],
14    ['@stuff'         => [ qr'my \$self = shift;',  qr'my \(\@stuff\) = \@_;'       ]],
15    ['$foo, $bar'     => [ qr'my \$self = shift;',  qr'my \(\$foo, \$bar\) = \@_;'  ]],
16    ["$/foo, $/bar$/" => [ qr'my \$self = shift;',  qr'my \(foo,bar\) = \@_;'       ]],
17);
18
19for my $t (@tests) {
20    my $p = $inst->parse_proto($t->[0]);
21    for my $match (@{$t->[1]}) {
22        like $p, $match; # , "$t->[0] matches $match";
23    }
24}
25
26