X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F10-flatten.t;h=e4109214d01fd5dc3e40a98c404ba1b14064b428;hb=ea95d5eb42f17626bfca0f26e58a7d6c28e74d47;hp=414cfcf26305652eee0a07960b31dde6a6fd618d;hpb=39b18d4f8f133cb03d47a486464c5c96cb148d5f;p=perl%2Fmodules%2FSub-Prototype-Util.git diff --git a/t/10-flatten.t b/t/10-flatten.t index 414cfcf..e410921 100644 --- a/t/10-flatten.t +++ b/t/10-flatten.t @@ -5,16 +5,26 @@ use warnings; use Test::More tests => 27; -use Sub::Prototype::Util qw/flatten/; +use Sub::Prototype::Util qw; +sub exception { + my ($msg) = @_; + $msg =~ s/\s+/\\s+/g; + return qr/^$msg.*?at\s+\Q$0\E\s+line\s+\d+/; +} + +eval { flatten '$' }; +like $@, exception('Not enough arguments to match this prototype'), + 'flatten("$") croaks'; eval { flatten '\@', undef }; -like($@, qr/^Got\s+undef/, 'flatten "\@", undef croaks'); +like $@, exception('Got undef'), 'flatten "\@", undef croaks'; eval { flatten '\@', 1 }; -like($@, qr/^Got\s+a\s+plain\s+scalar/, 'flatten "\@", scalar croaks'); +like $@, exception('Got a plain scalar'), 'flatten "\@", scalar croaks'; eval { flatten '\@', { foo => 1 } }; -like($@, qr/^Unexpected\s+HASH\s+reference/, 'flatten "\@", hashref croaks'); +like $@, exception('Unexpected HASH reference'), 'flatten "\@", hashref croaks'; eval { flatten '\@', \(\1) }; -like($@, qr/^Unexpected\s+REF\s+reference/, 'flatten "\@", double ref croaks'); +like $@, exception('Unexpected REF reference'), + 'flatten "\@", double ref croaks'; my $a = [ 1, 2, 3 ]; my $b = [ [ 1, 2 ], 3, { 4 => 5 }, undef, \6 ]; @@ -41,8 +51,7 @@ my @tests = ( [ '\[$@%]', 'class got scalarref', [ \1 ], [ 1 ] ], [ '\[$@%]', 'class got arrayref', [ [ 1 ] ], [ 1 ] ], [ '\[$@%]', 'class got hashref', [ { 1,2 } ], [ 1, 2 ] ], - [ '_', '_ with argument', [ 1, 2 ], [ ] ], - [ '_', '_ with no argument', [ ], [ ] ] + [ '_', '_ with argument', [ 1, 2 ], [ 1 ] ], ); is_deeply( [ flatten($_->[0], @{$_->[2]}) ], $_->[3], $_->[1]) for @tests;