TrackAdminNewPasswordObserverTest.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\User\Test\Unit\Observer\Backend;
  7. /**
  8. * Test class for Magento\User\Observer\Backend\TrackAdminNewPasswordObserver
  9. * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  10. */
  11. class TrackAdminNewPasswordObserverTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /** @var \Magento\User\Model\Backend\Config\ObserverConfig */
  14. protected $observerConfig;
  15. /** @var \Magento\Backend\App\ConfigInterface|\PHPUnit_Framework_MockObject_MockObject */
  16. protected $configInterfaceMock;
  17. /** @var \Magento\User\Model\ResourceModel\User|\PHPUnit_Framework_MockObject_MockObject */
  18. protected $userMock;
  19. /** @var \Magento\Backend\Model\Auth\Session|\PHPUnit_Framework_MockObject_MockObject */
  20. protected $authSessionMock;
  21. /** @var \Magento\Framework\Message\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject */
  22. protected $managerInterfaceMock;
  23. /** @var \Magento\User\Observer\Backend\TrackAdminNewPasswordObserver */
  24. protected $model;
  25. protected function setUp()
  26. {
  27. $this->configInterfaceMock = $this->getMockBuilder(\Magento\Backend\App\ConfigInterface::class)
  28. ->disableOriginalConstructor()
  29. ->setMethods([])
  30. ->getMock();
  31. $this->userMock = $this->getMockBuilder(\Magento\User\Model\ResourceModel\User::class)
  32. ->disableOriginalConstructor()
  33. ->setMethods([])
  34. ->getMock();
  35. $this->authSessionMock = $this->getMockBuilder(\Magento\Backend\Model\Auth\Session::class)
  36. ->disableOriginalConstructor()
  37. ->setMethods(
  38. [
  39. 'setPciAdminUserIsPasswordExpired',
  40. 'unsPciAdminUserIsPasswordExpired',
  41. 'getPciAdminUserIsPasswordExpired',
  42. 'isLoggedIn',
  43. 'clearStorage'
  44. ]
  45. )->getMock();
  46. $this->managerInterfaceMock = $this->getMockBuilder(\Magento\Framework\Message\ManagerInterface::class)
  47. ->disableOriginalConstructor()
  48. ->setMethods([])
  49. ->getMock();
  50. $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  51. $this->observerConfig = $helper->getObject(
  52. \Magento\User\Model\Backend\Config\ObserverConfig::class,
  53. [
  54. 'backendConfig' => $this->configInterfaceMock
  55. ]
  56. );
  57. $this->model = $helper->getObject(
  58. \Magento\User\Observer\Backend\TrackAdminNewPasswordObserver::class,
  59. [
  60. 'observerConfig' => $this->observerConfig,
  61. 'userResource' => $this->userMock,
  62. 'authSession' => $this->authSessionMock,
  63. 'messageManager' => $this->managerInterfaceMock,
  64. ]
  65. );
  66. }
  67. public function testTrackAdminPassword()
  68. {
  69. $newPW = "mYn3wpassw0rd";
  70. $uid = 123;
  71. /** @var \Magento\Framework\Event\Observer|\PHPUnit_Framework_MockObject_MockObject $eventObserverMock */
  72. $eventObserverMock = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
  73. ->disableOriginalConstructor()
  74. ->setMethods([])
  75. ->getMock();
  76. /** @var \Magento\Framework\Event|\PHPUnit_Framework_MockObject_MockObject */
  77. $eventMock = $this->getMockBuilder(\Magento\Framework\Event::class)
  78. ->disableOriginalConstructor()
  79. ->setMethods(['getObject'])
  80. ->getMock();
  81. /** @var \Magento\User\Model\User|\PHPUnit_Framework_MockObject_MockObject $userMock */
  82. $userMock = $this->getMockBuilder(\Magento\User\Model\User::class)
  83. ->disableOriginalConstructor()
  84. ->setMethods(['getId', 'getPassword', 'getForceNewPassword'])
  85. ->getMock();
  86. $eventObserverMock->expects($this->once())->method('getEvent')->willReturn($eventMock);
  87. $eventMock->expects($this->once())->method('getObject')->willReturn($userMock);
  88. $userMock->expects($this->once())->method('getId')->willReturn($uid);
  89. $userMock->expects($this->once())->method('getPassword')->willReturn($newPW);
  90. $userMock->expects($this->once())->method('getForceNewPassword')->willReturn(false);
  91. /** @var \Magento\Framework\Message\Collection|\PHPUnit_Framework_MockObject_MockObject $collectionMock */
  92. $collectionMock = $this->getMockBuilder(\Magento\Framework\Message\Collection::class)
  93. ->disableOriginalConstructor()
  94. ->setMethods([])
  95. ->getMock();
  96. $this->managerInterfaceMock
  97. ->expects($this->once())
  98. ->method('getMessages')
  99. ->willReturn($collectionMock);
  100. $this->authSessionMock->expects($this->once())->method('unsPciAdminUserIsPasswordExpired')->willReturn(null);
  101. $this->model->execute($eventObserverMock);
  102. }
  103. }