Skip to content

Commit

Permalink
Merge pull request #383 from cs278/empty-string
Browse files Browse the repository at this point in the history
Fix soft BC break with `Uuid::fromString()` signature
  • Loading branch information
ramsey authored Aug 11, 2021
2 parents 7231612 + ef1eb74 commit 55256bc
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/Uuid.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
use Ramsey\Uuid\Type\Hexadecimal;
use Ramsey\Uuid\Type\Integer as IntegerObject;

use function assert;
use function bin2hex;
use function preg_match;
use function str_replace;
Expand Down Expand Up @@ -436,7 +437,7 @@ public static function fromBytes(string $bytes): UuidInterface
/**
* Creates a UUID from the string standard representation
*
* @param non-empty-string $uuid A hexadecimal string
* @param string $uuid A hexadecimal string
*
* @return UuidInterface A UuidInterface instance created from a hexadecimal
* string representation
Expand All @@ -452,6 +453,8 @@ public static function fromBytes(string $bytes): UuidInterface
public static function fromString(string $uuid): UuidInterface
{
if (! self::$factoryReplaced && preg_match(LazyUuidFromString::VALID_REGEX, $uuid) === 1) {
assert($uuid !== '');

return new LazyUuidFromString(strtolower($uuid));
}

Expand Down
8 changes: 8 additions & 0 deletions tests/UuidTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,14 @@ public function testFromStringWithUrn(): void
$this->assertSame('ff6f8cb0-c57d-11e1-9b21-0800200c9a66', $uuid->toString());
}

public function testFromStringWithEmptyString(): void
{
$this->expectException(InvalidUuidStringException::class);
$this->expectExceptionMessage('Invalid UUID string: ');

Uuid::fromString('');
}

public function testGetBytes(): void
{
$uuid = Uuid::fromString('ff6f8cb0-c57d-11e1-9b21-0800200c9a66');
Expand Down

0 comments on commit 55256bc

Please sign in to comment.