requestMock = $this->createMock(\Magento\Framework\App\Request\Http::class); $this->helperMock = $this->createMock(\Magento\Persistent\Helper\Data::class); $this->sessionHelperMock = $this->createMock(\Magento\Persistent\Helper\Session::class); $this->customerSessionMock = $this->createMock(\Magento\Customer\Model\Session::class); $this->sessionFactoryMock = $this->createPartialMock(\Magento\Persistent\Model\SessionFactory::class, ['create']); $this->observerMock = $this->createMock(\Magento\Framework\Event\Observer::class); $eventMethods = ['getRequest', '__wakeUp']; $this->eventManagerMock = $this->createPartialMock(\Magento\Framework\Event::class, $eventMethods); $this->sessionMock = $this->createMock(\Magento\Persistent\Model\Session::class); $this->model = new \Magento\Persistent\Observer\RenewCookieObserver( $this->helperMock, $this->sessionHelperMock, $this->customerSessionMock, $this->sessionFactoryMock ); } public function testRenewCookie() { $this->helperMock ->expects($this->once()) ->method('canProcess') ->with($this->observerMock) ->will($this->returnValue(true)); $this->helperMock->expects($this->once())->method('isEnabled')->will($this->returnValue(true)); $this->sessionHelperMock->expects($this->once())->method('isPersistent')->will($this->returnValue(true)); $this->observerMock ->expects($this->once()) ->method('getEvent') ->will($this->returnValue($this->eventManagerMock)); $this->eventManagerMock ->expects($this->once()) ->method('getRequest') ->will($this->returnValue($this->requestMock)); $this->customerSessionMock->expects($this->once())->method('isLoggedIn')->will($this->returnValue(false)); $this->requestMock ->expects($this->once()) ->method('getFullActionName') ->will($this->returnValue('customer_account_logout')); $this->helperMock->expects($this->once())->method('getLifeTime')->will($this->returnValue(60)); $this->customerSessionMock ->expects($this->once())->method('getCookiePath')->will($this->returnValue('path/cookie')); $this->sessionFactoryMock ->expects($this->once()) ->method('create') ->will($this->returnValue($this->sessionMock)); $this->sessionMock->expects($this->once())->method('renewPersistentCookie')->with(60, 'path/cookie'); $this->model->execute($this->observerMock); } public function testRenewCookieWhenCannotProcessPersistentData() { $this->helperMock ->expects($this->once()) ->method('canProcess') ->with($this->observerMock) ->will($this->returnValue(false)); $this->helperMock->expects($this->never())->method('isEnabled'); $this->observerMock ->expects($this->never()) ->method('getEvent'); $this->model->execute($this->observerMock); } }