diff --git a/src/Generator/UnixTimeGenerator.php b/src/Generator/UnixTimeGenerator.php index 93320cb..024ed51 100644 --- a/src/Generator/UnixTimeGenerator.php +++ b/src/Generator/UnixTimeGenerator.php @@ -19,6 +19,7 @@ use DateTimeImmutable; use DateTimeInterface; use Ramsey\Uuid\Type\Hexadecimal; +use function assert; use function hash; use function pack; use function str_pad; @@ -81,7 +82,8 @@ class UnixTimeGenerator implements TimeGeneratorInterface $time = str_pad(BigInteger::of($time)->toBytes(false), 6, "\x00", STR_PAD_LEFT); } - /** @var non-empty-string */ + assert(strlen($time) === 6); + return $time . pack('n*', self::$rand[1], self::$rand[2], self::$rand[3], self::$rand[4], self::$rand[5]); } diff --git a/tests/Generator/UnixTimeGeneratorTest.php b/tests/Generator/UnixTimeGeneratorTest.php index 8fab598..1d28d82 100644 --- a/tests/Generator/UnixTimeGeneratorTest.php +++ b/tests/Generator/UnixTimeGeneratorTest.php @@ -35,7 +35,11 @@ class UnixTimeGeneratorTest extends TestCase $bytes = $unixTimeGenerator->generate(null, null, $dateTime); - $this->assertSame($expectedBytes, $bytes); + $this->assertSame( + $expectedBytes, + $bytes, + 'Failed asserting that "' . bin2hex($bytes) . '" is equal to "' . bin2hex($expectedBytes) . '"', + ); } /**