diff --git a/module/execution/tao.php b/module/execution/tao.php index 82962f6601..f61197a7bb 100644 --- a/module/execution/tao.php +++ b/module/execution/tao.php @@ -538,6 +538,8 @@ class executionTao extends executionModel protected function addExecutionMembers(int $executionID, array $postMembers): void { $execution = $this->fetchByID($executionID); + if(empty($execution)) return; + array_push($postMembers, $execution->PO, $execution->QD, $execution->PM, $execution->RD, $execution->openedBy); $members = array_filter(array_unique($postMembers)); $roles = $this->loadModel('user')->getUserRoles(array_values($members)); @@ -578,6 +580,7 @@ class executionTao extends executionModel if($existedLibID) return $existedLibID; $this->app->loadLang('doc'); + if($type == 'sprint') $this->app->loadLang('project'); $lib = new stdclass(); $lib->project = $projectID; $lib->execution = $executionID; diff --git a/module/execution/test/execution.class.php b/module/execution/test/execution.class.php index 6009dc334b..86d9e149d1 100644 --- a/module/execution/test/execution.class.php +++ b/module/execution/test/execution.class.php @@ -2980,4 +2980,51 @@ class executionTest $tasks = $this->executionModel->processTasks($tasks); return $count ? count($tasks) : $tasks; } + + /** + * 测试创建执行主库 + * Test for create main lib. + * + * @param int executionID + * @access public + * @return object|array + */ + public function createMainLibTest(int $executionID, string $type = 'sprint'): object|array + { + $libID = $this->executionModel->createMainLib(1, $executionID, $type); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + if(!$libID) return array(); + $object = $this->executionModel->dao->select('*')->from(TABLE_DOCLIB)->where('id')->eq($libID)->fetch(); + return $object; + } + } + + /** + * 测试添加执行团队成员 + * Test for add execution members. + * + * @param int executionID + * @param array members + * @access public + * @return object|array + */ + public function addExecutionMembersTest(int $executionID, array $members): object|array + { + $this->executionModel->addExecutionMembers($executionID, $members); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + return $this->executionModel->dao->select('*')->from(TABLE_TEAM)->where('root')->eq($executionID)->andWhere('type')->eq('execution')->fetchAll(); + } + } } diff --git a/module/execution/test/model/updateproducts.php b/module/execution/test/model/updateproducts.php index d413356326..aacbb27d79 100755 --- a/module/execution/test/model/updateproducts.php +++ b/module/execution/test/model/updateproducts.php @@ -36,7 +36,7 @@ cid=1 $executionIdList = array(3, 4, 5); $productIdList = array(1, 2, 3); -$branchIdList = array(1, 2, 3); +$branchIdList = array(array(1), array(2), array(3)); $products = array('products' => $productIdList, 'branch' => $branchIdList); $execution = new executionTest(); diff --git a/module/execution/test/tao/addexecutionmembers.php b/module/execution/test/tao/addexecutionmembers.php new file mode 100755 index 0000000000..196c66d9e8 --- /dev/null +++ b/module/execution/test/tao/addexecutionmembers.php @@ -0,0 +1,28 @@ +#!/usr/bin/env php +gen(0); +zdTable('user')->gen(4); +$project = zdTable('project'); +$project->project->range('0,1'); +$project->type->range('project,sprint'); +$project->gen(2); + +/** + +title=productModel->addExecutionMembers(); +cid=1 +pid=1 + +*/ + +$execution = new executionTest('admin'); +$members = array('admin', 'user1', 'user2'); + +r(count($execution->addExecutionMembersTest(0, array()))) && p() && e('0'); //空的执行ID,空的团队 +r(count($execution->addExecutionMembersTest(0, $members))) && p() && e('0'); //空的执行ID,有团队 +r(count($execution->addExecutionMembersTest(5, $members))) && p() && e('0'); //不存在的执行ID,有团队 +r(count($execution->addExecutionMembersTest(2, array()))) && p() && e('0'); //存在的执行ID,空团队 +r(count($execution->addExecutionMembersTest(2, $members))) && p() && e('3'); //存在的执行ID,有团队 diff --git a/module/execution/test/tao/createmainlib.php b/module/execution/test/tao/createmainlib.php new file mode 100755 index 0000000000..3437ac8707 --- /dev/null +++ b/module/execution/test/tao/createmainlib.php @@ -0,0 +1,24 @@ +#!/usr/bin/env php +addedBy->range('admin'); +$doclib->addedDate->range('`' . date('Y-m-d H:i:s') . '`'); +$doclib->gen(1); + +/** + +title=productModel->createmainlib(); +cid=1 +pid=1 + +*/ + +$execution = new executionTest('admin'); + +r($execution->createMainLibTest('-1')) && p() && e('0'); +r($execution->createMainLibTest('0')) && p() && e('0'); +r($execution->createMainLibTest('2')) && p('project,execution,name,type,main') && e('1,2,迭代主库,execution,1'); +r($execution->createMainLibTest('3', 'stage')) && p('project,execution,name,type,main') && e('1,3,阶段主库,execution,1');