diff --git a/module/programplan/tao.php b/module/programplan/tao.php index fc77d5f3f9..a3dfd823bd 100644 --- a/module/programplan/tao.php +++ b/module/programplan/tao.php @@ -775,9 +775,10 @@ class programplanTao extends programplanModel */ protected function buildGanttLinks(array $planIdList): array { - if($this->config->edition == 'open') array(); + $this->app->loadConfig('execution'); + if($this->config->edition == 'open') return array(); - $links = array(); + $links = array(); $relations = $this->dao->select('*')->from(TABLE_RELATIONOFTASKS)->where('execution')->in($planIdList)->orderBy('task,pretask')->fetchAll(); foreach($relations as $relation) { @@ -803,6 +804,8 @@ class programplanTao extends programplanModel { foreach($stages as $index => $stage) { + if(!isset($ganttData['data'][$index])) continue; + $progress = empty($stage['totalReal']) ? 0 : round($stage['totalConsumed'] / $stage['totalReal'], 3); $ganttData['data'][$index]->progress = $progress; $ganttData['data'][$index]->taskProgress = ($progress * 100) . '%'; @@ -821,7 +824,7 @@ class programplanTao extends programplanModel * @access protected * @return array */ - protected function getTaskDateLimit(object $task, object|null $execution): array + protected function getTaskDateLimit(object $task, object|null $execution = null): array { $estStart = helper::isZeroDate($task->estStarted) ? '' : $task->estStarted; $estEnd = helper::isZeroDate($task->deadline) ? '' : $task->deadline; diff --git a/module/programplan/test/model/checkleafstage.php b/module/programplan/test/model/checkleafstage.php index 88bfeae06d..0a46427ec2 100755 --- a/module/programplan/test/model/checkleafstage.php +++ b/module/programplan/test/model/checkleafstage.php @@ -6,6 +6,10 @@ title=测试programplanModel->checkLeafStage(); cid=0 +- 获取阶段ID为0,判断是是否为叶子节点,结果为0 @0 +- 获取阶段ID为2,判断是是否为叶子节点,结果为0 @0 +- 获取阶段ID为5,判断是否为叶子节点,结果为1 @1 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/programplan.class.php'; diff --git a/module/programplan/test/model/computeprogress.php b/module/programplan/test/model/computeprogress.php index 1de8623b46..53a80179fa 100755 --- a/module/programplan/test/model/computeprogress.php +++ b/module/programplan/test/model/computeprogress.php @@ -6,6 +6,16 @@ title=测试 programplanModel->computeProgress(); cid=0 +- 测试参数=项目id直接continue @fail +- 测试阶段status=suspended子阶段status=wait @success +- 测试阶段status:suspended=>wait属性status @wait +- 测试阶段status=suspended子阶段status=closed @success +- 测试阶段status:suspended=>closed属性status @closed +- 测试阶段status=doing子阶段status=suspended @success +- 测试阶段status:doing=>suspended属性status @suspended +- 测试阶段status更新为doing @success +- 测试阶段状态更新为donging属性status @doing + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/programplan.class.php'; diff --git a/module/programplan/test/model/create.php b/module/programplan/test/model/create.php index 2498872d15..1a7c9c75bd 100755 --- a/module/programplan/test/model/create.php +++ b/module/programplan/test/model/create.php @@ -6,6 +6,18 @@ title=测试 programplanModel->create(); cid=0 +- 传入空数据第message条的0属性 @『阶段名称』不能为空。 +- 阶段已经分解了任务第message条的0属性 @已分解任务,不可添加子阶段 +- 测试正常更新阶段信息 获取阶段数量 @7 +- 测试正常更新阶段信息 检查数据信息 + - 第0条的name属性 @阶段31 + - 第1条的name属性 @阶段121 +- 测试正常更新阶段信息 获取阶段数量 @4 +- 测试正常更新阶段信息 获取数据信息 + - 第0条的name属性 @新阶段31 + - 第1条的name属性 @新阶段121 + - 第3条的name属性 @新增的阶段 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/programplan.class.php'; diff --git a/module/programplan/test/model/getbyid.php b/module/programplan/test/model/getbyid.php index b70b61709b..5e4afb3d69 100755 --- a/module/programplan/test/model/getbyid.php +++ b/module/programplan/test/model/getbyid.php @@ -6,6 +6,15 @@ title=测试 programplanModel->getByID(); cid=0 +- 传入0参数。 @0 +- 传入不存在的ID。 @0 +- 判断项目阶段id=2的name + - 属性name @执行1-1 + - 属性code @sprint1-1 +- 判断项目id=1走else的milestone,setMilestone + - 属性milestone @0 + - 属性setMilestone @`` + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; su('admin'); diff --git a/module/programplan/test/model/getdataforgantt.php b/module/programplan/test/model/getdataforgantt.php index 716fdc24e0..46d973e668 100755 --- a/module/programplan/test/model/getdataforgantt.php +++ b/module/programplan/test/model/getdataforgantt.php @@ -6,6 +6,16 @@ title=测试 programplanModel->getDataForGantt(); cid=0 +- 测试获取阶段数据第0条的type属性 @plan +- 测试获取任务数据 + - 第4条的id属性 @2-1 + - 第4条的type属性 @task +- 测试获取阶段数据(JSON类型返回值)第0条的type属性 @plan +- 测试获取任务数据(JSON类型返回值) + - 第4条的id属性 @2-1 + - 第4条的type属性 @task +- 测试自定义参数为空的情况获取任务数据 @4 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/programplan.class.php'; diff --git a/module/programplan/test/model/getdataforganttgroupbyassignedto.php b/module/programplan/test/model/getdataforganttgroupbyassignedto.php index 455df9b127..d9486c32a3 100755 --- a/module/programplan/test/model/getdataforganttgroupbyassignedto.php +++ b/module/programplan/test/model/getdataforganttgroupbyassignedto.php @@ -6,6 +6,16 @@ title=测试 programplanModel->getDataForGanttGroupByAssignedTo(); cid=0 +- 测试获取阶段数据第0条的type属性 @group +- 测试获取任务数据 + - 第4条的id属性 @8 + - 第4条的type属性 @task +- 测试获取阶段数据(JSON类型返回值)第0条的type属性 @group +- 测试获取任务数据(JSON类型返回值) + - 第4条的id属性 @8 + - 第4条的type属性 @task +- 测试自定义参数为空的情况获取任务数据 @1 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/programplan.class.php'; diff --git a/module/programplan/test/model/getduration.php b/module/programplan/test/model/getduration.php index fa84470eed..404d32af45 100755 --- a/module/programplan/test/model/getduration.php +++ b/module/programplan/test/model/getduration.php @@ -6,6 +6,12 @@ title=测试 programplanModel->getDuration(); cid=0 +- 测试获取2022-04-01 ~ 2022-05-01持续时间 @21 +- 测试获取2022-04-02 ~ 2022-05-06持续时间 @25 +- 测试获取2022-04-03 ~ 2022-05-11持续时间 @28 +- 测试获取2022-04-04 ~ 2022-05-16持续时间 @31 +- 测试获取2022-04-05 ~ 2022-05-21持续时间 @34 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/programplan.class.php'; diff --git a/module/programplan/test/model/getpairs.php b/module/programplan/test/model/getpairs.php index 347a38950b..c2a6cf3526 100755 --- a/module/programplan/test/model/getpairs.php +++ b/module/programplan/test/model/getpairs.php @@ -6,6 +6,9 @@ title=测试 programplanModel->getPairs(); cid=0 +- 测试获取执行11 产品11的计划键值对 @;/项目11 +- 测试获取执行12 产品12的计划键值对 @;/项目12 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/programplan.class.php'; diff --git a/module/programplan/test/model/getparentchildrentypes.php b/module/programplan/test/model/getparentchildrentypes.php index e7a3a87b99..db304b3f9a 100755 --- a/module/programplan/test/model/getparentchildrentypes.php +++ b/module/programplan/test/model/getparentchildrentypes.php @@ -6,6 +6,20 @@ title=测试 programplanModel->getParentChildrenTypes(); cid=0 +- 查找父ID为 0 未删除的阶段类型 @1 +- 查找父ID为 1 未删除的阶段类型 stage属性stage @stage +- 查找父ID为 1 未删除的阶段类型 kanban属性kanban @kanban +- 查找父ID为 1 未删除的阶段类型数量 @2 +- 查找父ID为 2 未删除的阶段类型 sprint属性sprint @sprint +- 查找父ID为 2 未删除的阶段类型数量 @1 +- 查找父ID为 3 未删除的阶段类型 stage属性stage @stage +- 查找父ID为 3 未删除的阶段类型 sprint属性sprint @sprint +- 查找父ID为 3 未删除的阶段类型数量 @2 +- 查找父ID为 1 未删除的阶段类型 stage属性stage @0 +- 查找父ID为 1 未删除的阶段类型 sprint属性sprint @0 +- 查找父ID为 1 未删除的阶段类型 kanban属性kanban @0 +- 查找父ID为 1 未删除的阶段类型数量 @0 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/programplan.class.php'; diff --git a/module/programplan/test/model/getparentstagelist.php b/module/programplan/test/model/getparentstagelist.php index 807c3aaed0..f0fe16c77d 100755 --- a/module/programplan/test/model/getparentstagelist.php +++ b/module/programplan/test/model/getparentstagelist.php @@ -6,6 +6,10 @@ title=测试 programplanModel->getParentStageList(); cid=0 +- 测试查询项目1产品2阶段8父阶段信息 @执行1-1 +- 测试查询项目1产品3阶段8父阶段信息 @无 +- 测试查询项目4产品6阶段8父阶段信息 @执行2-1-1 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; su('admin'); diff --git a/module/programplan/test/model/getplans.php b/module/programplan/test/model/getplans.php index 933a28e2ec..ddd68f4b47 100755 --- a/module/programplan/test/model/getplans.php +++ b/module/programplan/test/model/getplans.php @@ -1,10 +1,21 @@ #!/usr/bin/env php getPlans(); cid=0 +- 测试获取执行2 产品2的阶段 + - 属性type @stage + - 属性name @阶段a +- 测试获取执行3 产品2的阶段 + - 属性type @stage + - 属性name @阶段a子1 +- 测试获取执行4 产品2的阶段 + - 属性type @stage + - 属性name @阶段a子1子1 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; su('admin'); diff --git a/module/programplan/test/model/getselfandchildrenlist.php b/module/programplan/test/model/getselfandchildrenlist.php index b0d6e331f6..ef362275a7 100755 --- a/module/programplan/test/model/getselfandchildrenlist.php +++ b/module/programplan/test/model/getselfandchildrenlist.php @@ -1,10 +1,14 @@ #!/usr/bin/env php getSelfAndChildrenList(); cid=0 +- 测试id为2时获取自己的状态属性status @doing +- 测试id为2时获取自己后代的个数 @3 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; diff --git a/module/programplan/test/model/getsiblings.php b/module/programplan/test/model/getsiblings.php index 61dd21f418..121c69c9fa 100755 --- a/module/programplan/test/model/getsiblings.php +++ b/module/programplan/test/model/getsiblings.php @@ -1,11 +1,16 @@ #!/usr/bin/env php getSiblings(); cid=0 -*/ +- 测试id为2时获取兄弟阶段的的名称属性name @阶段b +- 测试id为2时获取自己兄弟阶段的个数 @1 +- 测试id为4时获取自己兄弟阶段的个数 @0 + +*/ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/programplan.class.php'; diff --git a/module/programplan/test/model/getstage.php b/module/programplan/test/model/getstage.php index a8cc772f7c..37f8f16b75 100755 --- a/module/programplan/test/model/getstage.php +++ b/module/programplan/test/model/getstage.php @@ -1,10 +1,36 @@ #!/usr/bin/env php getStage(); cid=0 +- 测试获取阶段2 产品2 all的名称 + - @新阶段a子1;新阶段a子2;新阶段a子3 + - 属性1 @2;2;2 +- 测试获取阶段2 产品2 parent id倒叙的名称 + - @新阶段a子3;新阶段a子2;新阶段a子1 + - 属性1 @2;2;2 +- 测试获取阶段2 产品2 parent的名称 + - @新阶段a子1;新阶段a子3 + - 属性1 @2;2 +- 测试获取阶段3 产品2 all的名称 + - @新阶段a子1子1 + - 属性1 @2 +- 测试获取阶段3 产品2 parent的名称 + - @新阶段a子1子2 + - 属性1 @2 +- 测试获取阶段5 产品2 all的名称 + - @新阶段b子1;新阶段b子2 + - 属性1 @2;2 +- 测试获取阶段5 产品2 parent的名称 + - @新阶段b子1 + - 属性1 @2 +- 测试获取阶段2 产品2 all id倒叙的名称 + - @新阶段b子2;新阶段b子1 + - 属性1 @2;2 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; diff --git a/module/programplan/test/model/getstageattribute.php b/module/programplan/test/model/getstageattribute.php index 6f26a4302e..d9579729a3 100755 --- a/module/programplan/test/model/getstageattribute.php +++ b/module/programplan/test/model/getstageattribute.php @@ -1,10 +1,16 @@ #!/usr/bin/env php getStageAttribute(); cid=0 +- 验证id为0的阶段属性 @0 +- 验证id为2的阶段属性 @review +- 验证id为3的阶段属性 @release +- 验证不存在的id 100 阶段属性 @0 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; diff --git a/module/programplan/test/model/isclickable.php b/module/programplan/test/model/isclickable.php index ddee2052e7..5f794c56e4 100755 --- a/module/programplan/test/model/isclickable.php +++ b/module/programplan/test/model/isclickable.php @@ -6,6 +6,11 @@ title=测试 programplanModel::isClickable(); cid=0 +- 判断阶段为空时,是否有关闭的点击操作权限 @1 +- 判断阶段为空时,是否有创建的点击操作权限 @1 +- 判断阶段不为空时,是否有关闭的点击操作权限 @1 +- 判断阶段不为空并且该阶段下有任务,是否有创建的点击操作权限 @0 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; su('admin'); diff --git a/module/programplan/test/model/iscreatetask.php b/module/programplan/test/model/iscreatetask.php index 4cb38e5953..e2884f5f9a 100755 --- a/module/programplan/test/model/iscreatetask.php +++ b/module/programplan/test/model/iscreatetask.php @@ -1,10 +1,16 @@ #!/usr/bin/env php isCreateTask(); cid=0 +- 测试 id 为 -1 的阶段下是否创建了任务,结果为 1 @1 +- 测试 id 为 0 的阶段下是否创建了任务,结果为 1 @1 +- 测试 id 为 1 的阶段下是否创建了任务,结果为 0 @0 +- 测试 id 为 6 的阶段下是否创建了任务,结果为 0 @1 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/programplan.class.php'; diff --git a/module/programplan/test/model/istopstage.php b/module/programplan/test/model/istopstage.php index 5817892cab..68feb1de3b 100755 --- a/module/programplan/test/model/istopstage.php +++ b/module/programplan/test/model/istopstage.php @@ -6,6 +6,10 @@ title=测试programplanModel->isTopStage(); cid=0 +- 测试id为2判断是否为顶级阶段 @1 +- 测试id为4判断是否为顶级阶段 @0 +- 测试id为5判断是否为顶级阶段 @1 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; diff --git a/module/programplan/test/model/processplan.php b/module/programplan/test/model/processplan.php index c56523fbc7..80f17fabdd 100755 --- a/module/programplan/test/model/processplan.php +++ b/module/programplan/test/model/processplan.php @@ -6,6 +6,21 @@ title=测试 programplanModel->processPlan(); cid=0 +- 测试id为1的瀑布项目 + - 属性id @1 + - 属性name @瀑布项目1 + - 属性productName @瀑布产品1 +- 测试id为2的瀑布项目阶段 + - 属性id @2 + - 属性name @阶段a + - 属性productName @瀑布产品2 + - 属性attribute @review +- 测试id为3的瀑布项目阶段 + - 属性id @3 + - 属性name @阶段a子1 + - 属性productName @瀑布产品2 + - 属性attribute @release + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; diff --git a/module/programplan/test/model/processplans.php b/module/programplan/test/model/processplans.php index f2d0e20660..4e483388a9 100755 --- a/module/programplan/test/model/processplans.php +++ b/module/programplan/test/model/processplans.php @@ -1,10 +1,31 @@ #!/usr/bin/env php processPlans(); cid=0 +- 测试id为1的瀑布项目名称和所属产品 + - 属性name @瀑布项目1 + - 属性productName @瀑布产品1 +- 测试id为2的瀑布项目名称和所属产品 + - 属性name @瀑布项目2 + - 属性productName @瀑布产品2 +- 测试id为3的瀑布项目名称和所属产品 + - 属性name @瀑布项目3 + - 属性productName @瀑布产品2 +- 测试id为4的瀑布项目名称和所属产品 + - 属性name @瀑布项目4 + - 属性productName @瀑布产品2 +- 测试id为5的瀑布项目名称和所属产品 + - 属性name @瀑布项目5 + - 属性productName @瀑布产品2 +- 测试id为6的瀑布项目名称和所属产品 + - 属性name @瀑布项目6 + - 属性productName @瀑布产品2 +- 测试id不存在的瀑布项目 @0 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; diff --git a/module/programplan/test/model/savecustomsetting.php b/module/programplan/test/model/savecustomsetting.php index 69b1e56efb..aa38acd539 100755 --- a/module/programplan/test/model/savecustomsetting.php +++ b/module/programplan/test/model/savecustomsetting.php @@ -1,10 +1,15 @@ #!/usr/bin/env php saveCustomSetting(); cid=0 +- 比较 stageCustom 的值 @2 +- 比较 ganttFields 的值 @3 +- 比较 zooming 的值 @1 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; su('admin'); diff --git a/module/programplan/test/model/settreepath.php b/module/programplan/test/model/settreepath.php index 0ea83ead84..7080e5822e 100755 --- a/module/programplan/test/model/settreepath.php +++ b/module/programplan/test/model/settreepath.php @@ -6,6 +6,13 @@ title=测试 programplanModel->setTreePath(); cid=0 +- 给stageID=2没有子阶段不走if设置path,grade + - 属性path @,1,2, + - 属性grade @ 1 +- 给stageID=9有子阶段走if设置path,grade + - 属性path @,7,8,9, + - 属性grade @ 3 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; su('admin'); @@ -18,7 +25,5 @@ $tester->loadModel('programplan'); $tester->programplan->setTreePath(2); $tester->programplan->setTreePath(9); - r($tester->programplan->getByID(2)) && p('path|grade', '|') && e(',1,2,| 1'); // 给stageID=2没有子阶段不走if设置path,grade r($tester->programplan->getByID(9)) && p('path|grade', '|') && e(',7,8,9,| 3'); // 给stageID=9有子阶段走if设置path,grade - diff --git a/module/programplan/test/model/update.php b/module/programplan/test/model/update.php index 40ed6419f2..9eb8607e13 100755 --- a/module/programplan/test/model/update.php +++ b/module/programplan/test/model/update.php @@ -6,6 +6,10 @@ title=测试 programplanModel->update(); cid=0 +- 传入空参数 @0 +- 测试修改plan的 name 值属性name @修改后的阶段 +- 测试子阶段的 acl 值第0条的acl属性 @private + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/programplan.class.php'; diff --git a/module/programplan/test/model/updatesubstageattr.php b/module/programplan/test/model/updatesubstageattr.php index b7c09c56c4..457def6029 100755 --- a/module/programplan/test/model/updatesubstageattr.php +++ b/module/programplan/test/model/updatesubstageattr.php @@ -1,10 +1,16 @@ #!/usr/bin/env php updateSubStageAttr(); cid=0 +- 测试更改 id 为 3 存在子阶段的阶段,attribute 更新值为 mix ,结果为 1 @1 +- 测试更改 id 为 5 无子阶段的阶段,更新 attribute 值为 design ,结果为 1 @1 +- 测试更改 id 为 2 存在子阶段的阶段,更新 attribute 值为 design ,结果为 design @design +- 测试更改 id 为 3 存在子阶段,子阶段下也存在子阶段,更新 attribute 值为 design ,结果为 design @design + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; diff --git a/module/programplan/test/tao/buildganttdata4ipd.php b/module/programplan/test/tao/buildganttdata4ipd.php index 8c43965619..b07cb42de3 100644 --- a/module/programplan/test/tao/buildganttdata4ipd.php +++ b/module/programplan/test/tao/buildganttdata4ipd.php @@ -6,6 +6,15 @@ title=测试 loadModel->buildGanttData4IPD() cid=0 +- 禅道版本为开源版。 @0 +- gantt数据数。 @20 +- 禅道版本为IPD。 + - 属性id @1-PP-1 + - 属性reviewID @1 + - 属性type @point + - 属性text @ 这个是评审或基线的标题1 +- selectCustom 不包含 point。 @0 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; diff --git a/module/programplan/test/tao/buildganttlinks.php b/module/programplan/test/tao/buildganttlinks.php index 132f732424..b819f19f58 100644 --- a/module/programplan/test/tao/buildganttlinks.php +++ b/module/programplan/test/tao/buildganttlinks.php @@ -6,26 +6,59 @@ title=测试 loadModel->buildGanttLinks() cid=0 +- 禅道版本为开源版,检查任务关系。 @0 +- 检查第一条任务关系 + - 属性source @1-1 + - 属性target @1-2 + - 属性type @0 +- 检查第二条任务关系 + - 属性source @2-2 + - 属性target @2-3 + - 属性type @2 +- 检查第三条任务关系 + - 属性source @3-3 + - 属性target @3-4 + - 属性type @1 +- 检查第四条任务关系 + - 属性source @1-11 + - 属性target @1-12 + - 属性type @1 +- 检查第五条任务关系 + - 属性source @2-12 + - 属性target @2-13 + - 属性type @3 +- 检查第六条任务关系 + - 属性source @3-13 + - 属性target @3-14 + - 属性type @0 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; su('admin'); -zdTable('relationoftasks')->gen(20); -$project = zdTable('project'); -$project->type->range('stage'); -$project->attribute->range('devel'); -$project->begin->range('`2023-09-28`'); -$project->end->range('`2024-04-02`'); -$project->gen(10); +$relationoftasks = zdTable('relationoftasks'); +$relationoftasks->id->range('1-100'); +$relationoftasks->execution->range('1-10'); +$relationoftasks->pretask->range('1-100'); +$relationoftasks->condition->range('end{2},begin{2}'); +$relationoftasks->task->range('2-100'); +$relationoftasks->action->range('begin,end'); +$relationoftasks->gen(20); global $tester; $tester->loadModel('programplan'); -$planIdList = $tester->programplan->dao->select('*')->from(TABLE_PROJECT)->where('type')->eq('stage')->fetchPairs('id', 'id'); +$planIdList = array(1,2,3); $tester->programplan->config->edition = 'open'; r($tester->programplan->buildGanttLinks($planIdList)) && p() && e("0"); //禅道版本为开源版,检查任务关系。 $tester->programplan->config->edition = 'max'; -r($tester->programplan->buildGanttLinks($planIdList)) && p() && e("0"); //禅道版本为旗舰版,检查任务关系。 +$links = $tester->programplan->buildGanttLinks($planIdList); +r($links[0]) && p('source,target,type') && e('1-1,1-2,0'); //检查第一条任务关系 +r($links[1]) && p('source,target,type') && e('2-2,2-3,2'); //检查第二条任务关系 +r($links[2]) && p('source,target,type') && e('3-3,3-4,1'); //检查第三条任务关系 +r($links[3]) && p('source,target,type') && e('1-11,1-12,1'); //检查第四条任务关系 +r($links[4]) && p('source,target,type') && e('2-12,2-13,3'); //检查第五条任务关系 +r($links[5]) && p('source,target,type') && e('3-13,3-14,0'); //检查第六条任务关系 diff --git a/module/programplan/test/tao/buildgroupdataforgantt.php b/module/programplan/test/tao/buildgroupdataforgantt.php index 3a55d36e42..9ce7098d93 100644 --- a/module/programplan/test/tao/buildgroupdataforgantt.php +++ b/module/programplan/test/tao/buildgroupdataforgantt.php @@ -6,6 +6,11 @@ title=测试 loadModel->buildGroupDataForGantt() cid=0 +- 检查构建分组Gantt数据。 + - 属性id @1 + - 属性type @group + - 属性text @开发 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; diff --git a/module/programplan/test/tao/buildplandataforgantt.php b/module/programplan/test/tao/buildplandataforgantt.php index 6c4c3eb0a5..e50bb61b9a 100644 --- a/module/programplan/test/tao/buildplandataforgantt.php +++ b/module/programplan/test/tao/buildplandataforgantt.php @@ -6,6 +6,19 @@ title=测试 loadModel->buildPlanDataForGantt() cid=0 +- 检查普通阶段,构建Gantt数据。 + - 属性id @1 + - 属性type @plan + - 属性text @项目集1 + - 属性start_date @28-09-2023 +- 检查是否存在percent字段 @0 +- 里程碑阶段,并设置显示percent,检查构建数据。 + - 属性id @1 + - 属性type @plan + - 属性text @项目集1 + - 属性start_date @28-09-2023 + - 属性percent @10 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; diff --git a/module/programplan/test/tao/buildpointdataforgantt.php b/module/programplan/test/tao/buildpointdataforgantt.php index 736f5478e6..bbfa642a72 100644 --- a/module/programplan/test/tao/buildpointdataforgantt.php +++ b/module/programplan/test/tao/buildpointdataforgantt.php @@ -6,6 +6,12 @@ title=测试 loadModel->buildPointDataForGantt() cid=0 +- 禅道版本为IPD。 + - 属性id @1-PP-1 + - 属性reviewID @1 + - 属性type @point + - 属性text @ 这个是评审或基线的标题1 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; diff --git a/module/programplan/test/tao/buildtaskdataforgantt.php b/module/programplan/test/tao/buildtaskdataforgantt.php index 4e6906a6ec..8363ff2852 100644 --- a/module/programplan/test/tao/buildtaskdataforgantt.php +++ b/module/programplan/test/tao/buildtaskdataforgantt.php @@ -6,6 +6,14 @@ title=测试 loadModel->buildTaskDataForGantt() cid=0 +- 检查构建分组Gantt数据。 + - 属性id @1 + - 属性type @task + - 属性text @1 开发任务11 + - 属性owner_id @`` + - 属性start_date @28-09-2023 + - 属性parent @0 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; diff --git a/module/programplan/test/tao/buildtaskgroup.php b/module/programplan/test/tao/buildtaskgroup.php index b3144844ca..9dfc075b33 100644 --- a/module/programplan/test/tao/buildtaskgroup.php +++ b/module/programplan/test/tao/buildtaskgroup.php @@ -6,6 +6,14 @@ title=测试 programplanTao->buildTaskGroup(); cid=0 +- 传入空数据 @0 +- 检查包含多人任务的admin的分组的任务数。 @4 +- 检查包含多人任务的user1的分组的任务数。 @4 +- 检查包含多人任务的user2的分组的任务数。 @3 +- 检查不包含多人任务的admin的分组的任务数。 @3 +- 检查不包含多人任务的user1的分组的任务数。 @3 +- 检查不包含多人任务的user2的分组的任务数。 @3 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; su('admin'); diff --git a/module/programplan/test/tao/computeorders.php b/module/programplan/test/tao/computeorders.php index f3fb6d95e3..9e2eb3e1f6 100644 --- a/module/programplan/test/tao/computeorders.php +++ b/module/programplan/test/tao/computeorders.php @@ -6,6 +6,24 @@ title=测试 loadModel->computeOrders() cid=0 +- 传入空参数 @0 +- 传入空orders参数 + - @30 + - 属性1 @35 + - 属性2 @40 + - 属性3 @45 +- 传入有部分orders参数 + - @5 + - 属性1 @30 + - 属性2 @35 + - 属性3 @40 +- 传入orders数量大于计划数 + - @5 + - 属性1 @10 + - 属性2 @15 + - 属性3 @20 + - 属性4 @25 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; diff --git a/module/programplan/test/tao/getlinkproductsforcreate.php b/module/programplan/test/tao/getlinkproductsforcreate.php index a650adac27..7c7288cd21 100644 --- a/module/programplan/test/tao/getlinkproductsforcreate.php +++ b/module/programplan/test/tao/getlinkproductsforcreate.php @@ -6,6 +6,13 @@ title=测试 loadModel->getLinkProductsForCreate() cid=0 +- projectID=0, productID=0,检查产品数据。 @3 +- projectID=0, productID=0,检查分支数据。 @0;1;2;3;4 +- projectID=3, productID=0,检查产品数据。 @0 +- projectID=3, productID=0,检查分支数据。 @0 +- projectID=3, productID=3,检查产品数据。 @3 +- projectID=3, productID=3,检查分支数据。 @1 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; diff --git a/module/programplan/test/tao/getnewparentandaction.php b/module/programplan/test/tao/getnewparentandaction.php index 69246628fb..6738759716 100644 --- a/module/programplan/test/tao/getnewparentandaction.php +++ b/module/programplan/test/tao/getnewparentandaction.php @@ -6,6 +6,11 @@ title=测试 programplanTao->computeNewParenAndAction(); cid=0 +- 返回状态为wait属性status @wait +- 返回状态为closed属性status @closed +- 返回状态为suspended属性status @suspended +- 返回状态为doing属性status @doing + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/programplan.class.php'; diff --git a/module/programplan/test/tao/getparentstages.php b/module/programplan/test/tao/getparentstages.php index be9b8a5750..38134e9f50 100644 --- a/module/programplan/test/tao/getparentstages.php +++ b/module/programplan/test/tao/getparentstages.php @@ -6,6 +6,10 @@ title=测试 programplanTao->getParentStages(); cid=0 +- 测试查询项目1产品2阶段10父阶段信息 @执行1-1 +- 测试查询项目1产品3阶段10父阶段信息 @执行1-1-1 +- 测试查询项目4产品6阶段10父阶段信息 @执行2-1-1 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; su('admin'); diff --git a/module/programplan/test/tao/getpointenddate.php b/module/programplan/test/tao/getpointenddate.php index 19a47bf1c9..b4f3998cf2 100644 --- a/module/programplan/test/tao/getpointenddate.php +++ b/module/programplan/test/tao/getpointenddate.php @@ -6,6 +6,12 @@ title=测试 loadModel->getPointEndDate() cid=0 +- 传入point->end不为空 @2023-09-28 +- 传入point->end为空 @2023-12-28 +- 传入point->category为DCP @2023-12-26 +- 传入point->category为TR @2023-12-21 +- 传入reviewDeadline含有taskEnd数据 @2023-12-18 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; diff --git a/module/programplan/test/tao/getreviewdeadline.php b/module/programplan/test/tao/getreviewdeadline.php new file mode 100644 index 0000000000..02aceb09d0 --- /dev/null +++ b/module/programplan/test/tao/getreviewdeadline.php @@ -0,0 +1,25 @@ +#!/usr/bin/env php +getReviewDeadline() +cid=0 + +- 传入空数据 @0 +- 获取五个工作日前的日期 @2023-12-22 +- 获取六个工作日前的日期 @2023-12-21 +- 获取零个工作日前的日期 @2023-12-29 + +*/ + +include dirname(__FILE__, 5). '/test/lib/init.php'; +su('admin'); + +global $tester; +$tester->loadModel('programplan'); + +r($tester->programplan->getReviewDeadline('')) && p() && e('0'); //传入空数据 +r($tester->programplan->getReviewDeadline('2023-12-29')) && p() && e('2023-12-22'); //获取五个工作日前的日期 +r($tester->programplan->getReviewDeadline('2023-12-29', 6)) && p() && e('2023-12-21'); //获取六个工作日前的日期 +r($tester->programplan->getReviewDeadline('2023-12-29', 0)) && p() && e('2023-12-29'); //获取零个工作日前的日期 diff --git a/module/programplan/test/tao/getstagecount.php b/module/programplan/test/tao/getstagecount.php index 92d045c985..4eeddb3ac3 100644 --- a/module/programplan/test/tao/getstagecount.php +++ b/module/programplan/test/tao/getstagecount.php @@ -6,6 +6,11 @@ title=测试 programplanTao->getStageCount(); cid=0 +- 传入空的planID。 @0 +- 传入不存在的planID。 @0 +- 传入planID=1。 @4 +- 传入planID=1, 并且是里程碑。 @2 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; su('admin'); diff --git a/module/programplan/test/tao/getstagelist.php b/module/programplan/test/tao/getstagelist.php index 285b922a44..252c9d2d64 100755 --- a/module/programplan/test/tao/getstagelist.php +++ b/module/programplan/test/tao/getstagelist.php @@ -6,6 +6,10 @@ title=测试 loadModel->getStageList() cid=0 +- 获取id为3下的阶段名称属性name @阶段a子1子1 +- 获取的不存的id和项目产品id 的阶段信息 @0 +- 获取id为1下的阶段条数 @2 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; diff --git a/module/programplan/test/tao/gettaskdatelimit.php b/module/programplan/test/tao/gettaskdatelimit.php new file mode 100644 index 0000000000..4355d3c62e --- /dev/null +++ b/module/programplan/test/tao/gettaskdatelimit.php @@ -0,0 +1,61 @@ +#!/usr/bin/env php +getTaskDateLimit() +cid=0 + +- 传入未填写预计日期的任务数据 + - 属性start @2023-09-21 + - 属性end @2023-12-21 + - 属性realBegan @`` + - 属性realEnd @`` +- 传入未开始的任务数据 + - 属性start @2023-09-28 + - 属性end @2023-09-29 + - 属性realBegan @`` + - 属性realEnd @`` +- 传入进行中的任务数据 + - 属性start @2023-10-01 + - 属性end @2023-10-01 + - 属性realBegan @2023-10-01 + - 属性realEnd @`` +- 传入已完成的任务数据 + - 属性start @2023-10-01 + - 属性end @2023-10-02 + - 属性realBegan @2023-10-01 + - 属性realEnd @2023-10-02 + +*/ + +include dirname(__FILE__, 5). '/test/lib/init.php'; +su('admin'); + +global $tester; +$tester->loadModel('programplan'); + +$execution = new stdclass(); +$execution->begin = '2023-09-21'; +$execution->end = '2023-12-21'; + +$task = new stdclass(); +$task->estStarted = ''; +$task->deadline = ''; +$task->realStarted = ''; +$task->finishedDate = ''; +$task->status = 'wait'; + +r($tester->programplan->getTaskDateLimit($task, $execution)) && p('start,end,realBegan,realEnd') && e('2023-09-21,2023-12-21,``,``'); //传入未填写预计日期的任务数据 + +$task->estStarted = '2023-09-28'; +$task->deadline = '2023-09-29'; +r($tester->programplan->getTaskDateLimit($task)) && p('start,end,realBegan,realEnd') && e('2023-09-28,2023-09-29,``,``'); //传入未开始的任务数据 + +$task->realStarted = '2023-10-01'; +$task->status = 'doing'; +r($tester->programplan->getTaskDateLimit($task)) && p('start,end,realBegan,realEnd') && e('2023-10-01,2023-10-01,2023-10-01,``'); //传入进行中的任务数据 + +$task->finishedDate = '2023-10-02'; +$task->status = 'done'; +r($tester->programplan->getTaskDateLimit($task)) && p('start,end,realBegan,realEnd') && e('2023-10-01,2023-10-02,2023-10-01,2023-10-02'); //传入已完成的任务数据 diff --git a/module/programplan/test/tao/gettotalpercent.php b/module/programplan/test/tao/gettotalpercent.php index 8145ab6ffe..290985868d 100755 --- a/module/programplan/test/tao/gettotalpercent.php +++ b/module/programplan/test/tao/gettotalpercent.php @@ -35,6 +35,12 @@ r($programplan->getTotalPercentTest($stageIDList[3])) && p() && e('24'); title=测试 programplanTao->getTotalPercent(); cid=0 +- 统计普通阶段下百分比。 @70 +- 统计含有子阶段百分比。 @80 +- 统计子阶段百分比。 @100 +- 统计只有一个阶段百分比。 @0 +- 统计父阶段下百分比。 @90 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; su('admin'); diff --git a/module/programplan/test/tao/initganttplans.php b/module/programplan/test/tao/initganttplans.php index 2138a6692d..64f64d544b 100644 --- a/module/programplan/test/tao/initganttplans.php +++ b/module/programplan/test/tao/initganttplans.php @@ -6,6 +6,25 @@ title=测试 loadModel->initGanttPlans() cid=0 +- 传入空数据,检查datas数据。 @0 +- 传入空数据,检查stageIndex数据。 @0 +- 传入空数据,检查planIdList数据。 @0 +- 传入空数据,检查reviewDeadline数据。 @0 +- 传入正常数据,检查 data 数据数量。 @10 +- 传入正常数据,检查 data数据的第一条信息。 + - 第1条的id属性 @1 + - 第1条的type属性 @plan + - 第1条的start_date属性 @28-09-2023 + - 第1条的bar_height属性 @24 +- 传入正常数据,检查 stageIndex的第一条信息。 + - 第1条的planID属性 @1 + - 第1条的parent属性 @0 + - 第1条的totalEstimate属性 @0 + - 第1条的totalConsumed属性 @0 + - 第1条的totalReal属性 @0 +- 传入正常数据,检查 planIdList 数据数量。 @10 +- 传入正常数据,检查 reviewDeadline的第一条数据。第1条的stageEnd属性 @2024-04-02 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; diff --git a/module/programplan/test/tao/insertprojectspec.php b/module/programplan/test/tao/insertprojectspec.php index d2698a8650..00d113aedf 100644 --- a/module/programplan/test/tao/insertprojectspec.php +++ b/module/programplan/test/tao/insertprojectspec.php @@ -6,6 +6,14 @@ title=测试 loadModel->insertProjectSpec() cid=0 +- 传入空参数 @0 +- 检查插入的spec数据。 + - 属性name @Test plan + - 属性version @3 + - 属性milestone @1 + - 属性begin @2023-09-28 + - 属性end @2024-04-28 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; diff --git a/module/programplan/test/tao/insertstage.php b/module/programplan/test/tao/insertstage.php index 19623d6b7c..dbcfca542d 100644 --- a/module/programplan/test/tao/insertstage.php +++ b/module/programplan/test/tao/insertstage.php @@ -6,6 +6,35 @@ title=测试 programplanTao->insertStage(); cid=0 +- 测试值传入plan数据 + - 属性id @3 + - 属性name @Test Stage + - 属性begin @2023-12-28 + - 属性end @2024-03-28 + - 属性parent @0 + - 属性path @,3, + - 属性acl @private +- 测试创建普通阶段。 + - 属性id @4 + - 属性project @1 + - 属性name @Test Stage + - 属性begin @2023-12-28 + - 属性end @2024-03-28 + - 属性parent @1 + - 属性path @,1,4, + - 属性grade @1 + - 属性acl @private +- 测试创建子阶段。 + - 属性id @5 + - 属性project @1 + - 属性name @Test Stage + - 属性begin @2023-12-28 + - 属性end @2024-03-28 + - 属性parent @4 + - 属性path @,1,4,5, + - 属性grade @2 + - 属性acl @private + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; su('admin'); diff --git a/module/programplan/test/tao/setstagesummary.php b/module/programplan/test/tao/setstagesummary.php new file mode 100644 index 0000000000..03c65f3e9d --- /dev/null +++ b/module/programplan/test/tao/setstagesummary.php @@ -0,0 +1,35 @@ +#!/usr/bin/env php +setStageSummary() +cid=0 + +- 传入空数据 @0 +- 传入gantt空数据 @0 +- 传入正常数据 + - 第1条的progress属性 @0.6 + - 第1条的taskProgress属性 @60% + - 第1条的estimate属性 @110 + - 第1条的consumed属性 @60 + +*/ + +include dirname(__FILE__, 5). '/test/lib/init.php'; +su('admin'); + +global $tester; +$tester->loadModel('programplan'); + +$stages = array(); +$stages['1']['totalReal'] = 100; +$stages['1']['totalEstimate'] = 110; +$stages['1']['totalConsumed'] = 60; + +$ganttData = array(); +$ganttData['data'][1] = new stdclass; + +r($tester->programplan->setStageSummary(array(), array())) && p() && e('0'); //传入空数据 +r($tester->programplan->setStageSummary(array(), $stages)) && p() && e('0'); //传入gantt空数据 +r($tester->programplan->setStageSummary($ganttData, $stages)['data']) && p('1:progress,taskProgress,estimate,consumed') && e('0.6,60%,110,60'); //传入正常数据 diff --git a/module/programplan/test/tao/settask.php b/module/programplan/test/tao/settask.php index 7d9c87b42b..275526187a 100644 --- a/module/programplan/test/tao/settask.php +++ b/module/programplan/test/tao/settask.php @@ -6,6 +6,23 @@ title=测试 loadModel->setTask() cid=0 +- 传入空数据,检查datas数据。 @0 +- 传入空数据,检查stageIndex数据。 @0 +- 传入空任务,检查data数据数。 @10 +- 传入任务, selectCustom为空,检查data数据数。 @10 +- 传入正常数据,检查 data数据数量。 @30 +- 传入正常数据,检查 data数据的第一条信息。 + - 属性id @1-1 + - 属性type @task + - 属性start_date @28-09-2023 + - 属性bar_height @24 +- 传入正常数据,检查 stageIndex的第一条信息。 + - 第1条的planID属性 @1 + - 第1条的parent属性 @0 + - 第1条的totalEstimate属性 @10 + - 第1条的totalConsumed属性 @6 + - 第1条的totalReal属性 @6 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; diff --git a/module/programplan/test/tao/settaskbaseline.php b/module/programplan/test/tao/settaskbaseline.php index 94d1e55a1b..a10488f501 100644 --- a/module/programplan/test/tao/settaskbaseline.php +++ b/module/programplan/test/tao/settaskbaseline.php @@ -6,6 +6,18 @@ title=测试 loadModel->setTaskBaseline() cid=0 +- 传入空参数 @0 +- 只传入 oldTasks 参数 @0 +- 只传入 newTasks 参数 + - 第1条的name属性 @New task1 + - 第1条的version属性 @3 + - 第1条的deadline属性 @2023-11-28 +- 只传入正确参数,检查返回数据 + - 第1条的name属性 @Old task1 + - 第1条的version属性 @2 + - 第1条的deadline属性 @2023-12-28 +- 只传入正确参数,检查不存在的返回数据 @0 + */ include dirname(__FILE__, 5). '/test/lib/init.php'; diff --git a/module/programplan/test/tao/updaterow.php b/module/programplan/test/tao/updaterow.php index f3fccbdf8c..676159e318 100755 --- a/module/programplan/test/tao/updaterow.php +++ b/module/programplan/test/tao/updaterow.php @@ -6,6 +6,20 @@ title=测试 loadModel->updateRow() cid=0 +- 传入空参数 @0 +- 检查未编辑前的数据。 + - 属性name @执行3-1 + - 属性attribute @`` + - 属性version @0 +- 测试修改plan的 name 和 version 值。 + - 属性name @修改后的阶段 + - 属性version @1 +- 测试查看项目下的spec信息。 @1 +- 测试修改plan的 attribute 值。 + - 属性name @修改后的阶段 + - 属性attribute @devel + - 属性version @1 + */ include dirname(__FILE__, 5). '/test/lib/init.php';