<?php /** * * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Persistent\Test\Unit\Observer; class MakePersistentQuoteGuestObserverTest extends \PHPUnit\Framework\TestCase { /** * @var \Magento\Persistent\Observer\MakePersistentQuoteGuestObserver */ protected $model; /** * @var \PHPUnit_Framework_MockObject_MockObject */ protected $customerSessionMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ protected $sessionHelperMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ protected $helperMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ protected $observerMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ protected $quoteManagerMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ protected $eventManagerMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ protected $actionMock; protected function setUp() { $this->actionMock = $this->createMock(\Magento\Persistent\Controller\Index::class); $this->observerMock = $this->createMock(\Magento\Framework\Event\Observer::class); $this->sessionHelperMock = $this->createMock(\Magento\Persistent\Helper\Session::class); $this->helperMock = $this->createMock(\Magento\Persistent\Helper\Data::class); $this->customerSessionMock = $this->createMock(\Magento\Customer\Model\Session::class); $this->quoteManagerMock = $this->createMock(\Magento\Persistent\Model\QuoteManager::class); $this->eventManagerMock = $this->createPartialMock(\Magento\Framework\Event::class, ['getControllerAction', '__wakeUp']); $this->observerMock ->expects($this->once()) ->method('getEvent') ->will($this->returnValue($this->eventManagerMock)); $this->model = new \Magento\Persistent\Observer\MakePersistentQuoteGuestObserver( $this->sessionHelperMock, $this->helperMock, $this->customerSessionMock, $this->quoteManagerMock ); } public function testExecute() { $this->eventManagerMock ->expects($this->once()) ->method('getControllerAction') ->will($this->returnValue($this->actionMock)); $this->sessionHelperMock->expects($this->once())->method('isPersistent')->will($this->returnValue(true)); $this->customerSessionMock->expects($this->once())->method('isLoggedIn')->will($this->returnValue(false)); $this->helperMock->expects($this->never())->method('isShoppingCartPersist'); $this->quoteManagerMock->expects($this->once())->method('setGuest')->with(true); $this->model->execute($this->observerMock); } public function testExecuteWhenShoppingCartIsPersist() { $this->eventManagerMock ->expects($this->once()) ->method('getControllerAction') ->will($this->returnValue($this->actionMock)); $this->sessionHelperMock->expects($this->once())->method('isPersistent')->will($this->returnValue(true)); $this->customerSessionMock->expects($this->once())->method('isLoggedIn')->will($this->returnValue(true)); $this->helperMock->expects($this->once())->method('isShoppingCartPersist')->will($this->returnValue(true)); $this->quoteManagerMock->expects($this->once())->method('setGuest')->with(true); $this->model->execute($this->observerMock); } public function testExecuteWhenShoppingCartIsNotPersist() { $this->eventManagerMock ->expects($this->once()) ->method('getControllerAction') ->will($this->returnValue($this->actionMock)); $this->sessionHelperMock->expects($this->once())->method('isPersistent')->will($this->returnValue(true)); $this->customerSessionMock->expects($this->once())->method('isLoggedIn')->will($this->returnValue(true)); $this->helperMock->expects($this->once())->method('isShoppingCartPersist')->will($this->returnValue(false)); $this->quoteManagerMock->expects($this->never())->method('setGuest'); $this->model->execute($this->observerMock); } }