FrozenClockTest.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. declare(strict_types=1);
  3. namespace Lcobucci\Clock;
  4. use DateTimeImmutable;
  5. use PHPUnit\Framework\TestCase;
  6. final class FrozenClockTest extends TestCase
  7. {
  8. /**
  9. * @test
  10. *
  11. * @covers \Lcobucci\Clock\FrozenClock::__construct
  12. * @covers \Lcobucci\Clock\FrozenClock::now
  13. */
  14. public function nowShouldReturnAlwaysTheSameObject()
  15. {
  16. $now = new DateTimeImmutable();
  17. $clock = new FrozenClock($now);
  18. self::assertSame($now, $clock->now());
  19. self::assertSame($now, $clock->now());
  20. }
  21. /**
  22. * @test
  23. *
  24. * @covers \Lcobucci\Clock\FrozenClock::setTo
  25. * @uses \Lcobucci\Clock\FrozenClock::__construct()
  26. * @uses \Lcobucci\Clock\FrozenClock::now
  27. */
  28. public function nowSetChangesTheObject()
  29. {
  30. $oldNow = new DateTimeImmutable();
  31. $clock = new FrozenClock($oldNow);
  32. $newNow = new DateTimeImmutable();
  33. $clock->setTo($newNow);
  34. self::assertNotSame($oldNow, $clock->now());
  35. self::assertSame($newNow, $clock->now());
  36. }
  37. }