Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ForceAdminPasswordChangeObserverTest.php
Go to the documentation of this file.
1 <?php
8 
13 class ForceAdminPasswordChangeObserverTest extends \PHPUnit\Framework\TestCase
14 {
16  protected $authMock;
17 
19  protected $observerConfig;
20 
23 
25  protected $urlInterfaceMock;
26 
28  protected $sessionMock;
29 
31  protected $authSessionMock;
32 
34  protected $actionFlagMock;
35 
38 
40  protected $eventManagerMock;
41 
43  protected $model;
44 
45  protected function setUp()
46  {
47  $this->authMock = $this->getMockBuilder(\Magento\Framework\AuthorizationInterface::class)
48  ->disableOriginalConstructor()
49  ->setMethods(['isAllowed'])
50  ->getMock();
51 
52  $this->configInterfaceMock = $this->getMockBuilder(\Magento\Backend\App\ConfigInterface::class)
53  ->disableOriginalConstructor()
54  ->setMethods([])
55  ->getMock();
56 
57  $this->urlInterfaceMock = $this->getMockBuilder(\Magento\Backend\Model\UrlInterface::class)
58  ->disableOriginalConstructor()
59  ->setMethods([])
60  ->getMock();
61 
62  $this->sessionMock = $this->getMockBuilder(\Magento\Backend\Model\Session::class)
63  ->disableOriginalConstructor()
64  ->setMethods([])
65  ->getMock();
66 
67  $this->authSessionMock = $this->getMockBuilder(\Magento\Backend\Model\Auth\Session::class)
68  ->disableOriginalConstructor()
69  ->setMethods(
70  [
71  'setPciAdminUserIsPasswordExpired',
72  'unsPciAdminUserIsPasswordExpired',
73  'getPciAdminUserIsPasswordExpired',
74  'isLoggedIn',
75  'clearStorage'
76  ]
77  )->getMock();
78 
79  $this->actionFlagMock = $this->getMockBuilder(\Magento\Framework\App\ActionFlag::class)
80  ->disableOriginalConstructor()
81  ->setMethods([])
82  ->getMock();
83 
84  $this->managerInterfaceMock = $this->getMockBuilder(\Magento\Framework\Message\ManagerInterface::class)
85  ->disableOriginalConstructor()
86  ->setMethods([])
87  ->getMock();
88 
89  $this->eventManagerMock = $this->getMockBuilder(\Magento\Framework\Event\ManagerInterface::class)
90  ->disableOriginalConstructor()
91  ->setMethods([])
92  ->getMockForAbstractClass();
93 
94  $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
95 
96  $this->observerConfig = $helper->getObject(
97  \Magento\User\Model\Backend\Config\ObserverConfig::class,
98  [
99  'backendConfig' => $this->configInterfaceMock
100  ]
101  );
102 
103  $this->model = $helper->getObject(
104  \Magento\User\Observer\Backend\ForceAdminPasswordChangeObserver::class,
105  [
106  'observerConfig' => $this->observerConfig,
107  'authorization' => $this->authMock,
108  'url' => $this->urlInterfaceMock,
109  'session' => $this->sessionMock,
110  'authSession' => $this->authSessionMock,
111  'actionFlag' => $this->actionFlagMock,
112  'messageManager' => $this->managerInterfaceMock,
113  ]
114  );
115  }
116 
117  public function testForceAdminPasswordChange()
118  {
120  $eventObserverMock = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
121  ->disableOriginalConstructor()
122  ->setMethods([])
123  ->getMock();
124 
126  $eventMock = $this->getMockBuilder(\Magento\Framework\Event::class)
127  ->disableOriginalConstructor()
128  ->setMethods(['getControllerAction', 'getRequest'])
129  ->getMock();
130 
131  $this->configInterfaceMock
132  ->expects($this->atLeastOnce())
133  ->method('getValue')
134  ->willReturn(1);
135  $this->authSessionMock->expects($this->once())->method('isLoggedIn')->willReturn(true);
136  $eventObserverMock->expects($this->atLeastOnce())->method('getEvent')->willReturn($eventMock);
138  $controllerMock = $this->getMockBuilder(\Magento\Framework\App\Action\AbstractAction::class)
139  ->disableOriginalConstructor()
140  ->setMethods(['getRedirect', 'getRequest'])
141  ->getMockForAbstractClass();
143  $requestMock = $this->getMockBuilder(\Magento\Framework\App\RequestInterface::class)
144  ->disableOriginalConstructor()
145  ->setMethods(['getFullActionName', 'setDispatched'])
146  ->getMockForAbstractClass();
147  $eventMock->expects($this->once())->method('getControllerAction')->willReturn($controllerMock);
148  $eventMock->expects($this->once())->method('getRequest')->willReturn($requestMock);
149  $this->authSessionMock->expects($this->once())->method('getPciAdminUserIsPasswordExpired')->willReturn(true);
150  $requestMock->expects($this->once())->method('getFullActionName')->willReturn('not_in_array');
151 
152  $this->authSessionMock->expects($this->once())->method('clearStorage');
153  $this->sessionMock->expects($this->once())->method('clearStorage');
154  $this->managerInterfaceMock->expects($this->once())->method('addErrorMessage');
155  $controllerMock->expects($this->once())->method('getRequest')->willReturn($requestMock);
156  $requestMock->expects($this->once())->method('setDispatched')->willReturn(false);
157 
158  $this->model->execute($eventObserverMock);
159  }
160 }
$helper
Definition: iframe.phtml:13