AdditionalTest.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Persistent\Test\Unit\Block\Header;
  7. /**
  8. * Class AdditionalTest
  9. * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  10. */
  11. class AdditionalTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var \Magento\Customer\Helper\View|\PHPUnit_Framework_MockObject_MockObject
  15. */
  16. protected $customerViewHelperMock;
  17. /**
  18. * @var \Magento\Persistent\Helper\Session|\PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $persistentSessionHelperMock;
  21. /**
  22. * Customer repository
  23. *
  24. * @var \Magento\Customer\Api\CustomerRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject
  25. */
  26. protected $customerRepositoryMock;
  27. /**
  28. * @var \Magento\Framework\View\Element\Template\Context|\PHPUnit_Framework_MockObject_MockObject
  29. */
  30. protected $contextMock;
  31. /**
  32. * @var \Magento\Framework\Serialize\Serializer\Json|\PHPUnit_Framework_MockObject_MockObject
  33. */
  34. private $jsonSerializerMock;
  35. /**
  36. * @var \Magento\Persistent\Helper\Data|\PHPUnit_Framework_MockObject_MockObject
  37. */
  38. private $persistentHelperMock;
  39. /**
  40. * @var \Magento\Persistent\Block\Header\Additional
  41. */
  42. protected $additional;
  43. /**
  44. * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager
  45. */
  46. protected $objectManager;
  47. /**
  48. * Set up
  49. *
  50. * @return void
  51. * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  52. */
  53. protected function setUp()
  54. {
  55. $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  56. $this->contextMock = $this->createPartialMock(\Magento\Framework\View\Element\Template\Context::class, []);
  57. $this->customerViewHelperMock = $this->createMock(\Magento\Customer\Helper\View::class);
  58. $this->persistentSessionHelperMock = $this->createPartialMock(
  59. \Magento\Persistent\Helper\Session::class,
  60. ['getSession']
  61. );
  62. $this->customerRepositoryMock = $this->getMockForAbstractClass(
  63. \Magento\Customer\Api\CustomerRepositoryInterface::class,
  64. [],
  65. '',
  66. false,
  67. true,
  68. true,
  69. ['getById']
  70. );
  71. $this->jsonSerializerMock = $this->createPartialMock(
  72. \Magento\Framework\Serialize\Serializer\Json::class,
  73. ['serialize']
  74. );
  75. $this->persistentHelperMock = $this->createPartialMock(
  76. \Magento\Persistent\Helper\Data::class,
  77. ['getLifeTime']
  78. );
  79. $this->additional = $this->objectManager->getObject(
  80. \Magento\Persistent\Block\Header\Additional::class,
  81. [
  82. 'context' => $this->contextMock,
  83. 'customerViewHelper' => $this->customerViewHelperMock,
  84. 'persistentSessionHelper' => $this->persistentSessionHelperMock,
  85. 'customerRepository' => $this->customerRepositoryMock,
  86. 'data' => [],
  87. 'jsonSerializer' => $this->jsonSerializerMock,
  88. 'persistentHelper' => $this->persistentHelperMock,
  89. ]
  90. );
  91. }
  92. /**
  93. * @return void
  94. */
  95. public function testGetCustomerId(): void
  96. {
  97. $customerId = 1;
  98. /** @var \Magento\Persistent\Model\Session|\PHPUnit_Framework_MockObject_MockObject $sessionMock */
  99. $sessionMock = $this->createPartialMock(\Magento\Persistent\Model\Session::class, ['getCustomerId']);
  100. $sessionMock->expects($this->once())
  101. ->method('getCustomerId')
  102. ->willReturn($customerId);
  103. $this->persistentSessionHelperMock->expects($this->once())
  104. ->method('getSession')
  105. ->willReturn($sessionMock);
  106. $this->assertEquals($customerId, $this->additional->getCustomerId());
  107. }
  108. /**
  109. * @return void
  110. */
  111. public function testGetConfig(): void
  112. {
  113. $lifeTime = 500;
  114. $arrayToSerialize = ['expirationLifetime' => $lifeTime];
  115. $serializedArray = '{"expirationLifetime":' . $lifeTime . '}';
  116. $this->persistentHelperMock->expects($this->once())
  117. ->method('getLifeTime')
  118. ->willReturn($lifeTime);
  119. $this->jsonSerializerMock->expects($this->once())
  120. ->method('serialize')
  121. ->with($arrayToSerialize)
  122. ->willReturn($serializedArray);
  123. $this->assertEquals($serializedArray, $this->additional->getConfig());
  124. }
  125. }