Files
core/tests/AutoResetProgressTest.php
T

54 lines
1.5 KiB
PHP

<?php
namespace sammo;
use PHPUnit\Framework\TestCase;
final class AutoResetProgressTest extends TestCase
{
public function testRecordStoresInjectedWallTimeWithMicroseconds(): void
{
$storage = $this->createMock(KVStorage::class);
$storage->expects(self::once())
->method('setValue')
->with(
AutoResetProgress::STORAGE_KEY,
'2026-08-12 15:40:12.345678',
)
->willReturnSelf();
AutoResetProgress::record(
$storage,
new \DateTimeImmutable('2026-08-12 15:40:12.345678 UTC'),
);
}
public function testRecordIfAdvancedIgnoresEqualOrRegressiveTicks(): void
{
$storage = $this->createMock(KVStorage::class);
$storage->expects(self::never())->method('setValue');
self::assertFalse(AutoResetProgress::recordIfAdvanced($storage, 100, 100));
self::assertFalse(AutoResetProgress::recordIfAdvanced($storage, 100, 99));
}
public function testRecordIfAdvancedRefreshesTheWatchdogAnchor(): void
{
$storage = $this->createMock(KVStorage::class);
$storage->expects(self::once())
->method('setValue')
->with(
AutoResetProgress::STORAGE_KEY,
'2026-08-12 15:41:00.000001',
)
->willReturnSelf();
self::assertTrue(AutoResetProgress::recordIfAdvanced(
$storage,
100,
101,
new \DateTimeImmutable('2026-08-12 15:41:00.000001 UTC'),
));
}
}