DateTime.fromParts.phpt 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * Test: Nette\Utils\DateTime::fromParts().
  4. */
  5. declare(strict_types=1);
  6. use Nette\Utils\DateTime;
  7. use Tester\Assert;
  8. require __DIR__ . '/../bootstrap.php';
  9. date_default_timezone_set('Europe/Prague');
  10. Assert::same('0001-12-09 00:00:00.000000', DateTime::fromParts(1, 12, 9)->format('Y-m-d H:i:s.u'));
  11. Assert::same('0085-12-09 00:00:00.000000', DateTime::fromParts(85, 12, 9)->format('Y-m-d H:i:s.u'));
  12. Assert::same('1985-01-01 00:00:00.000000', DateTime::fromParts(1985, 1, 1)->format('Y-m-d H:i:s.u'));
  13. Assert::same('1985-12-19 00:00:00.000000', DateTime::fromParts(1985, 12, 19)->format('Y-m-d H:i:s.u'));
  14. Assert::same('1985-12-09 01:02:00.000000', DateTime::fromParts(1985, 12, 9, 1, 2)->format('Y-m-d H:i:s.u'));
  15. Assert::same('1985-12-09 01:02:03.000000', DateTime::fromParts(1985, 12, 9, 1, 2, 3)->format('Y-m-d H:i:s.u'));
  16. Assert::same('1985-12-09 11:22:33.000000', DateTime::fromParts(1985, 12, 9, 11, 22, 33)->format('Y-m-d H:i:s.u'));
  17. Assert::same('1985-12-09 11:22:59.123000', DateTime::fromParts(1985, 12, 9, 11, 22, 59.123)->format('Y-m-d H:i:s.u'));
  18. Assert::exception(
  19. fn() => DateTime::fromParts(1985, 2, 29),
  20. Nette\InvalidArgumentException::class,
  21. "Invalid date '1985-02-29 00:00:0.00000'",
  22. );
  23. Assert::exception(
  24. fn() => DateTime::fromParts(0, 12, 9),
  25. Nette\InvalidArgumentException::class,
  26. );
  27. Assert::exception(
  28. fn() => DateTime::fromParts(1985, 0, 9),
  29. Nette\InvalidArgumentException::class,
  30. );
  31. Assert::exception(
  32. fn() => DateTime::fromParts(1985, 13, 9),
  33. Nette\InvalidArgumentException::class,
  34. );
  35. Assert::exception(
  36. fn() => DateTime::fromParts(1985, 12, 0),
  37. Nette\InvalidArgumentException::class,
  38. );
  39. Assert::exception(
  40. fn() => DateTime::fromParts(1985, 12, 32),
  41. Nette\InvalidArgumentException::class,
  42. );
  43. Assert::exception(
  44. fn() => DateTime::fromParts(1985, 12, 9, -1),
  45. Nette\InvalidArgumentException::class,
  46. );
  47. Assert::exception(
  48. fn() => DateTime::fromParts(1985, 12, 9, 60),
  49. Nette\InvalidArgumentException::class,
  50. );
  51. Assert::exception(
  52. fn() => DateTime::fromParts(1985, 12, 9, 0, -1),
  53. Nette\InvalidArgumentException::class,
  54. );
  55. Assert::exception(
  56. fn() => DateTime::fromParts(1985, 12, 9, 0, 60),
  57. Nette\InvalidArgumentException::class,
  58. );
  59. Assert::exception(
  60. fn() => DateTime::fromParts(1985, 12, 9, 0, 0, -1),
  61. Nette\InvalidArgumentException::class,
  62. );
  63. Assert::exception(
  64. fn() => DateTime::fromParts(1985, 12, 9, 0, 0, 60),
  65. Nette\InvalidArgumentException::class,
  66. );