diff --git a/src/FrozenClock.php b/src/FrozenClock.php index 80862a72..b9d54c89 100644 --- a/src/FrozenClock.php +++ b/src/FrozenClock.php @@ -18,6 +18,11 @@ public function __construct(DateTimeImmutable $now) $this->now = $now; } + public function setTo(DateTimeImmutable $now): void + { + $this->now = $now; + } + public function now(): DateTimeImmutable { return $this->now; diff --git a/test/FrozenClockTest.php b/test/FrozenClockTest.php index 5a39d1db..80be833d 100644 --- a/test/FrozenClockTest.php +++ b/test/FrozenClockTest.php @@ -23,4 +23,23 @@ public function nowShouldReturnAlwaysTheSameObject() self::assertSame($now, $clock->now()); self::assertSame($now, $clock->now()); } + + /** + * @test + * + * @covers \Lcobucci\Clock\FrozenClock::setTo + * @uses \Lcobucci\Clock\FrozenClock::__construct() + * @uses \Lcobucci\Clock\FrozenClock::now + */ + public function nowSetChangesTheObject() + { + $oldNow = new DateTimeImmutable(); + $clock = new FrozenClock($oldNow); + + $newNow = new DateTimeImmutable(); + $clock->setTo($newNow); + + self::assertNotSame($oldNow, $clock->now()); + self::assertSame($newNow, $clock->now()); + } }