summaryrefslogtreecommitdiff
path: root/t/lib
diff options
context:
space:
mode:
Diffstat (limited to 't/lib')
-rw-r--r--t/lib/TestIndex.pm632
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'
+}