feat: shortened and filename-safe request ids
This commit is contained in:
@@ -8,6 +8,7 @@ use App\BusProNet\ApiClient;
|
||||
use App\BusProNet\DataProcessor\BookingDataProcessor;
|
||||
use App\BusProNet\Exception\ImmediateConnectionCloseException;
|
||||
use App\BusProNet\XmlParser\ApiResponseParser;
|
||||
use App\Service\RequestIdGenerator;
|
||||
use League\Flysystem\FilesystemOperator;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Psr\Log\LoggerInterface;
|
||||
@@ -27,6 +28,7 @@ class ApiClientReceiveTest extends TestCase
|
||||
$this->createMock(LoggerInterface::class),
|
||||
$this->createMock(BookingDataProcessor::class),
|
||||
new RequestStack(),
|
||||
new RequestIdGenerator(),
|
||||
[
|
||||
'bpn_username' => 'test',
|
||||
'bpn_password' => 'test',
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user