diff options
Diffstat (limited to 't/lib')
-rw-r--r-- | t/lib/TestIndex.pm6 | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/t/lib/TestIndex.pm6 b/t/lib/TestIndex.pm6 new file mode 100644 index 0000000..730ee92 --- /dev/null +++ b/t/lib/TestIndex.pm6 @@ -0,0 +1,32 @@ +use v6.d; +use MaildirIndexer::Index; + +unit class TestIndex does MaildirIndexer::Index; + +has %.mails; +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 'foo' +} |