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'), )); } }