Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
TrackAdminNewPasswordObserverTest.php
Go to the documentation of this file.
1 <?php
8 
13 class TrackAdminNewPasswordObserverTest extends \PHPUnit\Framework\TestCase
14 {
16  protected $observerConfig;
17 
20 
22  protected $userMock;
23 
25  protected $authSessionMock;
26 
29 
31  protected $model;
32 
33  protected function setUp()
34  {
35  $this->configInterfaceMock = $this->getMockBuilder(\Magento\Backend\App\ConfigInterface::class)
36  ->disableOriginalConstructor()
37  ->setMethods([])
38  ->getMock();
39 
40  $this->userMock = $this->getMockBuilder(\Magento\User\Model\ResourceModel\User::class)
41  ->disableOriginalConstructor()
42  ->setMethods([])
43  ->getMock();
44 
45  $this->authSessionMock = $this->getMockBuilder(\Magento\Backend\Model\Auth\Session::class)
46  ->disableOriginalConstructor()
47  ->setMethods(
48  [
49  'setPciAdminUserIsPasswordExpired',
50  'unsPciAdminUserIsPasswordExpired',
51  'getPciAdminUserIsPasswordExpired',
52  'isLoggedIn',
53  'clearStorage'
54  ]
55  )->getMock();
56 
57  $this->managerInterfaceMock = $this->getMockBuilder(\Magento\Framework\Message\ManagerInterface::class)
58  ->disableOriginalConstructor()
59  ->setMethods([])
60  ->getMock();
61 
62  $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
63 
64  $this->observerConfig = $helper->getObject(
65  \Magento\User\Model\Backend\Config\ObserverConfig::class,
66  [
67  'backendConfig' => $this->configInterfaceMock
68  ]
69  );
70 
71  $this->model = $helper->getObject(
72  \Magento\User\Observer\Backend\TrackAdminNewPasswordObserver::class,
73  [
74  'observerConfig' => $this->observerConfig,
75  'userResource' => $this->userMock,
76  'authSession' => $this->authSessionMock,
77  'messageManager' => $this->managerInterfaceMock,
78  ]
79  );
80  }
81 
82  public function testTrackAdminPassword()
83  {
84  $newPW = "mYn3wpassw0rd";
85  $uid = 123;
87  $eventObserverMock = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
88  ->disableOriginalConstructor()
89  ->setMethods([])
90  ->getMock();
91 
93  $eventMock = $this->getMockBuilder(\Magento\Framework\Event::class)
94  ->disableOriginalConstructor()
95  ->setMethods(['getObject'])
96  ->getMock();
97 
99  $userMock = $this->getMockBuilder(\Magento\User\Model\User::class)
100  ->disableOriginalConstructor()
101  ->setMethods(['getId', 'getPassword', 'getForceNewPassword'])
102  ->getMock();
103 
104  $eventObserverMock->expects($this->once())->method('getEvent')->willReturn($eventMock);
105  $eventMock->expects($this->once())->method('getObject')->willReturn($userMock);
106  $userMock->expects($this->once())->method('getId')->willReturn($uid);
107  $userMock->expects($this->once())->method('getPassword')->willReturn($newPW);
108  $userMock->expects($this->once())->method('getForceNewPassword')->willReturn(false);
109 
111  $collectionMock = $this->getMockBuilder(\Magento\Framework\Message\Collection::class)
112  ->disableOriginalConstructor()
113  ->setMethods([])
114  ->getMock();
115  $this->managerInterfaceMock
116  ->expects($this->once())
117  ->method('getMessages')
118  ->willReturn($collectionMock);
119  $this->authSessionMock->expects($this->once())->method('unsPciAdminUserIsPasswordExpired')->willReturn(null);
120 
121  $this->model->execute($eventObserverMock);
122  }
123 }
$helper
Definition: iframe.phtml:13