use v6.d; use MaildirIndexer::Index; unit class TestIndex does MaildirIndexer::Index; has %.mails; has $.name = 'test index'; has @.responses = ( Mailbox.new(:name('foo'),:1confidence) 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 --> Mailbox) { return @!responses.shift; }