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);
 }