objectManager = new ObjectManager($this); $this->messageManagerMock = $this->createMock(\Magento\Framework\Message\ManagerInterface::class); $this->adminSessionsManagerMock = $this->createPartialMock( \Magento\Security\Model\AdminSessionsManager::class, ['getLogoutReasonMessageByStatus'] ); $this->securityCookieMock = $this->createPartialMock( SecurityCookie::class, ['getLogoutReasonCookie', 'deleteLogoutReasonCookie'] ); $this->backendControllerAuthLoginMock = $this->createPartialMock( \Magento\Backend\Controller\Adminhtml\Auth\Login::class, ['getRequest', 'getUrl'] ); $this->requestMock = $this->createPartialMock(\Magento\Framework\App\Request\Http::class, ['getUri']); $this->controller = $this->objectManager->getObject( \Magento\Security\Model\Plugin\LoginController::class, [ 'messageManager' => $this->messageManagerMock, 'sessionsManager' => $this->adminSessionsManagerMock, 'securityCookie' => $this->securityCookieMock ] ); } /** * @return void */ public function testBeforeExecute() { $logoutReasonCode = 2; $uri = '/uri/'; $errorMessage = 'Error Message'; $this->securityCookieMock->expects($this->once()) ->method('getLogoutReasonCookie') ->willReturn($logoutReasonCode); $this->backendControllerAuthLoginMock->expects($this->once()) ->method('getRequest') ->willReturn($this->requestMock); $this->requestMock->expects($this->once()) ->method('getUri') ->willReturn($uri); $this->backendControllerAuthLoginMock->expects($this->once()) ->method('getUrl') ->willReturn($uri); $this->adminSessionsManagerMock->expects($this->once()) ->method('getLogoutReasonMessageByStatus') ->with($logoutReasonCode) ->willReturn($errorMessage); $this->messageManagerMock->expects($this->once()) ->method('addErrorMessage') ->with($errorMessage); $this->securityCookieMock->expects($this->once()) ->method('deleteLogoutReasonCookie') ->willReturnSelf(); $this->controller->beforeExecute($this->backendControllerAuthLoginMock); } }