container = $app->getContainer(); } public function testTimestampOutputIsUTCHumandReadable() : void { /** @var EpisodeActionSaver $episodeActionSaver */ $episodeActionSaver = $this->container->get(EpisodeActionSaver::class); $episodeUrl = uniqid("test_https://dts.podtrac.com/"); $timestampHumanReadable = "2021-08-22T23:58:56"; $guid = uniqid("test_gid://art19-episode-locator/V0/Ktd"); $savedEpisodeActionEntity = $episodeActionSaver->saveEpisodeActions( "[EpisodeAction{podcast='https://rss.art19.com/dr-death-s3-miracle-man', episode='{$episodeUrl}', guid='{$guid}', action=PLAY, timestamp=Mon Aug 23 01:58:56 GMT+02:00 2021, started=47, position=54, total=2252}]", self::USER_ID_0 )[0]; self::assertSame(1629676736, $savedEpisodeActionEntity->getTimestampEpoch()); $timestampOutputFormatted = (\DateTime::createFromFormat("U", (string)$savedEpisodeActionEntity->getTimestampEpoch())) ->setTimezone(new \DateTimeZone('UTC')) ->format('Y-m-d\TH:i:s'); self::assertSame( $timestampHumanReadable, $timestampOutputFormatted ); /** @var $episodeActionRepository EpisodeActionRepository */ $episodeActionRepository = $this->container->get(EpisodeActionRepository::class); $retrievedEpisodeActionEntity = $episodeActionRepository->findByEpisodeIdentifier($guid, self::USER_ID_0); self::assertSame('2021-08-22T23:58:56', $retrievedEpisodeActionEntity->getTimestamp()); } }