DatesUtilsTest.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace App\Tests\Service\Utils;
  3. use App\Service\Utils\DatesUtils;
  4. use PHPUnit\Framework\TestCase;
  5. class DatesUtilsTest extends TestCase
  6. {
  7. /**
  8. * @see DatesUtils::isIntervalIsValidNow()
  9. * @noinspection PhpRedundantOptionalArgumentInspection
  10. */
  11. public function testIsIntervalIsValidNow():void
  12. {
  13. $this->assertTrue(DatesUtils::isIntervalIsValidNow(new \DateTime('2020-01-02'), new \DateTime('2025-01-02')));
  14. $this->assertTrue(DatesUtils::isIntervalIsValidNow(new \DateTime('2020-01-02'), null));
  15. }
  16. /**
  17. * @see DatesUtils::isIntervalIsValidNow()
  18. */
  19. public function testIsIntervalIsNotValidNow():void
  20. {
  21. $this->assertFalse(DatesUtils::isIntervalIsValidNow(new \DateTime('2019-01-02'), new \DateTime('2020-01-02')));
  22. }
  23. /**
  24. * @see DatesUtils::new()
  25. */
  26. public function testNew(): void {
  27. DatesUtils::clearFakeDatetime();
  28. self::assertEquals('2021-01-01', DatesUtils::new('2021-01-01')->format('Y-m-d'));
  29. $now = new \DateTime();
  30. self::assertEquals(
  31. $now->format('Y-m-d'),
  32. DatesUtils::new()->format('Y-m-d')
  33. );
  34. DatesUtils::setFakeDatetime('2021-01-01');
  35. /** @noinspection PhpRedundantOptionalArgumentInspection */
  36. self::assertEquals('2021-01-01', DatesUtils::new('now')->format('Y-m-d'));
  37. DatesUtils::clearFakeDatetime();
  38. $now = new \DateTime();
  39. self::assertEquals(
  40. $now->format('Y-m-d'),
  41. DatesUtils::new()->format('Y-m-d')
  42. );
  43. }
  44. }