SynchronizePersistentInfoObserverTest.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\Persistent\Test\Unit\Observer;
  8. class SynchronizePersistentInfoObserverTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /**
  11. * @var \Magento\Persistent\Observer\SynchronizePersistentInfoObserver
  12. */
  13. protected $model;
  14. /**
  15. * @var \PHPUnit_Framework_MockObject_MockObject
  16. */
  17. protected $helperMock;
  18. /**
  19. * @var \PHPUnit_Framework_MockObject_MockObject
  20. */
  21. protected $sessionHelperMock;
  22. /**
  23. * @var \PHPUnit_Framework_MockObject_MockObject
  24. */
  25. protected $customerSessionMock;
  26. /**
  27. * @var \PHPUnit_Framework_MockObject_MockObject
  28. */
  29. protected $observerMock;
  30. /**
  31. * @var \PHPUnit_Framework_MockObject_MockObject
  32. */
  33. protected $eventManagerMock;
  34. /**
  35. * @var \PHPUnit_Framework_MockObject_MockObject
  36. */
  37. protected $sessionMock;
  38. /**
  39. * @var \PHPUnit_Framework_MockObject_MockObject
  40. */
  41. protected $requestMock;
  42. protected function setUp()
  43. {
  44. $this->requestMock = $this->createMock(\Magento\Framework\App\Request\Http::class);
  45. $this->helperMock = $this->createMock(\Magento\Persistent\Helper\Data::class);
  46. $this->sessionHelperMock = $this->createMock(\Magento\Persistent\Helper\Session::class);
  47. $this->customerSessionMock = $this->createMock(\Magento\Customer\Model\Session::class);
  48. $this->observerMock = $this->createMock(\Magento\Framework\Event\Observer::class);
  49. $eventMethods = ['getRequest', '__wakeUp'];
  50. $this->eventManagerMock = $this->createPartialMock(\Magento\Framework\Event::class, $eventMethods);
  51. $this->sessionMock = $this->createMock(\Magento\Persistent\Model\Session::class);
  52. $this->model = new \Magento\Persistent\Observer\SynchronizePersistentInfoObserver(
  53. $this->helperMock,
  54. $this->sessionHelperMock,
  55. $this->customerSessionMock
  56. );
  57. }
  58. public function testSynchronizePersistentInfoWhenPersistentDataNotEnabled()
  59. {
  60. $this->helperMock->expects($this->once())->method('isEnabled')->will($this->returnValue(false));
  61. $this->sessionHelperMock->expects($this->never())->method('getSession');
  62. $this->model->execute($this->observerMock);
  63. }
  64. public function testSynchronizePersistentInfoWhenPersistentDataIsEnabled()
  65. {
  66. $this->helperMock->expects($this->once())->method('isEnabled')->will($this->returnValue(true));
  67. $this->sessionHelperMock->expects($this->once())->method('isPersistent')->will($this->returnValue(true));
  68. $this->sessionHelperMock
  69. ->expects($this->once())
  70. ->method('getSession')
  71. ->will($this->returnValue($this->sessionMock));
  72. $this->observerMock
  73. ->expects($this->once())
  74. ->method('getEvent')
  75. ->will($this->returnValue($this->eventManagerMock));
  76. $this->eventManagerMock
  77. ->expects($this->once())
  78. ->method('getRequest')
  79. ->will($this->returnValue($this->requestMock));
  80. $this->customerSessionMock->expects($this->once())->method('isLoggedIn')->will($this->returnValue(false));
  81. $this->requestMock
  82. ->expects($this->once())
  83. ->method('getFullActionName')
  84. ->will($this->returnValue('customer_account_logout'));
  85. $this->sessionMock->expects($this->once())->method('save');
  86. $this->model->execute($this->observerMock);
  87. }
  88. }