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