Skip to content

Commit b14e701

Browse files
[ACQE-4691] Verify setting large expiration date to admin user
1 parent b9101b1 commit b14e701

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

dev/tests/integration/testsuite/Magento/Security/Model/ResourceModel/UserExpirationTest.php

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,15 @@
77

88
namespace Magento\Security\Model\ResourceModel;
99

10+
use Magento\Framework\Exception\LocalizedException;
1011
use Magento\Framework\Locale\ResolverInterface;
1112
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
1213
use Magento\Security\Model\UserExpirationFactory;
14+
use Magento\TestFramework\Fixture\DataFixture;
15+
use Magento\TestFramework\Fixture\DataFixtureStorageManager;
1316
use Magento\TestFramework\Helper\Bootstrap;
1417
use Magento\User\Model\ResourceModel\User as UserResource;
18+
use Magento\User\Test\Fixture\User as UserDataFixture;
1519
use PHPUnit\Framework\TestCase;
1620

1721
/**
@@ -26,10 +30,12 @@ class UserExpirationTest extends TestCase
2630

2731
/**
2832
* @inheritdoc
33+
* @throws LocalizedException
2934
*/
3035
protected function setUp(): void
3136
{
3237
$this->userExpirationResource = Bootstrap::getObjectManager()->get(UserExpiration::class);
38+
$this->fixtures = DataFixtureStorageManager::getStorage();
3339
}
3440

3541
/**
@@ -82,6 +88,43 @@ public function userExpirationSaveDataProvider(): array
8288
];
8389
}
8490

91+
/**
92+
* Verify user expiration saved with large date.
93+
*
94+
* @throws LocalizedException
95+
* @return void
96+
*/
97+
#[
98+
DataFixture(UserDataFixture::class, ['role_id' => 1], 'user')
99+
]
100+
public function testLargeExpirationDate(): void
101+
{
102+
$user = $this->fixtures->get('user');
103+
$userId = $user->getDataByKey('user_id');
104+
105+
// Get date more than 100 years from current date
106+
$timeZone = Bootstrap::getObjectManager()->get(TimezoneInterface::class);
107+
$initialExpirationDate = $timeZone->date()->modify('+100 years');
108+
$expireDate = $timeZone->formatDateTime(
109+
$initialExpirationDate,
110+
\IntlDateFormatter::MEDIUM,
111+
\IntlDateFormatter::MEDIUM
112+
);
113+
114+
// Set Expiration date to the admin user and save
115+
$userExpirationFactory = Bootstrap::getObjectManager()->get(UserExpirationFactory::class);
116+
$userExpiration = $userExpirationFactory->create();
117+
$userExpiration->setExpiresAt($expireDate);
118+
$userExpiration->setUserId($userId);
119+
$this->userExpirationResource->save($userExpiration);
120+
121+
// Load admin expiration date from database
122+
$loadedUserExpiration = $userExpirationFactory->create();
123+
$this->userExpirationResource->load($loadedUserExpiration, $userExpiration->getId());
124+
125+
self::assertEquals($initialExpirationDate->format('Y-m-d H:i:s'), $loadedUserExpiration->getExpiresAt());
126+
}
127+
85128
/**
86129
* Retrieve user id from db.
87130
*

0 commit comments

Comments
 (0)