public function testInstallpackageActionPostValid() { $postData = array('Packages' => array('package1' => '0', 'package2' => '1')); $group = $this->getMock('Model\\Group\\Group'); $group->expects($this->once())->method('assignPackage')->with('package2'); $this->_groupManager->expects($this->once())->method('getGroup')->with('test')->willReturn($group); $this->_packageAssignmentForm->expects($this->once())->method('isValid')->will($this->returnValue(true)); $this->_packageAssignmentForm->expects($this->once())->method('setData')->with($postData); $this->_packageAssignmentForm->expects($this->once())->method('getData')->will($this->returnValue($postData)); $this->dispatch('/console/group/installpackage/?name=test', 'POST', $postData); $this->assertRedirectTo('/console/group/packages/?name=test'); }
/** * Assign a package * * POST only * * @return \Zend\Http\Response redirect response */ public function installpackageAction() { if ($this->getRequest()->isPost()) { $this->_packageAssignmentForm->setData($this->params()->fromPost()); if ($this->_packageAssignmentForm->isValid()) { $data = $this->_packageAssignmentForm->getData(); foreach ($data['Packages'] as $name => $install) { if ($install) { $this->_currentGroup->assignPackage($name); } } } } return $this->redirectToRoute('group', 'packages', array('name' => $this->params()->fromQuery('name'))); }