SynchronizePersistentOnLoginObserverTest.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Persistent\Observer;
  7. /**
  8. * @magentoDataFixture Magento/Customer/_files/customer.php
  9. */
  10. class SynchronizePersistentOnLoginObserverTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\Persistent\Observer\SynchronizePersistentOnLoginObserver
  14. */
  15. protected $_model;
  16. /**
  17. * @var \Magento\Framework\ObjectManagerInterface
  18. */
  19. protected $_objectManager;
  20. /**
  21. * @var \Magento\Persistent\Helper\Session
  22. */
  23. protected $_persistentSession;
  24. /**
  25. * @var \Magento\Customer\Model\Session
  26. */
  27. protected $_customerSession;
  28. public function setUp()
  29. {
  30. $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  31. $this->_persistentSession = $this->_objectManager->get(\Magento\Persistent\Helper\Session::class);
  32. $this->_customerSession = $this->_objectManager->get(\Magento\Customer\Model\Session::class);
  33. $this->_model = $this->_objectManager->create(
  34. \Magento\Persistent\Observer\SynchronizePersistentOnLoginObserver::class,
  35. [
  36. 'persistentSession' => $this->_persistentSession,
  37. 'customerSession' => $this->_customerSession
  38. ]
  39. );
  40. }
  41. /**
  42. * @covers \Magento\Persistent\Observer\SynchronizePersistentOnLoginObserver::execute
  43. */
  44. public function testSynchronizePersistentOnLogin()
  45. {
  46. $event = new \Magento\Framework\Event();
  47. $observer = new \Magento\Framework\Event\Observer(['event' => $event]);
  48. /** @var \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository */
  49. $customerRepository = $this->_objectManager->create(
  50. \Magento\Customer\Api\CustomerRepositoryInterface::class
  51. );
  52. /** @var $customer \Magento\Customer\Api\Data\CustomerInterface */
  53. $customer = $customerRepository->getById(1);
  54. $event->setData('customer', $customer);
  55. $this->_persistentSession->setRememberMeChecked(true);
  56. $this->_model->execute($observer);
  57. // check that persistent session has been stored for Customer
  58. /** @var \Magento\Persistent\Model\Session $sessionModel */
  59. $sessionModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  60. \Magento\Persistent\Model\Session::class
  61. );
  62. $sessionModel->loadByCustomerId(1);
  63. $this->assertEquals(1, $sessionModel->getCustomerId());
  64. }
  65. }