generated from Nodarx/template
feat: add CachedService with cached collections and delta
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace KTXT\ProviderImap\Tests\Support;
|
||||
|
||||
use KTXM\ProviderImap\Stores\MessageFileStore;
|
||||
|
||||
/**
|
||||
* In-memory MessageFileStore.
|
||||
*/
|
||||
final class FakeMessageFileStore extends MessageFileStore
|
||||
{
|
||||
/** @var array<int, array<int, array>> content by UIDVALIDITY and UID */
|
||||
private array $files = [];
|
||||
|
||||
public function write(string $tenantId, string $serviceId, string $mailbox, int $uidValidity, int $uid, array $content): void
|
||||
{
|
||||
$this->files[$uidValidity][$uid] = $content;
|
||||
}
|
||||
|
||||
public function delete(string $tenantId, string $serviceId, string $mailbox, int $uidValidity, int ...$uids): void
|
||||
{
|
||||
foreach ($uids as $uid) {
|
||||
unset($this->files[$uidValidity][$uid]);
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteByMailbox(string $tenantId, string $serviceId, string $mailbox): void
|
||||
{
|
||||
$this->files = [];
|
||||
}
|
||||
|
||||
/** @return int[] */
|
||||
public function uids(int $uidValidity): array
|
||||
{
|
||||
$uids = array_keys($this->files[$uidValidity] ?? []);
|
||||
sort($uids);
|
||||
return $uids;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user