DeprecatedUuidMethodsTraitTest.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. declare(strict_types=1);
  3. namespace Ramsey\Uuid\Test;
  4. use DateTimeInterface;
  5. use Mockery;
  6. use Ramsey\Uuid\Codec\CodecInterface;
  7. use Ramsey\Uuid\Converter\NumberConverterInterface;
  8. use Ramsey\Uuid\Converter\Time\GenericTimeConverter;
  9. use Ramsey\Uuid\Converter\TimeConverterInterface;
  10. use Ramsey\Uuid\Exception\DateTimeException;
  11. use Ramsey\Uuid\Math\BrickMathCalculator;
  12. use Ramsey\Uuid\Rfc4122\Fields;
  13. use Ramsey\Uuid\Rfc4122\FieldsInterface;
  14. use Ramsey\Uuid\Type\Hexadecimal;
  15. use Ramsey\Uuid\Type\Time;
  16. use Ramsey\Uuid\Uuid;
  17. class DeprecatedUuidMethodsTraitTest extends TestCase
  18. {
  19. public function testGetDateTime(): void
  20. {
  21. $calculator = new BrickMathCalculator();
  22. $fields = new Fields((string) hex2bin('ff6f8cb0c57d11e19b210800200c9a66'));
  23. $numberConverter = Mockery::mock(NumberConverterInterface::class);
  24. $codec = Mockery::mock(CodecInterface::class);
  25. $timeConverter = new GenericTimeConverter($calculator);
  26. $uuid = new Uuid($fields, $numberConverter, $codec, $timeConverter);
  27. $this->assertInstanceOf(DateTimeInterface::class, $uuid->getDateTime());
  28. $this->assertSame('2012-07-04T02:14:34+00:00', $uuid->getDateTime()->format('c'));
  29. $this->assertSame('1341368074.491000', $uuid->getDateTime()->format('U.u'));
  30. }
  31. public function testGetDateTimeThrowsException(): void
  32. {
  33. $fields = Mockery::mock(FieldsInterface::class, [
  34. 'getVersion' => 1,
  35. 'getTimestamp' => new Hexadecimal('0'),
  36. ]);
  37. $numberConverter = Mockery::mock(NumberConverterInterface::class);
  38. $codec = Mockery::mock(CodecInterface::class);
  39. $timeConverter = Mockery::mock(TimeConverterInterface::class, [
  40. 'convertTime' => new Time('0', '1234567'),
  41. ]);
  42. $uuid = new Uuid($fields, $numberConverter, $codec, $timeConverter);
  43. $this->expectException(DateTimeException::class);
  44. $uuid->getDateTime();
  45. }
  46. }