summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2011-03-08 15:28:37 +0000
committerNicholas Clark <nick@ccl4.org>2011-03-08 15:47:22 +0000
commit557a446828803db33a91ae2124c09299dfc1d87a (patch)
treeb8a726913931c14c962d00e9fb4b50edf6575b6f /ext
parent2ec5653d4ccd411ce2acd12770f34b981c5dc303 (diff)
downloadperl-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.t34
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();