Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
LoginControllerTest.php
Go to the documentation of this file.
1 <?php
8 
11 
15 class LoginControllerTest extends \PHPUnit\Framework\TestCase
16 {
18  protected $controller;
19 
22 
25 
28 
31 
33  protected $requestMock;
34 
36  protected $objectManager;
37 
42  public function setUp()
43  {
44  $this->objectManager = new ObjectManager($this);
45 
46  $this->messageManagerMock = $this->createMock(\Magento\Framework\Message\ManagerInterface::class);
47 
48  $this->adminSessionsManagerMock = $this->createPartialMock(
49  \Magento\Security\Model\AdminSessionsManager::class,
50  ['getLogoutReasonMessageByStatus']
51  );
52 
53  $this->securityCookieMock = $this->createPartialMock(
54  SecurityCookie::class,
55  ['getLogoutReasonCookie', 'deleteLogoutReasonCookie']
56  );
57 
58  $this->backendControllerAuthLoginMock = $this->createPartialMock(
59  \Magento\Backend\Controller\Adminhtml\Auth\Login::class,
60  ['getRequest', 'getUrl']
61  );
62 
63  $this->requestMock = $this->createPartialMock(\Magento\Framework\App\Request\Http::class, ['getUri']);
64 
65  $this->controller = $this->objectManager->getObject(
66  \Magento\Security\Model\Plugin\LoginController::class,
67  [
68  'messageManager' => $this->messageManagerMock,
69  'sessionsManager' => $this->adminSessionsManagerMock,
70  'securityCookie' => $this->securityCookieMock
71  ]
72  );
73  }
74 
78  public function testBeforeExecute()
79  {
80  $logoutReasonCode = 2;
81  $uri = '/uri/';
82  $errorMessage = 'Error Message';
83 
84  $this->securityCookieMock->expects($this->once())
85  ->method('getLogoutReasonCookie')
86  ->willReturn($logoutReasonCode);
87 
88  $this->backendControllerAuthLoginMock->expects($this->once())
89  ->method('getRequest')
90  ->willReturn($this->requestMock);
91 
92  $this->requestMock->expects($this->once())
93  ->method('getUri')
94  ->willReturn($uri);
95 
96  $this->backendControllerAuthLoginMock->expects($this->once())
97  ->method('getUrl')
98  ->willReturn($uri);
99 
100  $this->adminSessionsManagerMock->expects($this->once())
101  ->method('getLogoutReasonMessageByStatus')
102  ->with($logoutReasonCode)
103  ->willReturn($errorMessage);
104 
105  $this->messageManagerMock->expects($this->once())
106  ->method('addErrorMessage')
107  ->with($errorMessage);
108 
109  $this->securityCookieMock->expects($this->once())
110  ->method('deleteLogoutReasonCookie')
111  ->willReturnSelf();
112 
113  $this->controller->beforeExecute($this->backendControllerAuthLoginMock);
114  }
115 }