container = $app->getContainer(); $this->episodeActionWriter = $this->container->get(EpisodeActionWriter::class); $this->episodeActionRepository = $this->container->get(EpisodeActionRepository::class); $this->dbConnection = $this->container->get(IDBConnection::class); $this->migrationConfig = $this->container->get(AllConfig::class ); } /** * @before */ public function before() { $this->startTransaction(); } public function testTimestampConversionRepairStep() { $episodeActionEntity = new EpisodeActionEntity(); $episodeActionEntity->setPodcast("https://podcast_01.url"); $episodeActionEntity->setEpisode(uniqid("https://episode_01.url")); $episodeActionEntity->setAction("PLAY"); $episodeActionEntity->setPosition(5); $episodeActionEntity->setStarted(0); $episodeActionEntity->setTotal(123); $episodeActionEntity->setTimestamp("Mon Aug 23 01:58:56 GMT+02:00 2021"); $episodeActionEntity->setUserId(self::ADMIN); $guid = uniqid("self::TEST_GUID_1234"); $episodeActionEntity->setGuid($guid); $this->episodeActionWriter->save($episodeActionEntity); $episodeActionEntityBeforeConversion = $this->episodeActionRepository->findByEpisodeIdentifier($guid, self::ADMIN); $this->assertEquals( 0, $episodeActionEntityBeforeConversion->getTimestampEpoch() ); $timestampMigration = new TimestampMigration($this->dbConnection, $this->migrationConfig); $timestampMigration->run(new SimpleOutput(new Log(new TestWriter()), "gpoddersync")); $episodeActionEntityAfterConversion = $this->episodeActionRepository->findByEpisodeIdentifier($guid, self::ADMIN); $this->assertSame( (int)(new \DateTime($episodeActionEntity->getTimestamp()))->format("U"), $episodeActionEntityAfterConversion->getTimestampEpoch() ); } /** * @after */ public function after() { $this->rollbackTransation(); } }