<?php declare(strict_types=1); namespace Ramsey\Uuid\Test; use DateTimeImmutable; use DateTimeInterface; use Ramsey\Uuid\Rfc4122\FieldsInterface; use Ramsey\Uuid\Rfc4122\UuidV7; use Ramsey\Uuid\Rfc4122\UuidV8; use Ramsey\Uuid\Type\Hexadecimal; use Ramsey\Uuid\Type\Integer as IntegerObject; use Ramsey\Uuid\Uuid; use function Ramsey\Uuid\v1; use function Ramsey\Uuid\v2; use function Ramsey\Uuid\v3; use function Ramsey\Uuid\v4; use function Ramsey\Uuid\v5; use function Ramsey\Uuid\v6; use function Ramsey\Uuid\v7; use function Ramsey\Uuid\v8; class FunctionsTest extends TestCase { public function testV1ReturnsVersion1UuidString(): void { $v1 = v1(); $this->assertIsString($v1); $this->assertSame(Uuid::UUID_TYPE_TIME, Uuid::fromString($v1)->getVersion()); } public function testV2ReturnsVersion2UuidString(): void { $v2 = v2( Uuid::DCE_DOMAIN_PERSON, new IntegerObject('1004'), new Hexadecimal('aabbccdd0011'), 63 ); /** @var FieldsInterface $fields */ $fields = Uuid::fromString($v2)->getFields(); $this->assertIsString($v2); $this->assertSame(Uuid::UUID_TYPE_DCE_SECURITY, $fields->getVersion()); } public function testV3ReturnsVersion3UuidString(): void { $ns = Uuid::fromString(Uuid::NAMESPACE_URL); $v3 = v3($ns, 'https://example.com/foo'); $this->assertIsString($v3); $this->assertSame(Uuid::UUID_TYPE_HASH_MD5, Uuid::fromString($v3)->getVersion()); } public function testV4ReturnsVersion4UuidString(): void { $v4 = v4(); $this->assertIsString($v4); $this->assertSame(Uuid::UUID_TYPE_RANDOM, Uuid::fromString($v4)->getVersion()); } public function testV5ReturnsVersion5UuidString(): void { $ns = Uuid::fromString(Uuid::NAMESPACE_URL); $v5 = v5($ns, 'https://example.com/foo'); $this->assertIsString($v5); $this->assertSame(Uuid::UUID_TYPE_HASH_SHA1, Uuid::fromString($v5)->getVersion()); } public function testV6ReturnsVersion6UuidString(): void { $v6 = v6( new Hexadecimal('aabbccdd0011'), 1234 ); /** @var FieldsInterface $fields */ $fields = Uuid::fromString($v6)->getFields(); $this->assertIsString($v6); $this->assertSame(Uuid::UUID_TYPE_REORDERED_TIME, $fields->getVersion()); } public function testV7ReturnsVersion7UuidString(): void { $v7 = v7(); /** @var UuidV7 $uuid */ $uuid = Uuid::fromString($v7); /** @var FieldsInterface $fields */ $fields = $uuid->getFields(); $this->assertIsString($v7); $this->assertSame(Uuid::UUID_TYPE_UNIX_TIME, $fields->getVersion()); $this->assertInstanceOf(DateTimeInterface::class, $uuid->getDateTime()); } public function testV7WithCustomDateTimeReturnsVersion7UuidString(): void { $dateTime = new DateTimeImmutable('2022-09-14T22:44:33+00:00'); $v7 = v7($dateTime); /** @var UuidV7 $uuid */ $uuid = Uuid::fromString($v7); /** @var FieldsInterface $fields */ $fields = $uuid->getFields(); $this->assertIsString($v7); $this->assertSame(Uuid::UUID_TYPE_UNIX_TIME, $fields->getVersion()); $this->assertInstanceOf(DateTimeInterface::class, $uuid->getDateTime()); $this->assertSame(1663195473, $uuid->getDateTime()->getTimestamp()); } public function testV8ReturnsVersion8UuidString(): void { $v8 = v8("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"); /** @var UuidV8 $uuid */ $uuid = Uuid::fromString($v8); /** @var FieldsInterface $fields */ $fields = $uuid->getFields(); $this->assertIsString($v8); $this->assertSame(Uuid::UUID_TYPE_CUSTOM, $fields->getVersion()); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Builder | Folder | 0755 |
|
|
Codec | Folder | 0755 |
|
|
Converter | Folder | 0755 |
|
|
Encoder | Folder | 0755 |
|
|
Generator | Folder | 0755 |
|
|
Guid | Folder | 0755 |
|
|
Math | Folder | 0755 |
|
|
Nonstandard | Folder | 0755 |
|
|
Provider | Folder | 0755 |
|
|
Rfc4122 | Folder | 0755 |
|
|
Type | Folder | 0755 |
|
|
Validator | Folder | 0755 |
|
|
benchmark | Folder | 0755 |
|
|
static-analysis | Folder | 0755 |
|
|
BinaryUtilsTest.php | File | 6.93 KB | 0644 |
|
DeprecatedUuidMethodsTraitTest.php | File | 1.99 KB | 0644 |
|
ExpectedBehaviorTest.php | File | 28.31 KB | 0644 |
|
FeatureSetTest.php | File | 2.63 KB | 0644 |
|
FunctionsTest.php | File | 4 KB | 0644 |
|
TestCase.php | File | 572 B | 0644 |
|
UuidFactoryTest.php | File | 8.35 KB | 0644 |
|
UuidTest.php | File | 73.48 KB | 0644 |
|
bootstrap.php | File | 231 B | 0644 |
|