ldc-boutique-cnc-sable/tests/Unit/Domain/Models/ValueObjects/OrderReferenceTest.php

41 lines
1 KiB
PHP
Raw Normal View History

2026-06-14 21:32:07 +02:00
<?php
declare(strict_types=1);
namespace Tests\Unit\Domain\Models\ValueObjects;
use Domain\Models\ValueObjects\OrderReference;
use Ramsey\Uuid\Uuid;
use Ramsey\Uuid\UuidInterface;
2026-06-14 21:32:07 +02:00
describe('OrderReference', function () {
function getNewOrderReference(UuidInterface $value): OrderReference
2026-06-14 21:32:07 +02:00
{
return new OrderReference($value);
}
it('can instantiate with a valid UUID v7', function () {
2026-06-14 21:32:07 +02:00
// GIVEN
$uuidV7 = Uuid::uuid7();
2026-06-14 21:32:07 +02:00
// WHEN
$vo = getNewOrderReference($uuidV7);
2026-06-14 21:32:07 +02:00
// THEN
expect($vo)->toBeInstanceOf(OrderReference::class);
expect((string) $vo)->toBe($uuidV7->toString());
expect($vo->value)->toBe($uuidV7);
2026-06-14 21:32:07 +02:00
});
it('throws exception if provided UUID is not v7', function () {
// GIVEN
$uuidV4 = Uuid::uuid4();
2026-06-14 21:32:07 +02:00
// WHEN
$action = fn () => getNewOrderReference($uuidV4);
2026-06-14 21:32:07 +02:00
// THEN
expect($action)->toThrow(\DomainException::class, 'value must be a valid UUID v7');
2026-06-14 21:32:07 +02:00
});
});