SystemClockTest.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. declare(strict_types=1);
  3. namespace Lcobucci\Clock;
  4. use DateTimeImmutable;
  5. use DateTimeZone;
  6. use PHPUnit\Framework\TestCase;
  7. final class SystemClockTest extends TestCase
  8. {
  9. /**
  10. * @test
  11. *
  12. * @covers \Lcobucci\Clock\SystemClock::__construct
  13. */
  14. public function constructShouldUseSystemDefaultTimezoneIfNoneWasProvided(): void
  15. {
  16. self::assertAttributeEquals(new DateTimeZone('UTC'), 'timezone', new SystemClock());
  17. }
  18. /**
  19. * @test
  20. *
  21. * @covers \Lcobucci\Clock\SystemClock::__construct
  22. * @covers \Lcobucci\Clock\SystemClock::now
  23. */
  24. public function nowShouldRespectTheProvidedTimezone(): void
  25. {
  26. $timezone = new DateTimeZone('America/Sao_Paulo');
  27. $clock = new SystemClock($timezone);
  28. $lower = new DateTimeImmutable('now', $timezone);
  29. $now = $clock->now();
  30. $upper = new DateTimeImmutable('now', $timezone);
  31. self::assertEquals($timezone, $now->getTimezone());
  32. self::assertGreaterThanOrEqual($lower, $now);
  33. self::assertLessThanOrEqual($upper, $now);
  34. }
  35. }