summaryrefslogtreecommitdiff
path: root/t/lib/TestIndex.rakumod
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2019-12-29 13:24:00 +0000
committerdakkar <dakkar@thenautilus.net>2019-12-29 13:45:21 +0000
commit5b10920b6e38614ceea0cd97031ab48f4f1f9a39 (patch)
tree031a9a787823b6a2913824235a77f86f76a94d88 /t/lib/TestIndex.rakumod
parentit's called `raku` now (diff)
downloadMaildirIndexer-5b10920b6e38614ceea0cd97031ab48f4f1f9a39.tar.gz
MaildirIndexer-5b10920b6e38614ceea0cd97031ab48f4f1f9a39.tar.bz2
MaildirIndexer-5b10920b6e38614ceea0cd97031ab48f4f1f9a39.zip
new module extension
Diffstat (limited to 't/lib/TestIndex.rakumod')
-rw-r--r--t/lib/TestIndex.rakumod35
1 files changed, 35 insertions, 0 deletions
diff --git a/t/lib/TestIndex.rakumod b/t/lib/TestIndex.rakumod
new file mode 100644
index 0000000..c0b0b03
--- /dev/null
+++ b/t/lib/TestIndex.rakumod
@@ -0,0 +1,35 @@
+use v6.d;
+use MaildirIndexer::Index;
+
+unit class TestIndex does MaildirIndexer::Index;
+
+has %.mails;
+has $.name = 'test index';
+has @.responses = ( 'foo' xx 10 );
+
+has atomicint $!seen = 0;
+has Int $.expect;
+has $.seen-all;
+has $!seen-all-vow;
+
+method set-expect(Int:D $!expect) {
+ $!seen ⚛= 0;
+ $!seen-all = Promise.new;
+ $!seen-all-vow = $!seen-all.vow;
+}
+
+method add-mail(MaildirIndexer::Email:D $email, Str:D $mailbox --> Nil) {
+ %.mails{$mailbox}{$email.path}=1;
+ ++⚛$!seen;
+ if ($!seen == $!expect) {
+ $!seen-all-vow.keep(True)
+ }
+}
+
+method del-path(IO:D $path, Str:D $mailbox --> Nil) {
+ %.mails{$mailbox}{$path}:delete;
+}
+
+method mailbox-for-email(MaildirIndexer::Email:D $email --> Str) {
+ return @!responses.shift;
+}