From 0e733284b07d3b2445879d8287a1f7dfc8a4a1ac Mon Sep 17 00:00:00 2001 From: wangyuting Date: Thu, 28 Dec 2023 14:24:35 +0800 Subject: [PATCH] * Fix programplan module unit test bug. --- module/programplan/tao.php | 10 ++-- .../test/model/computeprogress.php | 13 ++--- module/programplan/test/model/create.php | 55 ------------------- .../test/model/getmilestonebyproduct.php | 12 ++-- module/programplan/test/model/getpairs.php | 16 ++---- .../test/model/getparentstagelist.php | 12 ++-- module/programplan/test/model/update.php | 45 --------------- .../yaml/getmilestonebyproduct/project.yaml | 7 +++ .../test/model/yaml/getpairs/getpairs.yaml | 3 + module/programplan/test/programplan.class.php | 12 ++-- .../programplan/test/tao/formatmilestones.php | 11 +--- .../test/tao/getnewparentandaction.php | 19 +++---- .../test/{model => tao}/gettotalpercent.php | 0 .../tao/yaml/formatmilestones/project.yaml | 3 + .../yaml/gettotalpercent/project.yaml | 0 .../yaml/gettotalpercent/projectproduct.yaml | 0 16 files changed, 51 insertions(+), 167 deletions(-) delete mode 100755 module/programplan/test/model/create.php delete mode 100755 module/programplan/test/model/update.php rename module/programplan/test/{model => tao}/gettotalpercent.php (100%) rename module/programplan/test/{model => tao}/yaml/gettotalpercent/project.yaml (100%) rename module/programplan/test/{model => tao}/yaml/gettotalpercent/projectproduct.yaml (100%) diff --git a/module/programplan/tao.php b/module/programplan/tao.php index 661a5f02b6..86602eeebd 100644 --- a/module/programplan/tao.php +++ b/module/programplan/tao.php @@ -78,11 +78,11 @@ class programplanTao extends programplanModel * 根据action获取excution。 * Get new parent and action. * - * @param array $statusCount - * @param object $parent - * @param int $startTasks - * @param string $action - * @param object $project + * @param array $statusCount + * @param object $parent + * @param int $startTasks + * @param string $action + * @param object $project * @access protected * @return array */ diff --git a/module/programplan/test/model/computeprogress.php b/module/programplan/test/model/computeprogress.php index 3407611e2a..a690cfb0d7 100755 --- a/module/programplan/test/model/computeprogress.php +++ b/module/programplan/test/model/computeprogress.php @@ -2,13 +2,10 @@ config('project')->gen(13); - zdTable('task')->config('task')->gen(13); -} +zdTable('project')->config('project')->gen(13); +zdTable('task')->config('task')->gen(13); +su('admin'); /** @@ -18,11 +15,9 @@ cid=1 */ -initData(); - $programplan = new programplanTest(); -r($programplan->computeProgressTest('1', 'edit', false)) && p() && e('success'); // 测试参数=项目id直接continue +r($programplan->computeProgressTest('2', 'edit', false)) && p() && e('success'); // 测试参数=项目id直接continue r($programplan->computeProgressTest('2', 'edit', true)) && p() && e('success'); // 测试阶段status=suspended子阶段status=wait r($programplan->getByIdTest(2)) && p('status') && e('wait'); // 测试阶段status:suspended=>wait r($programplan->computeProgressTest('5', 'edit', true)) && p() && e('success'); // 测试阶段status=suspended子阶段status=closed diff --git a/module/programplan/test/model/create.php b/module/programplan/test/model/create.php deleted file mode 100755 index 4530da185d..0000000000 --- a/module/programplan/test/model/create.php +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env php -create(); -cid=1 -pid=1 - -测试创建用例 工作量占比非数字 >> "工作量比例"必须为数字 -测试创建用例 计划开始为空 >> 『计划开始』日期不能为空 -测试创建用例 计划开始非日期 >> 『计划开始』应当为合法的日期 -测试创建用例 计划完成为空 >> 『计划完成』日期不能为空 -测试创建用例 计划完成非日期 >> 『计划完成』应当为合法的日期 -测试创建用例 计划完成小于计划开始 >> "计划完成时间"必须大于"计划开始时间" -测试创建用例 计划开始小于项目开始日期 >> 阶段的开始时间不能小于所属项目的开始时间 -测试创建用例 计划完成大于项目计划完成 >> 阶段的结束时间不能大于所属项目的结束时间 -测试创建用例 工作量占比之和大于100 >> 工作量占比累计不应当超过100% -测试正常更新阶段信息 获取阶段数量 >> 7 -测试正常创建一条阶段信息 获取阶段数量 >> 8 - -*/ - -$percentNumber = array('percents' => array('a', '0', '0', '0', '0', '0', '0', '', '', '', '', '')); -$emptyBegin = array('begin' => array('', '2022-03-13', '2022-03-16', '2022-03-16', '2022-03-19', '2022-03-19', '2022-03-22', '', '', '', '', '')); -$checkBegin = array('begin' => array('a', '2022-03-13', '2022-03-16', '2022-03-16', '2022-03-19', '2022-03-19', '2022-03-22', '', '', '', '', '')); -$emptyEnd = array('end' => array('', '2022-04-30', '2022-05-18', '2022-05-18', '2022-04-30', '2022-05-18', '2022-05-18', '', '', '', '', '')); -$checkEnd = array('end' => array('a', '2022-04-30', '2022-05-18', '2022-05-18', '2022-04-30', '2022-05-18', '2022-05-18', '', '', '', '', '')); -$planFinishSmall = array('end' => array('2022-03-12', '2022-04-30', '2022-05-18', '2022-05-18', '2022-04-30', '2022-05-18', '2022-05-18', '', '', '', '', '')); -$errorBegin = array('begin' => array('2022-01-01', '2022-03-13', '2022-03-16', '2022-03-16', '2022-03-19', '2022-03-19', '2022-03-22', '', '', '', '', '')); -$errorEnd = array('end' => array('2100-06-18', '2022-04-30', '2022-05-18', '2022-05-18', '2022-04-30', '2022-05-18', '2022-05-18', '', '', '', '', '')); -$percentOver = array('percents' => array('50', '51', '0', '0', '0', '0', '0', '', '', '', '', '')); - -$names = array('阶段31', '阶段121', '阶段211', '阶段301', '阶段391', '阶段481', '阶段571', '新增的阶段', '', '', '', ''); -$percents = array('0', '0', '0', '0', '0', '0', '0', '0', '', '', '', ''); -$begin = array(); -$end = array(); -$create = array('names' => $names, 'percents' => $percents, 'begin' => $begin, 'end' => $end); - -$programplan = new programplanTest(); - -r($programplan->createTest($percentNumber)) && p() && e('"工作量比例"必须为数字'); // 测试创建用例 工作量占比非数字 -r($programplan->createTest($emptyBegin)) && p() && e('『计划开始』日期不能为空'); // 测试创建用例 计划开始为空 -r($programplan->createTest($checkBegin)) && p() && e('『计划开始』应当为合法的日期'); // 测试创建用例 计划开始非日期 -r($programplan->createTest($emptyEnd)) && p() && e('『计划完成』日期不能为空'); // 测试创建用例 计划完成为空 -r($programplan->createTest($checkEnd)) && p() && e('『计划完成』应当为合法的日期'); // 测试创建用例 计划完成非日期 -r($programplan->createTest($planFinishSmall)) && p() && e('"计划完成时间"必须大于"计划开始时间"'); // 测试创建用例 计划完成小于计划开始 -r($programplan->createTest($errorBegin)) && p() && e("阶段的开始时间不能小于所属项目的开始时间"); // 测试创建用例 计划开始小于项目开始日期 -r($programplan->createTest($errorEnd)) && p() && e("阶段的结束时间不能大于所属项目的结束时间"); // 测试创建用例 计划完成大于项目计划完成 -r($programplan->createTest($percentOver)) && p() && e('工作量占比累计不应当超过100%'); // 测试创建用例 工作量占比之和大于100 -r($programplan->createTest()) && p() && e('7'); // 测试正常更新阶段信息 获取阶段数量 -r($programplan->createTest($create)) && p() && e('8'); // 测试正常创建一条阶段信息 获取阶段数量 diff --git a/module/programplan/test/model/getmilestonebyproduct.php b/module/programplan/test/model/getmilestonebyproduct.php index 2eec52b8b7..82e7797736 100755 --- a/module/programplan/test/model/getmilestonebyproduct.php +++ b/module/programplan/test/model/getmilestonebyproduct.php @@ -1,13 +1,11 @@ #!/usr/bin/env php config('project')->gen(6); - zdTable('projectproduct')->config('projectproduct')->gen(6); -} +zdTable('project')->config('project')->gen(6); +zdTable('projectproduct')->config('projectproduct')->gen(6); + +su('admin'); /** @@ -17,8 +15,6 @@ pid=1 */ -initData(); - global $tester; $tester->loadModel('programplan'); diff --git a/module/programplan/test/model/getpairs.php b/module/programplan/test/model/getpairs.php index bc999afe5c..ea02791b11 100755 --- a/module/programplan/test/model/getpairs.php +++ b/module/programplan/test/model/getpairs.php @@ -2,8 +2,10 @@ config('getpairs')->gen(10); +zdTable('projectproduct')->config('getprojectproduct')->gen(20); +su('admin'); /** title=测试 programplanModel->getPairs(); @@ -16,18 +18,10 @@ cid=1 */ -function initData() -{ - zdTable('project')->config('getpairs')->gen(10); - zdTable('projectproduct')->config('getprojectproduct')->gen(20); -} - -initData(); - $executionIDList = array(11, 12, 13, 14, 15); $productIDList = array(11, 12, 13, 14, 15); $programplan = new programplanTest(); -r($programplan->getPairsTest($executionIDList[0], $productIDList[0])) && p() && e(',/项目11'); // 测试获取执行11 产品11的计划键值对 -r($programplan->getPairsTest($executionIDList[1], $productIDList[1], 'leaf')) && p() && e(',/项目12'); // 测试获取执行12 产品12的计划键值对 \ No newline at end of file +r($programplan->getPairsTest($executionIDList[0], $productIDList[0])) && p() && e(',/项目11'); // 测试获取执行11 产品11的计划键值对 +r($programplan->getPairsTest($executionIDList[1], $productIDList[1], 'leaf')) && p() && e(',/项目12'); // 测试获取执行12 产品12的计划键值对 diff --git a/module/programplan/test/model/getparentstagelist.php b/module/programplan/test/model/getparentstagelist.php index a8aaacd37f..8de4ef5557 100755 --- a/module/programplan/test/model/getparentstagelist.php +++ b/module/programplan/test/model/getparentstagelist.php @@ -1,13 +1,11 @@ #!/usr/bin/env php config('project')->gen(10); - zdTable('projectproduct')->config('projectproduct')->gen(10); -} +zdTable('project')->config('project')->gen(10); +zdTable('projectproduct')->config('projectproduct')->gen(10); +zdTable('task')->gen(0); +su('admin'); /** @@ -17,8 +15,6 @@ pid=1 */ -initData(); - global $tester; $tester->loadModel('programplan'); diff --git a/module/programplan/test/model/update.php b/module/programplan/test/model/update.php deleted file mode 100755 index a1c25e6bbe..0000000000 --- a/module/programplan/test/model/update.php +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env php -update(); -cid=1 -pid=1 - -测试修改plan的 percent 值 工作占比和超过100 >> 工作量占比累计不应当超过100% -测试修改plan的 end 值 计划完成小于计划开始 >> 『end』应当不小于。 -测试修改plan的 name 值 名称为空 >> 『name』不能为空。 -测试修改plan的 name 值 >> name,修改后的阶段 -测试修改plan的 percent 值 >> percent,15 -测试修改plan的 begin 值 >> begin,2022-04-01 -测试修改plan的 end 值 >> end,2022-04-30 - -*/ -$planID = 131; -$projectID = 41; - -$beginNotempty = array('begin' => ''); -$endNotempty = array('end' => ''); -$percentOver = array('percent' => 90); -$endLeBegin = array('end' => '2022-01-01'); -$nameNotempty = array('name' => ''); -$changeName = array('name' => '修改后的阶段'); -$changePercent = array('percent' => '15'); -$changeBegin = array('begin' => '2022-04-01'); -$changeEnd = array('end' => '2022-04-30'); - -$programplan = new programplanTest(); - -//r($programplan->updateTest($planID, $projectID, $beginNotempty, 'begin')) && p() && e(''); // 测试修改plan的 begin 值 计划开始为空 -//r($programplan->updateTest($planID, $projectID, $endNotempty, 'end')) && p() && e(''); // 测试修改plan的 end 值 计划完成为空 -r($programplan->updateTest($planID, $projectID, $percentOver, 'percent')) && p() && e('工作量占比累计不应当超过100%'); // 测试修改plan的 percent 值 工作占比和超过100 -r($programplan->updateTest($planID, $projectID, $endLeBegin, 'end')) && p() && e('『end』应当不小于。'); // 测试修改plan的 end 值 计划完成小于计划开始 -r($programplan->updateTest($planID, $projectID, $nameNotempty, 'name')) && p() && e('『name』不能为空。'); // 测试修改plan的 name 值 名称为空 -r($programplan->updateTest($planID, $projectID, $changeName)) && p('0:field,new') && e('name,修改后的阶段'); // 测试修改plan的 name 值 -r($programplan->updateTest($planID, $projectID, $changePercent)) && p('0:field,new') && e('percent,15'); // 测试修改plan的 percent 值 -r($programplan->updateTest($planID, $projectID, $changeBegin)) && p('0:field,new') && e('begin,2022-04-01'); // 测试修改plan的 begin 值 -r($programplan->updateTest($planID, $projectID, $changeEnd)) && p('0:field,new') && e('end,2022-04-30'); // 测试修改plan的 end 值 diff --git a/module/programplan/test/model/yaml/getmilestonebyproduct/project.yaml b/module/programplan/test/model/yaml/getmilestonebyproduct/project.yaml index a91eb3c8ce..8d7625e3c8 100644 --- a/module/programplan/test/model/yaml/getmilestonebyproduct/project.yaml +++ b/module/programplan/test/model/yaml/getmilestonebyproduct/project.yaml @@ -6,6 +6,13 @@ fields: range: 1-6 - field: project range: 0, 1, 1, 0, 4, 4 + - field: name + note: "名称" + fields: + - field: name1 + range: '项目{100}' + - field: name2 + range: 1-10000 - field: model range: 'waterfall, , ,waterfall, , ,' - field: type diff --git a/module/programplan/test/model/yaml/getpairs/getpairs.yaml b/module/programplan/test/model/yaml/getpairs/getpairs.yaml index ff22cd7204..691bf7b7ce 100644 --- a/module/programplan/test/model/yaml/getpairs/getpairs.yaml +++ b/module/programplan/test/model/yaml/getpairs/getpairs.yaml @@ -16,6 +16,9 @@ fields: range: 'scrum,waterfallplus' - field: parent range: 0-3 + - field: path + range: 11-20 + prefix: '1,' - field: milestone range: 0-1 - field: auth diff --git a/module/programplan/test/programplan.class.php b/module/programplan/test/programplan.class.php index 63af58040d..4efa49c2b1 100644 --- a/module/programplan/test/programplan.class.php +++ b/module/programplan/test/programplan.class.php @@ -109,20 +109,20 @@ class programplanTest * 测试获取阶段百分比。 * Test get total percent. * - * @param int $stageID - * @param bool $parent + * @param int $stageID + * @param bool $parent * @access public - * @return int + * @return int|float */ - public function getTotalPercentTest(int $stageID, bool $parent = false): int + public function getTotalPercentTest(int $stageID, bool $parent = false): int|float { $stage = $this->objectModel->getByID($stageID); - $int = $this->objectModel->getTotalPercent($stage, $parent); + $result = $this->objectModel->getTotalPercent($stage, $parent); if(dao::isError()) return dao::getError(); - return $int; + return $result; } /** diff --git a/module/programplan/test/tao/formatmilestones.php b/module/programplan/test/tao/formatmilestones.php index c3e97ef48d..80968cc9c8 100644 --- a/module/programplan/test/tao/formatmilestones.php +++ b/module/programplan/test/tao/formatmilestones.php @@ -1,13 +1,10 @@ #!/usr/bin/env php config('project')->gen(6); - zdTable('projectproduct')->config('projectproduct')->gen(6); -} +zdTable('project')->config('project')->gen(6); +zdTable('projectproduct')->config('projectproduct')->gen(6); +su('admin'); /** @@ -17,8 +14,6 @@ pid=1 */ -initData(); - global $tester; $tester->loadModel('programplan')->programplanTao; diff --git a/module/programplan/test/tao/getnewparentandaction.php b/module/programplan/test/tao/getnewparentandaction.php index e9217bd1db..ddd23b5320 100644 --- a/module/programplan/test/tao/getnewparentandaction.php +++ b/module/programplan/test/tao/getnewparentandaction.php @@ -2,13 +2,10 @@ config('project')->gen(13); - zdTable('task')->config('task')->gen(13); -} +zdTable('project')->config('project')->gen(13); +zdTable('task')->config('task')->gen(13); +su('admin'); /** @@ -18,27 +15,25 @@ cid=1 */ -initData(); - global $tester; $programplan = new programplanTest(); $tester->loadModel('programplan')->programplanTao; $project = $programplan->getByIdTest(2); -$result = $tester->programplan->getNewParentAndAction(array('wait' => 1), $project, 0, 'edit'); +$result = $tester->programplan->getNewParentAndAction(array('wait' => 1), $project, 0, 'edit', $project); $parent1 = $result['newParent']; $project = $programplan->getByIdTest(5); -$result = $tester->programplan->getNewParentAndAction(array('closed' => 1), $project, 0, 'edit'); +$result = $tester->programplan->getNewParentAndAction(array('closed' => 1), $project, 0, 'edit', $project); $parent2 = $result['newParent']; $project = $programplan->getByIdTest(8); -$result = $tester->programplan->getNewParentAndAction(array('suspended' => 1), $project, 0, 'edit'); +$result = $tester->programplan->getNewParentAndAction(array('suspended' => 1), $project, 0, 'edit', $project); $parent3 = $result['newParent']; $project = $programplan->getByIdTest(11); -$result = $tester->programplan->getNewParentAndAction(array('wait' => 2, 'closed' => 1), $project, 0, 'edit'); +$result = $tester->programplan->getNewParentAndAction(array('wait' => 2, 'closed' => 1), $project, 0, 'edit', $project); $parent4 = $result['newParent']; diff --git a/module/programplan/test/model/gettotalpercent.php b/module/programplan/test/tao/gettotalpercent.php similarity index 100% rename from module/programplan/test/model/gettotalpercent.php rename to module/programplan/test/tao/gettotalpercent.php diff --git a/module/programplan/test/tao/yaml/formatmilestones/project.yaml b/module/programplan/test/tao/yaml/formatmilestones/project.yaml index a91eb3c8ce..77b998315a 100644 --- a/module/programplan/test/tao/yaml/formatmilestones/project.yaml +++ b/module/programplan/test/tao/yaml/formatmilestones/project.yaml @@ -6,6 +6,9 @@ fields: range: 1-6 - field: project range: 0, 1, 1, 0, 4, 4 + - field: name + range: 1-6 + prefix: 项目 - field: model range: 'waterfall, , ,waterfall, , ,' - field: type diff --git a/module/programplan/test/model/yaml/gettotalpercent/project.yaml b/module/programplan/test/tao/yaml/gettotalpercent/project.yaml similarity index 100% rename from module/programplan/test/model/yaml/gettotalpercent/project.yaml rename to module/programplan/test/tao/yaml/gettotalpercent/project.yaml diff --git a/module/programplan/test/model/yaml/gettotalpercent/projectproduct.yaml b/module/programplan/test/tao/yaml/gettotalpercent/projectproduct.yaml similarity index 100% rename from module/programplan/test/model/yaml/gettotalpercent/projectproduct.yaml rename to module/programplan/test/tao/yaml/gettotalpercent/projectproduct.yaml