DatesUtilsTest.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Tests\Unit\Service\Utils;
  3. use _PHPStan_532094bc1\Nette\Utils\DateTime;
  4. use App\Service\Utils\DatesUtils;
  5. use PHPUnit\Framework\TestCase;
  6. class DatesUtilsTest extends TestCase
  7. {
  8. public function tearDown(): void
  9. {
  10. DatesUtils::clearFakeDatetime();
  11. }
  12. /**
  13. * @see DatesUtils::isNowInInterval()
  14. * @noinspection PhpRedundantOptionalArgumentInspection
  15. */
  16. public function testIsNowInInterval():void
  17. {
  18. DatesUtils::setFakeDatetime('2023-01-01');
  19. $this->assertTrue(DatesUtils::isNowInInterval(new \DateTime('2020-01-02'), new \DateTime('2025-01-02')));
  20. $this->assertTrue(DatesUtils::isNowInInterval(new \DateTime('2020-01-02'), null));
  21. }
  22. /**
  23. * @see DatesUtils::isNowInInterval()
  24. */
  25. public function testIsNowInIntervalFalse():void
  26. {
  27. DatesUtils::setFakeDatetime('2023-01-01');
  28. $this->assertFalse(DatesUtils::isNowInInterval(new \DateTime('2019-01-02'), new \DateTime('2020-01-02')));
  29. }
  30. /**
  31. * @see DatesUtils::new()
  32. */
  33. public function testNew(): void {
  34. self::assertEquals('2021-01-01', DatesUtils::new('2021-01-01')->format('Y-m-d'));
  35. $now = new \DateTime();
  36. self::assertEquals(
  37. $now->format('Y-m-d'),
  38. DatesUtils::new()->format('Y-m-d')
  39. );
  40. DatesUtils::setFakeDatetime('2021-01-01');
  41. /** @noinspection PhpRedundantOptionalArgumentInspection */
  42. self::assertEquals('2021-01-01', DatesUtils::new('now')->format('Y-m-d'));
  43. DatesUtils::clearFakeDatetime();
  44. $now = new \DateTime();
  45. self::assertEquals(
  46. $now->format('Y-m-d'),
  47. DatesUtils::new()->format('Y-m-d')
  48. );
  49. }
  50. public function testGetDaysSinceLastUpdate(): void {
  51. DatesUtils::setFakeDatetime('2023-01-21');
  52. $this->assertEquals(
  53. DatesUtils::daysSince(new \DateTime('2023-01-01')),
  54. 20
  55. );
  56. }
  57. }