diff options
author | Nicholas Clark <nick@ccl4.org> | 2011-03-08 15:28:37 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2011-03-08 15:47:22 +0000 |
commit | 557a446828803db33a91ae2124c09299dfc1d87a (patch) | |
tree | b8a726913931c14c962d00e9fb4b50edf6575b6f /ext | |
parent | 2ec5653d4ccd411ce2acd12770f34b981c5dc303 (diff) | |
download | perl-557a446828803db33a91ae2124c09299dfc1d87a.tar.gz |
Add tests for documented behaviour of Tie::Hash::NamedCapture::TIEHASH.
Diffstat (limited to 'ext')
-rw-r--r-- | ext/Tie-Hash-NamedCapture/t/tiehash.t | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/ext/Tie-Hash-NamedCapture/t/tiehash.t b/ext/Tie-Hash-NamedCapture/t/tiehash.t new file mode 100644 index 0000000000..3ebc81ad68 --- /dev/null +++ b/ext/Tie-Hash-NamedCapture/t/tiehash.t @@ -0,0 +1,34 @@ +#!./perl -w +use strict; + +use Test::More; + +my %hashes = ('+' => \%+, '-' => \%-); + +foreach (['plus1'], + ['minus1', all => 1], + ['plus2', all => 0], + ['plus3', zlonk => 1], + ['minus2', thwapp => 0, all => 1], + ) { + my $name = shift @$_; + my $hash = $hashes{$name} = {}; + isa_ok(tie(%$hash, 'Tie::Hash::NamedCapture', @$_), + 'Tie::Hash::NamedCapture', "%$name"); +} + +is("abcdef" =~ /(?<foo>[ab])*(?<bar>c)(?<foo>d)(?<bar>[ef]*)/, 1, + "We matched"); + +foreach my $name (qw(+ plus1 plus2 plus3)) { + my $hash = $hashes{$name}; + is_deeply($hash, { foo => 'b', bar => 'c' }, "%$name is as expected"); +} + +foreach my $name (qw(- minus1 minus2)) { + my $hash = $hashes{$name}; + is_deeply($hash, { foo => [qw(b d)], bar => [qw(c ef)] }, + "%$name is as expected"); +} + +done_testing(); |