Files
provider_imap/tests/php/Support/FakeMessageFileStore.php
T
2026-10-07 22:02:45 -04:00

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;
}
}