35 lines
849 B
PHP
35 lines
849 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Tests\Service;
|
|
|
|
use App\Service\RequestIdGenerator;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class RequestIdGeneratorTest extends TestCase
|
|
{
|
|
public function testGeneratesFilenameSafeRequestId(): void
|
|
{
|
|
$generator = new RequestIdGenerator();
|
|
|
|
$requestId = $generator->generateBaseId();
|
|
|
|
self::assertMatchesRegularExpression('/^r-[0-9a-z]{10}-[0-9a-z]{8}$/', $requestId);
|
|
}
|
|
|
|
public function testGeneratedIdsAreSortableByTime(): void
|
|
{
|
|
$generator = new RequestIdGenerator();
|
|
|
|
$first = $generator->generateBaseId();
|
|
usleep(2_000);
|
|
$second = $generator->generateBaseId();
|
|
usleep(2_000);
|
|
$third = $generator->generateBaseId();
|
|
|
|
self::assertTrue($first < $second);
|
|
self::assertTrue($second < $third);
|
|
}
|
|
}
|