helperMock = $this->createMock(\Magento\Persistent\Helper\Data::class); $this->sessionHelperMock = $this->createMock(\Magento\Persistent\Helper\Session::class); $this->sessionFactoryMock = $this->createPartialMock(\Magento\Persistent\Model\SessionFactory::class, ['create']); $this->observerMock = $this->createMock(\Magento\Framework\Event\Observer::class); $this->sessionMock = $this->createMock(\Magento\Persistent\Model\Session::class); $this->model = new \Magento\Persistent\Observer\SynchronizePersistentOnLogoutObserver( $this->helperMock, $this->sessionHelperMock, $this->sessionFactoryMock ); } public function testSynchronizePersistentOnLogoutWhenPersistentDataNotEnabled() { $this->helperMock->expects($this->once())->method('isEnabled')->will($this->returnValue(false)); $this->sessionFactoryMock->expects($this->never())->method('create'); $this->model->execute($this->observerMock); } public function testSynchronizePersistentOnLogoutWhenPersistentDataIsEnabled() { $this->helperMock->expects($this->once())->method('isEnabled')->will($this->returnValue(true)); $this->helperMock->expects($this->once())->method('getClearOnLogout')->will($this->returnValue(true)); $this->sessionFactoryMock ->expects($this->once()) ->method('create') ->will($this->returnValue($this->sessionMock)); $this->sessionMock->expects($this->once())->method('removePersistentCookie'); $this->sessionHelperMock->expects($this->once())->method('setSession')->with(null); $this->model->execute($this->observerMock); } }