public function testEditActionPostValid() { $postData = array('Type' => 'type', 'Description' => 'description'); $this->_deviceForm->expects($this->once())->method('setData')->with($postData); $this->_deviceForm->expects($this->once())->method('getData')->will($this->returnValue($postData + array('_csrf' => '', 'Submit' => ''))); $this->_deviceForm->expects($this->once())->method('isValid')->will($this->returnValue(true)); $this->_deviceForm->expects($this->never())->method('prepare'); $this->_deviceManager->expects($this->once())->method('saveDevice')->with('00:00:5E:00:53:00', 'type', 'description'); $this->dispatch('/console/network/edit/?macaddress=00:00:5E:00:53:00', 'POST', $postData); $this->assertRedirectTo('/console/network/index/'); }
/** * Edit a network device * * Query params: macaddress * * @return array|\Zend\Http\Response array(device, form) or redirect response */ public function editAction() { $params = $this->params(); try { $device = $this->_deviceManager->getDevice($params->fromQuery('macaddress')); } catch (\Model\Network\RuntimeException $e) { return $this->redirectToRoute('network', 'index'); } if ($this->getRequest()->isPost()) { $this->_deviceForm->setData($params->fromPost()); if ($this->_deviceForm->isValid()) { $data = $this->_deviceForm->getData(); $this->_deviceManager->saveDevice(new \Library\MacAddress($params->fromQuery('macaddress')), $data['Type'], $data['Description']); return $this->redirectToRoute('network', 'index'); } } else { $this->_deviceForm->setData(array('Type' => $device['Type'], 'Description' => $device['Description'])); } return array('device' => $device, 'form' => $this->_deviceForm); }