UserTest.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\User\Test\Unit\Model;
  7. use Magento\User\Helper\Data as UserHelper;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  9. use Magento\User\Model\User;
  10. /**
  11. * Test class for \Magento\User\Model\User testing
  12. *
  13. * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  14. * @SuppressWarnings(PHPMD.TooManyFields)
  15. */
  16. class UserTest extends \PHPUnit\Framework\TestCase
  17. {
  18. /** @var User */
  19. private $model;
  20. /** @var UserHelper|\PHPUnit_Framework_MockObject_MockObject */
  21. private $userDataMock;
  22. /**
  23. * Set required values
  24. * @return void
  25. */
  26. protected function setUp()
  27. {
  28. $this->userDataMock = $this->getMockBuilder(UserHelper::class)
  29. ->disableOriginalConstructor()
  30. ->setMethods([])
  31. ->getMock();
  32. $objectManagerHelper = new ObjectManager($this);
  33. $this->model = $objectManagerHelper->getObject(
  34. User::class,
  35. [
  36. 'userData' => $this->userDataMock,
  37. ]
  38. );
  39. }
  40. /**
  41. * @return void
  42. */
  43. public function testSleep()
  44. {
  45. $excludedProperties = [
  46. '_eventManager',
  47. '_cacheManager',
  48. '_registry',
  49. '_appState',
  50. '_userData',
  51. '_config',
  52. '_validatorObject',
  53. '_roleFactory',
  54. '_encryptor',
  55. '_transportBuilder',
  56. '_storeManager',
  57. '_validatorBeforeSave'
  58. ];
  59. $actualResult = $this->model->__sleep();
  60. $this->assertNotEmpty($actualResult);
  61. $expectedResult = array_intersect($actualResult, $excludedProperties);
  62. $this->assertEmpty($expectedResult);
  63. }
  64. /**
  65. * @return void
  66. */
  67. public function testChangeResetPasswordLinkToken()
  68. {
  69. $token = '1';
  70. $this->assertInstanceOf(
  71. User::class,
  72. $this->model->changeResetPasswordLinkToken($token)
  73. );
  74. $this->assertEquals($token, $this->model->getRpToken());
  75. $this->assertInternalType(
  76. 'string',
  77. $this->model->getRpTokenCreatedAt()
  78. );
  79. }
  80. /**
  81. * @return void
  82. */
  83. public function testIsResetPasswordLinkTokenExpiredEmptyToken()
  84. {
  85. $this->assertTrue($this->model->isResetPasswordLinkTokenExpired());
  86. }
  87. /**
  88. * @return void
  89. */
  90. public function testIsResetPasswordLinkTokenExpiredIsExpiredToken()
  91. {
  92. $this->model->setRpToken('1');
  93. $this->model->setRpTokenCreatedAt(
  94. (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT)
  95. );
  96. $this->userDataMock->expects($this->once())->method('getResetPasswordLinkExpirationPeriod')->willReturn(0);
  97. $this->assertTrue($this->model->isResetPasswordLinkTokenExpired());
  98. }
  99. }