From 075dd67719fa0cf040a886ebbc3ddaa112e2a9c9 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Mon, 15 May 2023 14:12:27 +0800 Subject: [PATCH] + Add unit tests for the task start method. --- ...{addtaskestimate.php => addtaskeffort.php} | 12 +-- module/task/test/model/afterstart.php | 46 ++++++++++++ .../task/test/model/getassignedto4multi.php | 73 +++++++------------ module/task/test/model/start.php | 41 +++++++---- .../model/yaml/afterstart/kanbancell.yaml | 19 +++++ .../model/yaml/afterstart/kanbancolumn.yaml | 19 +++++ .../model/yaml/afterstart/kanbanlane.yaml | 19 +++++ .../model/yaml/afterstart/kanbanregion.yaml | 17 +++++ .../test/model/yaml/afterstart/project.yaml | 19 +++++ .../task/test/model/yaml/afterstart/task.yaml | 16 ++++ .../test/model/yaml/afterstart/taskteam.yaml | 20 +++++ .../task/test/model/yaml/start/project.yaml | 19 +++++ module/task/test/model/yaml/start/task.yaml | 14 ++++ .../task/test/model/yaml/start/taskteam.yaml | 20 +++++ module/task/test/tao/getassignedto4multi.php | 40 ---------- module/task/test/task.class.php | 71 +++++++++++------- 16 files changed, 331 insertions(+), 134 deletions(-) rename module/task/test/model/{addtaskestimate.php => addtaskeffort.php} (61%) create mode 100644 module/task/test/model/afterstart.php mode change 100644 => 100755 module/task/test/model/getassignedto4multi.php create mode 100644 module/task/test/model/yaml/afterstart/kanbancell.yaml create mode 100644 module/task/test/model/yaml/afterstart/kanbancolumn.yaml create mode 100644 module/task/test/model/yaml/afterstart/kanbanlane.yaml create mode 100644 module/task/test/model/yaml/afterstart/kanbanregion.yaml create mode 100755 module/task/test/model/yaml/afterstart/project.yaml create mode 100755 module/task/test/model/yaml/afterstart/task.yaml create mode 100755 module/task/test/model/yaml/afterstart/taskteam.yaml create mode 100755 module/task/test/model/yaml/start/project.yaml create mode 100755 module/task/test/model/yaml/start/task.yaml create mode 100755 module/task/test/model/yaml/start/taskteam.yaml delete mode 100755 module/task/test/tao/getassignedto4multi.php diff --git a/module/task/test/model/addtaskestimate.php b/module/task/test/model/addtaskeffort.php similarity index 61% rename from module/task/test/model/addtaskestimate.php rename to module/task/test/model/addtaskeffort.php index f1698f846f..cf89acb367 100755 --- a/module/task/test/model/addtaskestimate.php +++ b/module/task/test/model/addtaskeffort.php @@ -6,7 +6,7 @@ su('admin'); /** -title=taskModel->addTaskEstimate(); +title=taskModel->addTaskEffort(); cid=1 pid=1 @@ -49,8 +49,8 @@ $record5->left = 6; $record5->consumed = 9; $task = new taskTest(); -r($task->addTaskEstimateTest($record1)) && p('id,task,left,consumed') && e("601,1,0,3"); // 插入task为1 left为0 consumed为3的任务 -r($task->addTaskEstimateTest($record2)) && p('id,task,left,consumed') && e("602,601,0,3"); // 插入task为601 left为0 consumed为3的任务 -r($task->addTaskEstimateTest($record3)) && p('id,task,left,consumed') && e("603,602,1,4"); // 插入task为601 left为1 consumed为4的任务 -r($task->addTaskEstimateTest($record4)) && p('id,task,left,consumed') && e("604,904,3,6"); // 插入task为904 left为3 consumed为6的任务 -r($task->addTaskEstimateTest($record5)) && p('id,task,left,consumed') && e("605,907,6,9"); // 插入task为907 left为6 consumed为9的任务 +r($task->addTaskEffortTest($record1)) && p('id,task,left,consumed') && e("601,1,0,3"); // 插入task为1 left为0 consumed为3的任务 +r($task->addTaskEffortTest($record2)) && p('id,task,left,consumed') && e("602,601,0,3"); // 插入task为601 left为0 consumed为3的任务 +r($task->addTaskEffortTest($record3)) && p('id,task,left,consumed') && e("603,602,1,4"); // 插入task为601 left为1 consumed为4的任务 +r($task->addTaskEffortTest($record4)) && p('id,task,left,consumed') && e("604,904,3,6"); // 插入task为904 left为3 consumed为6的任务 +r($task->addTaskEffortTest($record5)) && p('id,task,left,consumed') && e("605,907,6,9"); // 插入task为907 left为6 consumed为9的任务 diff --git a/module/task/test/model/afterstart.php b/module/task/test/model/afterstart.php new file mode 100644 index 0000000000..c731a36851 --- /dev/null +++ b/module/task/test/model/afterstart.php @@ -0,0 +1,46 @@ +#!/usr/bin/env php +config('project')->gen(6); +zdTable('task')->config('task')->gen(9); +zdTable('taskteam')->config('taskteam')->gen(6); +zdTable('kanbanregion')->config('kanbanregion')->gen(1); +zdTable('kanbanlane')->config('kanbanlane')->gen(1); +zdTable('kanbancolumn')->config('kanbancolumn')->gen(7); +zdTable('kanbancell')->config('kanbancell')->gen(7); + +/** + +title=taskModel->afterStart(); +timeout=0 +cid=1 + +*/ + +$taskIDList = range(1, 9); + +$waitTask = array('assignedTo' => 'admin', 'consumed' => 10); +$doingTask = array('assignedTo' => 'user1', 'consumed' => 10, 'status' => 'done'); +$doneTask = array('assignedTo' => '', 'consumed' => 5); +$cancelTask = array('assignedTo' => 'admin', 'consumed' => 0); +$closedTask = array('assignedTo' => 'admin', 'consumed' => 0, 'left' => 5); +$childTask = array('assignedTo' => 'admin', 'consumed' => 2, 'left' => 5); +$linearTask = array('assignedTo' => 'admin', 'consumed' => 0, 'left' => 5); +$multiTask = array('assignedTo' => 'admin', 'consumed' => 0); +$output = array('fromColID' => 1, 'toColID' => 2, 'fromLaneID' => 1, 'toLaneID' => 1); + +$taskTester = new taskTest(); + +r($taskTester->afterStartTest($taskIDList[0], $waitTask)) && p() && e('1'); // 测试开始任务状态为未开始的任务后的数据处理 +r($taskTester->afterStartTest($taskIDList[1], $doingTask)) && p('load:confirm') && e('该任务为Bug转化得到,是否更新Bug:1 ?'); // 测试开始任务状态为进行中的任务后的数据处理 +r($taskTester->afterStartTest($taskIDList[2], $doneTask)) && p() && e('1'); // 测试开始任务状态为已完成的任务后的数据处理 +r($taskTester->afterStartTest($taskIDList[3], $cancelTask)) && p() && e('1'); // 测试开始任务状态为已取消的任务后的数据处理 +r($taskTester->afterStartTest($taskIDList[4], $closedTask)) && p() && e('1'); // 测试开始任务状态为已关闭的任务后的数据处理 +r($taskTester->afterStartTest($taskIDList[6], $childTask)) && p() && e('1'); // 测试开始任务状态为未开始的子任务后的数据处理 +r($taskTester->afterStartTest($taskIDList[7], $linearTask)) && p() && e('1'); // 测试开始任务状态为未开始的串行任务后的数据处理 +r($taskTester->afterStartTest($taskIDList[8], $multiTask)) && p() && e('1'); // 测试开始任务状态为进行中的并行任务后的数据处理 +r($taskTester->afterStartTest($taskIDList[0], $waitTask, 'ceceshi')) && p() && e('1'); // 测试给任务增加备注 +r($taskTester->afterStartTest($taskIDList[0], $waitTask, '', $output)) && p() && e('1'); // 测试更新任务的看板数据 diff --git a/module/task/test/model/getassignedto4multi.php b/module/task/test/model/getassignedto4multi.php old mode 100644 new mode 100755 index 11338a664b..f86ebb60c0 --- a/module/task/test/model/getassignedto4multi.php +++ b/module/task/test/model/getassignedto4multi.php @@ -2,60 +2,39 @@ id->range('1-4'); +$task->name->range('并行任务,串行任务1,串行任务2,普通任务'); +$task->mode->range('multi,linear{2},[]'); +$task->status->range('done,doing,done,wait'); +$task->assignedTo->range('admin'); +$task->openedBy->range('dev01'); +$task->gen(4); + +$taskTeam = zdTable('taskteam'); +$taskTeam->id->range('1-7'); +$taskTeam->task->range('1{2},2{3},3{2}'); +$taskTeam->account->range('admin,dev01,admin,dev01,dev02,admin,dev01'); +$taskTeam->estimate->range('1{2},2{3},1{2}'); +$taskTeam->left->range('1{2},1{3},1{2}'); +$taskTeam->status->range('done{3},doing,wait,done{2}'); +$taskTeam->gen(7); su('admin'); /** title=taskModel->getAssignedTo4Multi(); +timeout=0 cid=1 -pid=1 - -获取非多人任务的指派给 >> admin -获取非串行多人任务的指派给 >> null -获取串行多人任务的指派给 >> admin -获取排除已经完成的串行多人任务的指派给 >> dev1 -获取串行多人任务的下一个指派给 >> admin -获取已经完成的串行多人任务的指派给 >> dev1 */ -$user = new stdclass(); -$user->account = 'admin'; -$user->status = 'wait'; -$user->order = '0'; -$users[] = $user; +$taskTester = new taskTest(); -$user = new stdclass(); -$user->account = 'dev1'; -$user->status = 'wait'; -$user->order = '1'; -$users[] = $user; - -$user = new stdclass(); -$user->account = 'admin'; -$user->status = 'wait'; -$user->order = '2'; -$users[] = $user; - -$task = new stdclass(); -$task->mode = ''; -$task->openedBy = 'dev1'; -$task->assignedTo = 'admin'; - -$taskTest = new taskTest(); -r($taskTest->getAssignedTo4Multi($users, $task)) && p() && e('admin'); //获取非多人任务的指派给 - -$task->mode = 'multi'; -$task->team = $users; -r($taskTest->getAssignedTo4Multi($users, $task)) && p() && e('admin'); //获取非串行多人任务的指派给 - -$task->mode = 'linear'; -r($taskTest->getAssignedTo4Multi($users, $task)) && p() && e('admin'); //获取串行多人任务的指派给 - -$users[0]->status = 'done'; -r($taskTest->getAssignedTo4Multi($users, $task)) && p() && e('dev1'); //获取排除已经完成的串行多人任务的指派给 -r($taskTest->getAssignedTo4Multi($users, $task, 'next')) && p() && e('admin'); //获取串行多人任务的下一个指派给 - -$users[1]->status = 'done'; -$users[2]->status = 'done'; -r($taskTest->getAssignedTo4Multi($users, $task)) && p() && e('dev1'); //获取已经完成的串行多人任务的指派给 +$taskIdList = range(1, 4); +r($taskTester->getAssignedTo4MultiTest($taskIdList[0])) && p() && e('admin'); // 测试获取并行任务的指派人 +r($taskTester->getAssignedTo4MultiTest($taskIdList[1])) && p() && e('dev01'); // 测试获取串行任务的当前指派人 +r($taskTester->getAssignedTo4MultiTest($taskIdList[1], 'next')) && p() && e('dev02'); // 测试获取并行任务的下一个指派人 +r($taskTester->getAssignedTo4MultiTest($taskIdList[2])) && p() && e('dev01'); // 测试获取已完成的串行任务的当前指派人 +r($taskTester->getAssignedTo4MultiTest($taskIdList[3])) && p() && e('admin'); // 测试获取普通任务的指派人 diff --git a/module/task/test/model/start.php b/module/task/test/model/start.php index 231d56ed57..c9e52470c8 100755 --- a/module/task/test/model/start.php +++ b/module/task/test/model/start.php @@ -4,27 +4,36 @@ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/task.class.php'; su('admin'); +zdTable('project')->config('project')->gen(6); +zdTable('task')->config('task')->gen(9); +zdTable('taskteam')->config('taskteam')->gen(6); + /** -title=测试taskModel->startTest(); +title=taskModel->start(); +timeout=0 cid=1 -pid=1 - -wait状态任务开始 >> status,wait,doing -doing状态任务开始 >> 此任务已被启动,不能重复启动! -pause状态任务开始 >> status,pause,doing -closed状态任务开始 >> status,closed,doing */ -$taskIDList = array('1','4','6'); +$taskIDList = range(1, 9); -$waitstart = array('assignedTo' => 'user92','consumed' => '10'); -$pausestart = array('assignedTo' => 'user95','consumed' => '10'); -$closedstart = array('assignedTo' => 'user97','consumed' => '10'); +$waitTask = array('assignedTo' => 'admin', 'consumed' => 10); +$doingTask = array('assignedTo' => 'user1', 'consumed' => 10); +$doneTask = array('assignedTo' => '', 'consumed' => 5); +$cancelTask = array('assignedTo' => 'admin', 'consumed' => 0); +$closedTask = array('assignedTo' => 'admin', 'consumed' => 0, 'left' => 5); +$childTask = array('assignedTo' => 'admin', 'consumed' => 2, 'left' => 5); +$linearTask = array('assignedTo' => 'admin', 'consumed' => 0, 'left' => 5); +$multiTask = array('assignedTo' => 'admin', 'consumed' => 0); -$task = new taskTest(); -r($task->startTest($taskIDList[0],$waitstart)) && p('0:field,old,new') && e('status,wait,doing'); // wait状态任务开始 -r($task->startTest($taskIDList[0],$waitstart)) && p() && e('此任务已被启动,不能重复启动!'); // doing状态任务开始 -r($task->startTest($taskIDList[1],$pausestart)) && p('0:field,old,new') && e('status,pause,doing'); // pause状态任务开始 -r($task->startTest($taskIDList[2],$closedstart)) && p('0:field,old,new') && e('status,closed,doing'); // closed状态任务开始 +$taskTester = new taskTest(); + +r($taskTester->startTest($taskIDList[0], $waitTask)) && p('0:field,old,new') && e('status,wait,doing'); // 测试开始任务状态为未开始的任务 +r($taskTester->startTest($taskIDList[1], $doingTask)) && p('2:field,old,new') && e('consumed,4,10'); // 测试开始任务状态为进行中的任务 +r($taskTester->startTest($taskIDList[2], $doneTask)) && p('0:field,old,new') && e('status,done,doing'); // 测试开始任务状态为已完成的任务 +r($taskTester->startTest($taskIDList[3], $cancelTask)) && p('3:field,old,new') && e('consumed,6,0'); // 测试开始任务状态为已取消的任务 +r($taskTester->startTest($taskIDList[4], $closedTask)) && p('0:field,old,new') && e('status,closed,doing'); // 测试开始任务状态为已取消的任务 +r($taskTester->startTest($taskIDList[6], $childTask)) && p('0:field,old,new') && e('status,wait,doing'); // 测试开始任务状态为未开始的子任务 +r($taskTester->startTest($taskIDList[7], $linearTask)) && p('0:field,old,new') && e('status,wait,doing'); // 测试开始任务状态为未开始的串行任务 +r($taskTester->startTest($taskIDList[8], $multiTask)) && p('0:field,old,new') && e('status,doing,done'); // 测试开始任务状态为未开始的并行任务 diff --git a/module/task/test/model/yaml/afterstart/kanbancell.yaml b/module/task/test/model/yaml/afterstart/kanbancell.yaml new file mode 100644 index 0000000000..d08a208f3a --- /dev/null +++ b/module/task/test/model/yaml/afterstart/kanbancell.yaml @@ -0,0 +1,19 @@ +--- +title: zt_kanbancell +author: Mengyi Liu +version: "1.0" +fields: +- field: id + range: 1-100 +- field: kanban + range: 11 +- field: lane + range: 1 +- field: column + range: 1-7 +- field: type + range: "task" +- field: cards + range: "[]" +... + diff --git a/module/task/test/model/yaml/afterstart/kanbancolumn.yaml b/module/task/test/model/yaml/afterstart/kanbancolumn.yaml new file mode 100644 index 0000000000..30d9d8d7f3 --- /dev/null +++ b/module/task/test/model/yaml/afterstart/kanbancolumn.yaml @@ -0,0 +1,19 @@ +--- +title: zt_kanbancolumn +author: Mengyi Liu +version: "1.0" +fields: +- field: id + range: 1-7 +- field: region + range: 1 +- field: type + range: wait,develop,developing,developed,pause,canceled,closed, +- field: parent + range: "0,`-1`,2{2},0{3}" +- field: name + range: 未开始,开发,研发中,研发完毕,已暂停,已取消,已关闭 +- field: limit + range: "`-1`" +... + diff --git a/module/task/test/model/yaml/afterstart/kanbanlane.yaml b/module/task/test/model/yaml/afterstart/kanbanlane.yaml new file mode 100644 index 0000000000..e9fbd9a9db --- /dev/null +++ b/module/task/test/model/yaml/afterstart/kanbanlane.yaml @@ -0,0 +1,19 @@ +--- +title: zt_kanbanlane +author: Mengyi Liu +version: "1.0" +fields: +- field: id + range: 1-10 +- field: execution + range: 11 +- field: type + range: "task" +- field: region + range: 1 +- field: lastEditedTime + range: "20220101 000000" + type: timestamp + format: "YY/MM/DD hh:mm:ss" +... + diff --git a/module/task/test/model/yaml/afterstart/kanbanregion.yaml b/module/task/test/model/yaml/afterstart/kanbanregion.yaml new file mode 100644 index 0000000000..300db12fd6 --- /dev/null +++ b/module/task/test/model/yaml/afterstart/kanbanregion.yaml @@ -0,0 +1,17 @@ +--- +title: zt_kanbanregion +author: Mengyi Liu +version: "1.0" +fields: +- field: id + range: 1-10 +- field: space + range: 0 +- field: kanban + range: 11 +- field: lastEditedDate + range: "20220101 000000" + type: timestamp + format: "YY/MM/DD hh:mm:ss" +... + diff --git a/module/task/test/model/yaml/afterstart/project.yaml b/module/task/test/model/yaml/afterstart/project.yaml new file mode 100755 index 0000000000..23b3bc32bd --- /dev/null +++ b/module/task/test/model/yaml/afterstart/project.yaml @@ -0,0 +1,19 @@ +title: zt_project +author: Mengyi Liu +version: "1.0" +fields: +- field: id + range: 1-6 +- field: type + range: "project{2},sprint{2},stage{2}" +- field: name + range: "项目1,项目2,迭代1,迭代2,阶段1,阶段2" +- field: project + range: "0{2},1{2},2{2}" +- field: model + range: "scrum,waterfall,[]{4}" +- field: path + range: "1,2,`1,3`,`1,4`,`2,5`, `2,6`" + prefix: ',' + postfix: ',' + diff --git a/module/task/test/model/yaml/afterstart/task.yaml b/module/task/test/model/yaml/afterstart/task.yaml new file mode 100755 index 0000000000..8c11712c61 --- /dev/null +++ b/module/task/test/model/yaml/afterstart/task.yaml @@ -0,0 +1,16 @@ +title: zt_task +author: Mengyi Liu +version: "1.0" +fields: +- field: execution + range: 3 +- field: story + range: 1,0{9} +- field: fromBug + range: 0,1,0{8} +- field: parent + range: "0{5},`-1`,6,0{2}" +- field: status + range: "wait,doing,done,cancel,closed,wait{3},doing" +- field: mode + range: "[]{7},linear,multi" diff --git a/module/task/test/model/yaml/afterstart/taskteam.yaml b/module/task/test/model/yaml/afterstart/taskteam.yaml new file mode 100755 index 0000000000..6aa4a6dc4e --- /dev/null +++ b/module/task/test/model/yaml/afterstart/taskteam.yaml @@ -0,0 +1,20 @@ +title: zt_taskteam +author: Shujie Tian +version: "1.0" +fields: +- field: task + range: 8{3},9{3} +- field: left + range: 1-10 +- field: estimate + range: 1-10 +- field: consumed + range: 0 +- field: account + fields: + - field: account1 + range: admin,user{2} + - field: account2 + range: "[],1-2" +- field: status + range: "wait{4},done{2}" diff --git a/module/task/test/model/yaml/start/project.yaml b/module/task/test/model/yaml/start/project.yaml new file mode 100755 index 0000000000..23b3bc32bd --- /dev/null +++ b/module/task/test/model/yaml/start/project.yaml @@ -0,0 +1,19 @@ +title: zt_project +author: Mengyi Liu +version: "1.0" +fields: +- field: id + range: 1-6 +- field: type + range: "project{2},sprint{2},stage{2}" +- field: name + range: "项目1,项目2,迭代1,迭代2,阶段1,阶段2" +- field: project + range: "0{2},1{2},2{2}" +- field: model + range: "scrum,waterfall,[]{4}" +- field: path + range: "1,2,`1,3`,`1,4`,`2,5`, `2,6`" + prefix: ',' + postfix: ',' + diff --git a/module/task/test/model/yaml/start/task.yaml b/module/task/test/model/yaml/start/task.yaml new file mode 100755 index 0000000000..dd54648eec --- /dev/null +++ b/module/task/test/model/yaml/start/task.yaml @@ -0,0 +1,14 @@ +title: zt_task +author: Mengyi Liu +version: "1.0" +fields: +- field: execution + range: 3 +- field: story + range: 1,0{9} +- field: parent + range: "0{5},`-1`,6,0{2}" +- field: status + range: "wait,doing,done,cancel,closed,wait{3},doing" +- field: mode + range: "[]{7},linear,multi" diff --git a/module/task/test/model/yaml/start/taskteam.yaml b/module/task/test/model/yaml/start/taskteam.yaml new file mode 100755 index 0000000000..6aa4a6dc4e --- /dev/null +++ b/module/task/test/model/yaml/start/taskteam.yaml @@ -0,0 +1,20 @@ +title: zt_taskteam +author: Shujie Tian +version: "1.0" +fields: +- field: task + range: 8{3},9{3} +- field: left + range: 1-10 +- field: estimate + range: 1-10 +- field: consumed + range: 0 +- field: account + fields: + - field: account1 + range: admin,user{2} + - field: account2 + range: "[],1-2" +- field: status + range: "wait{4},done{2}" diff --git a/module/task/test/tao/getassignedto4multi.php b/module/task/test/tao/getassignedto4multi.php deleted file mode 100755 index f86ebb60c0..0000000000 --- a/module/task/test/tao/getassignedto4multi.php +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env php -id->range('1-4'); -$task->name->range('并行任务,串行任务1,串行任务2,普通任务'); -$task->mode->range('multi,linear{2},[]'); -$task->status->range('done,doing,done,wait'); -$task->assignedTo->range('admin'); -$task->openedBy->range('dev01'); -$task->gen(4); - -$taskTeam = zdTable('taskteam'); -$taskTeam->id->range('1-7'); -$taskTeam->task->range('1{2},2{3},3{2}'); -$taskTeam->account->range('admin,dev01,admin,dev01,dev02,admin,dev01'); -$taskTeam->estimate->range('1{2},2{3},1{2}'); -$taskTeam->left->range('1{2},1{3},1{2}'); -$taskTeam->status->range('done{3},doing,wait,done{2}'); -$taskTeam->gen(7); -su('admin'); - -/** - -title=taskModel->getAssignedTo4Multi(); -timeout=0 -cid=1 - -*/ - -$taskTester = new taskTest(); - -$taskIdList = range(1, 4); -r($taskTester->getAssignedTo4MultiTest($taskIdList[0])) && p() && e('admin'); // 测试获取并行任务的指派人 -r($taskTester->getAssignedTo4MultiTest($taskIdList[1])) && p() && e('dev01'); // 测试获取串行任务的当前指派人 -r($taskTester->getAssignedTo4MultiTest($taskIdList[1], 'next')) && p() && e('dev02'); // 测试获取并行任务的下一个指派人 -r($taskTester->getAssignedTo4MultiTest($taskIdList[2])) && p() && e('dev01'); // 测试获取已完成的串行任务的当前指派人 -r($taskTester->getAssignedTo4MultiTest($taskIdList[3])) && p() && e('admin'); // 测试获取普通任务的指派人 diff --git a/module/task/test/task.class.php b/module/task/test/task.class.php index 966544f89b..3eef8ad3c2 100644 --- a/module/task/test/task.class.php +++ b/module/task/test/task.class.php @@ -216,29 +216,50 @@ class taskTest return $object[1]; } - public function startTest($taskID, $param = array()) + /** + * Start a task. + * + * @param int $taskID + * @param array $param + * @access public + * @return array + */ + public function startTest(int $taskID, array $param = array()): array { - $createFields = array( 'status' => 'doing', 'consumed' => '9', 'assignedTo' => '', 'comment' => '9', 'realStarted' => '', 'left' => '3'); - foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue; - foreach($param as $key => $value) $_POST[$key] = $value; - $obj = $this->objectModel->start($taskID); - unset($_POST); - if(dao::isError()) - { - $error = dao::getError(); - if ($error[0] = "此任务已被启动,不能重复启动!") - { - return $error[0]; - } - else - { - return $error; - } - } - else - { - return $obj; - } + $task = new stdclass(); + $startFields = array('id' => $taskID, 'status' => 'doing', 'assignedTo' => '', 'realstarted' => '', 'left' => 0, 'consumed' => 0); + foreach($startFields as $field => $defaultvalue) $task->{$field} = $defaultvalue; + foreach($param as $key => $value) $task->{$key} = $value; + + $oldTask = $this->objectModel->getByID($taskID); + $result = $this->objectModel->start($oldTask, $task); + return $result; + } + + /** + * Other data process after task start. + * + * @param int $taskID + * @param array $param + * @param string $comment + * @param array $output + * @access public + * @return array|bool + */ + public function afterStartTest(int $taskID, array $param = array(), string $comment = '', array $output = array()): array|bool + { + global $tester; + $_SERVER['HTTP_HOST'] = $tester->config->db->host; + + $task = new stdclass(); + $startFields = array('id' => $taskID, 'status' => 'doing', 'assignedTo' => '', 'realstarted' => '', 'left' => 0, 'consumed' => 0); + foreach($startFields as $field => $defaultvalue) $task->{$field} = $defaultvalue; + foreach($param as $key => $value) $task->{$key} = $value; + + $oldTask = $this->objectModel->getByID($taskID); + $changes = $this->objectModel->start($oldTask, $task); + $result = $this->objectModel->afterStart($oldTask, $task, $changes, $task->left, $comment, $output); + return $result; } /** @@ -1391,16 +1412,16 @@ class taskTest } /** - * Test add task estimate. + * Test add task effort. * * @param object $data * @access public * @return object */ - public function addTaskEstimateTest($data) + public function addTaskEffortTest($data) { $data->date = date("Y-m-d"); - $this->objectModel->addTaskEstimate($data); + $this->objectModel->addTaskEffort($data); global $tester; $objectID = $tester->dao->lastInsertID();