generated from Nodarx/template
3ea76f34fb
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
51 lines
1.6 KiB
PHP
51 lines
1.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace KTXT\ProviderImap\Tests\Unit;
|
|
|
|
use KTXM\ProviderImap\Client\Mailbox;
|
|
use KTXM\ProviderImap\Client\Result\MailboxStatusResult;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
final class MailboxTest extends TestCase
|
|
{
|
|
public function testPartialStatusPreservesUnreportedValues(): void
|
|
{
|
|
$mailbox = new Mailbox('INBOX', '/', [], 12, 4, 123);
|
|
|
|
$updated = $mailbox->fromStatus(new MailboxStatusResult('INBOX', ['UNSEEN' => 2]));
|
|
|
|
$this->assertSame(12, $updated->messages());
|
|
$this->assertSame(2, $updated->unread());
|
|
$this->assertSame(123, $updated->uidValidity());
|
|
$this->assertSame(4, $mailbox->unread());
|
|
}
|
|
|
|
public function testExplicitZeroCountsReplaceKnownCounts(): void
|
|
{
|
|
$mailbox = new Mailbox('INBOX', '/', [], 12, 4, 123);
|
|
|
|
$updated = $mailbox->fromStatus(new MailboxStatusResult('INBOX', [
|
|
'MESSAGES' => 0,
|
|
'UNSEEN' => 0,
|
|
'UIDVALIDITY' => 456,
|
|
]));
|
|
|
|
$this->assertSame(0, $updated->messages());
|
|
$this->assertSame(0, $updated->unread());
|
|
$this->assertSame(456, $updated->uidValidity());
|
|
}
|
|
|
|
public function testEmptyStatusPreservesMailboxIncludingUnknownUidValidity(): void
|
|
{
|
|
foreach ([null, 123] as $uidValidity) {
|
|
$mailbox = new Mailbox('INBOX', '/', ['\\HasNoChildren'], 12, 4, $uidValidity, 2, ['\\Seen'], false);
|
|
|
|
$updated = $mailbox->fromStatus(new MailboxStatusResult('INBOX', []));
|
|
|
|
$this->assertEquals($mailbox, $updated);
|
|
}
|
|
}
|
|
}
|