summaryrefslogtreecommitdiffstats
path: root/t/random-word.t
diff options
context:
space:
mode:
Diffstat (limited to 't/random-word.t')
-rw-r--r--t/random-word.t29
1 files changed, 29 insertions, 0 deletions
diff --git a/t/random-word.t b/t/random-word.t
new file mode 100644
index 0000000..6c5801d
--- /dev/null
+++ b/t/random-word.t
@@ -0,0 +1,29 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+
+use Games::Word::Wordlist;
+
+my $wl = Games::Word::Wordlist->new(['foo', 'bar', 'baz', 'quux']);
+
+my $word = $wl->random_word;
+ok(defined($word), "random_word actually returned a word");
+like($word, qr/^(foo|bar|baz|quux)$/,
+ "testing that the word is actually in the word list");
+
+$word = $wl->random_word(4);
+is($word, 'quux', "testing random_word with a given length");
+
+$word = $wl->random_word(3);
+like($word, qr/^(foo|bar|baz)$/,
+ "testing that the word was correct");
+
+is($wl->random_word(5), undef,
+ "random_word returns undef if no words are found");
+
+my $wl2 = Games::Word::Wordlist->new([]);
+is($wl2->random_word, undef,
+ "random word returns undef with an empty word list");
+
+done_testing;