generated from Nodarx/template
852ead324f
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
42 lines
1.1 KiB
PHP
42 lines
1.1 KiB
PHP
<?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;
|
|
}
|
|
}
|