Skip to content

Commit 76fb997

Browse files
committed
uuidv7 and reuse pattern
1 parent 0253800 commit 76fb997

File tree

6 files changed

+21
-10
lines changed

6 files changed

+21
-10
lines changed

src/Pet/Model/Pet.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ final class Pet implements ModelInterface
2828

2929
public function __construct()
3030
{
31-
$this->id = Uuid::uuid4()->toString();
31+
$this->id = Uuid::uuid7()->toString();
3232
$this->createdAt = new \DateTimeImmutable();
3333
$this->vaccinations = new ArrayCollection();
3434
}

tests/Helper/PatternHelper.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace App\Tests\Helper;
6+
7+
final class PatternHelper
8+
{
9+
public const string DATE_PATTERN = '/^\d{4}-\d{2}-\d{2}T\d{2}\:\d{2}\:\d{2}\+\d{2}\:\d{2}$/';
10+
public const string UUID_PATTERN = '/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i';
11+
}

tests/Integration/AbstractIntegrationTestCase.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ abstract class AbstractIntegrationTestCase extends TestCase
1414
*/
1515
public const DEFAULT_INTEGRATION_ENDPOINT = 'http://localhost:%d';
1616

17-
public const DATE_PATTERN = '/^\d{4}-\d{2}-\d{2}T\d{2}\:\d{2}\:\d{2}\+\d{2}\:\d{2}$/';
18-
public const UUID_PATTERN = '/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/';
19-
2017
private ?\CurlHandle $curl = null;
2118

2219
/**

tests/Integration/Pet/PetCrudRequestHandlerTest.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace App\Tests\Integration\Pet;
66

7+
use App\Tests\Helper\PatternHelper;
78
use App\Tests\Integration\AbstractIntegrationTestCase;
89

910
/**
@@ -569,11 +570,11 @@ private static function assertPet(array $pet, array $expectedPet, bool $updated)
569570
self::assertArrayHasKey('delete', $pet['_links']);
570571
self::assertArrayHasKey('_type', $pet);
571572

572-
self::assertMatchesRegularExpression(self::UUID_PATTERN, $pet['id']);
573-
self::assertMatchesRegularExpression(self::DATE_PATTERN, $pet['createdAt']);
573+
self::assertMatchesRegularExpression(PatternHelper::UUID_PATTERN, $pet['id']);
574+
self::assertMatchesRegularExpression(PatternHelper::DATE_PATTERN, $pet['createdAt']);
574575

575576
if ($updated) {
576-
self::assertMatchesRegularExpression(self::DATE_PATTERN, $pet['updatedAt']);
577+
self::assertMatchesRegularExpression(PatternHelper::DATE_PATTERN, $pet['updatedAt']);
577578
} else {
578579
self::assertNull($pet['updatedAt']);
579580
}

tests/Unit/Pet/Dto/Model/PetRequestTest.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use App\Pet\Dto\Model\PetRequest;
88
use App\Pet\Dto\Model\VaccinationRequest;
99
use App\Pet\Model\Pet;
10+
use App\Tests\Helper\PatternHelper;
1011
use PHPUnit\Framework\TestCase;
1112

1213
/**
@@ -34,7 +35,7 @@ public function testCreateModel(): void
3435

3536
$petData = $pet->jsonSerialize();
3637

37-
self::assertMatchesRegularExpression('/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-(8|9|a|b)[0-9a-f]{3}-[0-9a-f]{12}$/i', $petData['id']);
38+
self::assertMatchesRegularExpression(PatternHelper::UUID_PATTERN, $petData['id']);
3839
self::assertMatchesRegularExpression('/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}$/', $petData['createdAt']->format('c'));
3940
self::assertNull($petData['updatedAt']);
4041
self::assertSame('jerry', $petData['name']);
@@ -65,7 +66,7 @@ public function testUpdateModel(): void
6566

6667
$petData = $pet->jsonSerialize();
6768

68-
self::assertMatchesRegularExpression('/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-(8|9|a|b)[0-9a-f]{3}-[0-9a-f]{12}$/i', $petData['id']);
69+
self::assertMatchesRegularExpression(PatternHelper::UUID_PATTERN, $petData['id']);
6970
self::assertMatchesRegularExpression('/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}$/', $petData['createdAt']->format('c'));
7071
self::assertMatchesRegularExpression('/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}$/', $petData['updatedAt']->format('c'));
7172
self::assertSame('jerry', $petData['name']);

tests/Unit/Pet/Model/PetTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use App\Pet\Model\Pet;
88
use App\Pet\Model\Vaccination;
99
use App\Tests\Helper\AssertHelper;
10+
use App\Tests\Helper\PatternHelper;
1011
use Chubbyphp\Api\Model\ModelInterface;
1112
use PHPUnit\Framework\TestCase;
1213

@@ -23,7 +24,7 @@ public function testGetSet(): void
2324

2425
self::assertInstanceOf(ModelInterface::class, $pet);
2526

26-
self::assertMatchesRegularExpression('/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/', $pet->getId());
27+
self::assertMatchesRegularExpression(PatternHelper::UUID_PATTERN, $pet->getId());
2728
self::assertInstanceOf(\DateTimeImmutable::class, $pet->getCreatedAt());
2829
self::assertNull($pet->getUpdatedAt());
2930
self::assertNull($pet->getTag());

0 commit comments

Comments
 (0)