diff --git a/module/task/test/model/assign.php b/module/task/test/model/assign.php index c33bdeb6a4..82404311a7 100755 --- a/module/task/test/model/assign.php +++ b/module/task/test/model/assign.php @@ -4,9 +4,11 @@ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/task.class.php'; /** + title=taskModel->assign(); timeout=0 cid=1 + */ zdTable('task')->config('task')->gen(6); diff --git a/module/task/test/model/updateparentstatus.php b/module/task/test/model/updateparentstatus.php index 6a3231b687..ed8555dc6f 100755 --- a/module/task/test/model/updateparentstatus.php +++ b/module/task/test/model/updateparentstatus.php @@ -15,6 +15,7 @@ zdTable('project')->config('project')->gen(1); su('user1'); $_SERVER['HTTP_HOST'] = 'pms.zentao.com'; +$task = new taskTest(); /** doing + done = doing @@ -29,7 +30,6 @@ closeReasonDone + wait = doing zdTable('task')->config('taskdoing')->gen(26, true, false); -$task = new taskTest(); r($task->updateParentStatusTest(10)) && p('status') && e('doing'); r($task->updateParentStatusTest(12)) && p('status') && e('doing'); r($task->updateParentStatusTest(14)) && p('status') && e('doing'); @@ -51,7 +51,6 @@ pause + wait = doing zdTable('task')->config('taskpause')->gen(18, true, false); -$task = new taskTest(); r($task->updateParentStatusTest(8)) && p('status') && e('doing'); r($task->updateParentStatusTest(10)) && p('status') && e('doing'); r($task->updateParentStatusTest(12)) && p('status') && e('pause'); @@ -67,7 +66,6 @@ wait + cancel = wait zdTable('task')->config('taskwait')->gen(9, true, false); -$task = new taskTest(); r($task->updateParentStatusTest(4)) && p('status') && e('wait'); r($task->updateParentStatusTest(6)) && p('status') && e('wait'); r($task->updateParentStatusTest(8)) && p('status') && e('wait'); @@ -80,7 +78,6 @@ done + cancel = done zdTable('task')->config('taskdone')->gen(9, true, false); -$task = new taskTest(); r($task->updateParentStatusTest(4)) && p('status,finishedBy,assignedTo') && e('done,user1,user2'); r($task->updateParentStatusTest(6)) && p('status,finishedBy,assignedTo') && e('done,user1,user2'); r($task->updateParentStatusTest(8)) && p('status,finishedBy,assignedTo') && e('done,user1,user2'); @@ -93,9 +90,8 @@ cancel + cancel = cancel zdTable('task')->config('taskclose')->gen(9, true, false); -$task = new taskTest(); r($task->updateParentStatusTest(4)) && p('status,closedBy,assignedTo,closedReason') && e('closed,user1,closed,done'); -r($task->updateParentStatusTest(6)) && p('status') && e('closed'); -r($task->updateParentStatusTest(8)) && p('status,finishedBy,canceledBy') && e('cancel,~~,user1,user2,assignedTo'); +r($task->updateParentStatusTest(6)) && p('status,closedBy,assignedTo,closedReason') && e('closed,user1,closed,done'); +r($task->updateParentStatusTest(8)) && p('status,finishedBy,canceledBy') && e('cancel,~~,user1,user2,assignedTo'); diff --git a/module/task/test/tao/createupdateparenttaskaction.php b/module/task/test/tao/createupdateparenttaskaction.php new file mode 100644 index 0000000000..0e8bb8c968 --- /dev/null +++ b/module/task/test/tao/createupdateparenttaskaction.php @@ -0,0 +1,93 @@ +#!/usr/bin/env php +createUpdateParentTaskAction(); +cid=1 +pid=1 +*/ + +zdTable('user')->config('user')->gen(5); +zdTable('project')->config('project')->gen(1); +su('user4'); + +$task = new taskTest(); + +zdTable('task')->config('task')->gen(6); + +$oldParentTask = new stdclass(); + +$oldParentTask->id = 1; +$oldParentTask->status = 'closed'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('finished'); +$oldParentTask->status = 'pause'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('finished'); +$oldParentTask->status = 'cancel'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('finished'); +$oldParentTask->status = 'wait'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('finished'); +$oldParentTask->status = 'doing'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('finished'); + +$oldParentTask->id = 2; +$oldParentTask->status = 'done'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('closed'); +$oldParentTask->status = 'pause'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('closed'); +$oldParentTask->status = 'cancel'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('closed'); +$oldParentTask->status = 'wait'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('closed'); +$oldParentTask->status = 'doing'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('closed'); + +$oldParentTask->id = 3; +$oldParentTask->status = 'done'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('paused'); +$oldParentTask->status = 'cancel'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('paused'); +$oldParentTask->status = 'wait'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('paused'); +$oldParentTask->status = 'doing'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('paused'); +$oldParentTask->status = 'closed'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('paused'); + +$oldParentTask->id = 4; +$oldParentTask->status = 'done'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('canceled'); +$oldParentTask->status = 'wait'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('canceled'); +$oldParentTask->status = 'doing'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('canceled'); +$oldParentTask->status = 'closed'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('canceled'); +$oldParentTask->status = 'pause'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('canceled'); + +$oldParentTask->id = 5; +$oldParentTask->status = 'wait'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('started'); +$oldParentTask->status = 'pause'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('restarted'); +$oldParentTask->status = 'done'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('activated'); +$oldParentTask->status = 'closed'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('activated'); +$oldParentTask->status = 'cancel'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('activated'); + +$oldParentTask->id = 6; +$oldParentTask->status = 'done'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('adjusttasktowait'); +$oldParentTask->status = 'pause'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('adjusttasktowait'); +$oldParentTask->status = 'cancel'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('adjusttasktowait'); +$oldParentTask->status = 'closed'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('adjusttasktowait'); +$oldParentTask->status = 'cancel'; +r($task->createUpdateParentTaskActionTest($oldParentTask)) && p('action') && e('adjusttasktowait'); diff --git a/module/task/test/tao/yaml/createupdateparenttaskaction/task.yaml b/module/task/test/tao/yaml/createupdateparenttaskaction/task.yaml new file mode 100644 index 0000000000..b886fa2f16 --- /dev/null +++ b/module/task/test/tao/yaml/createupdateparenttaskaction/task.yaml @@ -0,0 +1,11 @@ +title: zt_task +author: Zhaoke +version: "1.0" +fields: +- field: id + range: 1-100 +- field: status + range: done,closed,pause,cancel,doing,wait +- field: execution + range: 1 + \ No newline at end of file diff --git a/module/task/test/tao/yaml/createupdateparenttaskaction/user.yaml b/module/task/test/tao/yaml/createupdateparenttaskaction/user.yaml new file mode 100644 index 0000000000..103a576c70 --- /dev/null +++ b/module/task/test/tao/yaml/createupdateparenttaskaction/user.yaml @@ -0,0 +1,15 @@ +title: zt_user +author: Zhaoke +version: "1.0" +fields: +- field: id + range: 1-100 +- field: account + range: 1-100 + prefix: 'user' +- field: password + range: 'f8e41d6c31824c01e5d67c61a8ae49e9,e10adc3949ba59abbe56e057f20f883e' +- field: realname + range: 1-100 + prefix: '开发' + \ No newline at end of file diff --git a/module/task/test/task.class.php b/module/task/test/task.class.php index 118da4a5f8..542491190d 100755 --- a/module/task/test/task.class.php +++ b/module/task/test/task.class.php @@ -1199,6 +1199,7 @@ class taskTest } /** + * 测试更新父任务状态。 * Test update parent status by taskID. * * @param int $taskID @@ -1209,8 +1210,12 @@ class taskTest */ public function updateParentStatusTest($taskID, $parentID = 0, $createAction = true) { - $object = $this->objectModel->updateParentStatus($taskID, $parentID, $createAction); - if(!$object) $object = $this->objectModel->getByID($taskID); + $oldObject = $this->objectModel->getByID($taskID); + if($oldObject->parent) $oldObject = $this->objectModel->getByID($oldObject->parent); + + $this->objectModel->updateParentStatus($taskID, $parentID, $createAction); + + $object = $this->objectModel->getByID(intval($oldObject->id)); if(dao::isError()) { @@ -2180,4 +2185,52 @@ class taskTest $tasks = $this->objectModel->getByIdList($taskIdList); return $this->objectModel->appendLane($tasks); } + + /** + * 测试根据父任务状态更新父任务信息。 + * Test update parent by status and child. + * + * @param object $parentTask + * @param object $childTask + * @param string $status + * @access public + * @return object + */ + public function updateTaskByChildAndStatusTest(object $parentTask, object $childTask, string $status) + { + $now = time(); + + $this->objectModel->updateTaskByChildAndStatus($parentTask, $childTask, $status); + + $task = $this->objectModel->getByID(intval($parentTask->id)); + + if(!$task->finishedDate) $task->finishedDate = ''; + if(!$task->assignedDate) $task->assignedDate = ''; + if(!$task->closedDate) $task->closedDate = ''; + if(!$task->canceledDate) $task->canceledDate = ''; + if(!$task->lastEditedDate) $task->lastEditedDate = ''; + + $task->finishedDate = abs($now - strtotime($task->finishedDate)); + $task->assignedDate = abs($now - strtotime($task->assignedDate)); + $task->closedDate = abs($now - strtotime($task->closedDate)); + $task->canceledDate = abs($now - strtotime($task->canceledDate)); + $task->lastEditedDate = abs($now - strtotime($task->lastEditedDate)); + + return $task; + } + + /** + * 更新父任务时记录日志。 + * Test create action record when update parent status. + * + * @param object $oldParentTask + * @access public + * @return object + */ + public function createUpdateParentTaskActionTest(object $oldParentTask) + { + $this->objectModel->createUpdateParentTaskAction($oldParentTask); + + return $this->objectModel->dao->select('action')->from(TABLE_ACTION)->where('objectType')->eq('task')->andWhere('objectID')->eq($oldParentTask->id)->orderBy('`id` desc')->fetch();; + } }