userExpirationResource = Bootstrap::getObjectManager()->get(UserExpiration::class); } /** * Verify user expiration saved with correct date. * * @magentoDataFixture Magento/User/_files/dummy_user.php * @dataProvider userExpirationSaveDataProvider * @magentoAppArea adminhtml * @return void */ public function testUserExpirationSave(string $locale): void { $localeResolver = Bootstrap::getObjectManager()->get(ResolverInterface::class); $timeZone = Bootstrap::getObjectManager()->get(TimezoneInterface::class); $localeResolver->setLocale($locale); $initialExpirationDate = $timeZone->date()->modify('+10 day'); $expireDate = $timeZone->formatDateTime( $initialExpirationDate, \IntlDateFormatter::MEDIUM, \IntlDateFormatter::MEDIUM ); $userExpirationFactory = Bootstrap::getObjectManager()->get(UserExpirationFactory::class); $userExpiration = $userExpirationFactory->create(); $userExpiration->setExpiresAt($expireDate); $userExpiration->setUserId($this->getUserId()); $this->userExpirationResource->save($userExpiration); $loadedUserExpiration = $userExpirationFactory->create(); $this->userExpirationResource->load($loadedUserExpiration, $userExpiration->getId()); self::assertEquals($initialExpirationDate->format('Y-m-d H:i:s'), $loadedUserExpiration->getExpiresAt()); } /** * Provides locale codes for validation test. * * @return array */ public function userExpirationSaveDataProvider(): array { return [ 'default' => [ 'locale_code' => 'en_US', ], 'non_default_english_textual' => [ 'locale_code' => 'de_DE', ], 'non_default_non_english_textual' => [ 'locale_code' => 'uk_UA', ], ]; } /** * Retrieve user id from db. * * @return int */ private function getUserId(): int { $userResource = Bootstrap::getObjectManager()->get(UserResource::class); $data = $userResource->loadByUsername('dummy_username'); return (int)$data['user_id']; } }