98 lines
3.0 KiB
PHP
Executable File
98 lines
3.0 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
declare(strict_types=1);
|
|
|
|
namespace Magento\Security\Model\ResourceModel;
|
|
|
|
use Magento\Framework\Locale\ResolverInterface;
|
|
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
|
|
use Magento\Security\Model\UserExpirationFactory;
|
|
use Magento\TestFramework\Helper\Bootstrap;
|
|
use Magento\User\Model\ResourceModel\User as UserResource;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
/**
|
|
* Verify user expiration resource model.
|
|
*/
|
|
class UserExpirationTest extends TestCase
|
|
{
|
|
/**
|
|
* @var UserExpiration
|
|
*/
|
|
private $userExpirationResource;
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
protected function setUp(): void
|
|
{
|
|
$this->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'];
|
|
}
|
|
}
|