/** * Allow the user to delete a feed, one at a time. * * @return ViewModel */ public function deleteAction() { $formManager = $this->serviceLocator->get('FormElementManager'); $form = $formManager->get('BabyMonitor\\Forms\\DeleteForm'); $form->setData(array('feedId' => (int) $this->params()->fromRoute('id'))); if (!$this->_feedTable->fetchById((int) $this->params()->fromRoute('id'))) { $this->flashMessenger()->addErrorMessage("Unable to find that feed. Perhaps you meant a different one?"); return $this->redirect()->toRoute(self::DEFAULT_ROUTE, array()); } if ($this->getRequest()->isPost()) { $form->setData($this->getRequest()->getPost()); if ($form->isValid()) { if ($this->_feedTable->delete($form->getInputFilter()->getValue('feedId'))) { if (!is_null($this->_cache)) { $this->_cache->removeItem(self::KEY_ALL_RESULTS); } $feed = new FeedModel(); $feed->exchangeArray($form->getData()); // trigger the deleted event $this->getEventManager()->trigger('Feed.Delete', $this, array('feedData' => $feed)); $this->flashMessenger()->addInfoMessage("Feed Deleted."); return $this->redirect()->toRoute(self::DEFAULT_ROUTE, array()); } } } return new ViewModel(array('form' => $form)); }
public function testCanDeleteById() { $feedId = 21; $mockTableGateway = \Mockery::mock('Zend\\Db\\TableGateway\\TableGateway'); $mockTableGateway->shouldReceive('delete')->with(array('feedId' => $feedId))->andReturn(1); $mockFeedTable = new FeedTable($mockTableGateway); $this->assertEquals(true, $mockFeedTable->delete($feedId)); }