userExpirationResource = Bootstrap::getObjectManager()->get(UserExpiration::class); $this->fixtures = DataFixtureStorageManager::getStorage(); $this->userExpirationFactory = Bootstrap::getObjectManager()->get(UserExpirationFactory::class); $this->timeZone = Bootstrap::getObjectManager()->get(TimezoneInterface::class); } /** * Verify user expiration saved with large date. * * @throws LocalizedException * @return void */ #[ DataFixture(UserDataFixture::class, ['role_id' => 1], 'user') ] public function testLargeExpirationDate(): void { $user = $this->fixtures->get('user'); $userId = $user->getDataByKey('user_id'); // Get date more than 100 years from current date $initialExpirationDate = $this->timeZone->date()->modify('+100 years'); $expireDate = $this->timeZone->formatDateTime( $initialExpirationDate, \IntlDateFormatter::MEDIUM, \IntlDateFormatter::MEDIUM ); // Set Expiration date to the admin user and save $this->setExpirationDateToUser($expireDate, (int)$userId); // Load admin expiration date from database $loadedUserExpiration = $this->userExpirationFactory->create(); $this->userExpirationResource->load($loadedUserExpiration, $this->userExpiration->getId()); self::assertEquals( strtotime($initialExpirationDate->format('Y-m-d H:i:s')), strtotime($loadedUserExpiration->getExpiresAt()) ); } /** * Set expiration date to admin user and save * * @param string $expirationDate * @param int $userId * * @return void * @throws AlreadyExistsException */ private function setExpirationDateToUser(string $expirationDate, int $userId): void { $this->userExpiration = $this->userExpirationFactory->create(); $this->userExpiration->setExpiresAt($expirationDate); $this->userExpiration->setUserId($userId); $this->userExpirationResource->save($this->userExpiration); } }