X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FSub-Prototype-Util.git;a=blobdiff_plain;f=t%2F10-flatten.t;h=a2b9d6d1caa7c9565dbc1453d575593780e588a9;hp=414cfcf26305652eee0a07960b31dde6a6fd618d;hb=f5bb214c4c842e14fb5e95a77a6888ab1ae81005;hpb=16e8680c6cb85a7196c4a39bb1a5051cbde4e6a0 diff --git a/t/10-flatten.t b/t/10-flatten.t index 414cfcf..a2b9d6d 100644 --- a/t/10-flatten.t +++ b/t/10-flatten.t @@ -7,14 +7,24 @@ use Test::More tests => 27; use Sub::Prototype::Util qw/flatten/; +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;