64 $this->securityConfigMock = $this->getMockBuilder(\
Magento\Security\Model\ConfigInterface::class)
65 ->disableOriginalConstructor()
68 $this->passwordResetRequestEventCollectionFactoryMock = $this->createPartialMock(
73 $this->passwordResetRequestEventCollectionMock = $this->createPartialMock(
75 [
'deleteRecordsOlderThen']
78 $this->passwordResetRequestEventFactoryMock = $this->createPartialMock(
79 \
Magento\Security\Model\PasswordResetRequestEventFactory::class,
83 $this->passwordResetRequestEventMock = $this->createPartialMock(
84 \
Magento\Security\Model\PasswordResetRequestEvent::class,
85 [
'setRequestType',
'setAccountReference',
'setIp',
'save']
88 $securityChecker = $this->createMock(\
Magento\Security\Model\SecurityChecker\SecurityCheckerInterface::class);
90 $this->eventManagerMock = $this->getMockForAbstractClass(
91 \
Magento\Framework\Event\ManagerInterface::class,
100 $this->dateTimeMock = $this->getMockBuilder(DateTime::class)
101 ->disableOriginalConstructor()
104 $this->remoteAddressMock = $this->getMockBuilder(RemoteAddress::class)
105 ->disableOriginalConstructor()
108 $this->model = $this->objectManager->getObject(
109 SecurityManager::class,
111 'securityConfig' => $this->securityConfigMock,
112 'passwordResetRequestEventFactory' => $this->passwordResetRequestEventFactoryMock,
113 'passwordResetRequestEventCollectionFactory' => $this->passwordResetRequestEventCollectionFactoryMock,
114 'eventManager' => $this->eventManagerMock,
115 'securityCheckers' => [$securityChecker],
116 'dateTime' => $this->dateTimeMock,
117 'remoteAddress' => $this->remoteAddressMock
127 $securityChecker = $this->createMock(\
Magento\Framework\Message\ManagerInterface::class);
129 $this->expectException(\
Magento\Framework\Exception\LocalizedException::class);
130 $this->expectExceptionMessage(
131 (
string)
__(
'Incorrect Security Checker class. It has to implement SecurityCheckerInterface')
134 $this->model->__construct(
135 $this->securityConfigMock,
136 $this->passwordResetRequestEventFactoryMock,
137 $this->passwordResetRequestEventCollectionFactoryMock,
138 $this->eventManagerMock,
140 $this->remoteAddressMock,
151 $accountReference = \Magento\Security\Model\Config\Source\ResetMethod::OPTION_BY_IP_AND_EMAIL;
154 $this->remoteAddressMock->expects($this->once())
155 ->method(
'getRemoteAddress')
156 ->will($this->returnValue($longIp));
158 $this->passwordResetRequestEventFactoryMock->expects($this->once())
160 ->willReturn($this->passwordResetRequestEventMock);
162 $this->passwordResetRequestEventMock->expects($this->once())
163 ->method(
'setRequestType')
167 $this->passwordResetRequestEventMock->expects($this->once())
168 ->method(
'setAccountReference')
169 ->with($accountReference)
172 $this->passwordResetRequestEventMock->expects($this->once())
177 $this->passwordResetRequestEventMock->expects($this->once())
181 $this->model->performSecurityCheck($requestType, $accountReference);
191 $this->passwordResetRequestEventCollectionFactoryMock->expects($this->once())
193 ->willReturn($this->passwordResetRequestEventCollectionMock);
195 $this->dateTimeMock->expects($this->once())
196 ->method(
'gmtTimestamp')
197 ->willReturn($timestamp);
199 $this->passwordResetRequestEventCollectionMock->expects($this->once())
200 ->method(
'deleteRecordsOlderThen')
206 $this->model->cleanExpiredRecords();
testPerformSecurityCheck()
const CUSTOMER_PASSWORD_RESET_REQUEST
$passwordResetRequestEventCollectionMock
$passwordResetRequestEventFactoryMock
$passwordResetRequestEventMock
$passwordResetRequestEventCollectionFactoryMock
testConstructorException()
const SECURITY_CONTROL_RECORDS_LIFE_TIME
testCleanExpiredRecords()