diff --git a/module/task/test/model/assign.php b/module/task/test/model/assign.php index 486487dfa8..c33bdeb6a4 100755 --- a/module/task/test/model/assign.php +++ b/module/task/test/model/assign.php @@ -2,14 +2,11 @@ assign(); timeout=0 cid=1 - */ zdTable('task')->config('task')->gen(6); @@ -18,7 +15,7 @@ zdTable('project')->config('project')->gen(20); su('user12'); -$taskIDlist = array('1','2','3','4','5','6'); +$taskIDlist = array('1', '2', '3', '4', '5', '6'); $waitTask = array('assignedTo' => 'user12','status' => 'wait'); $waitTaskLeft = array('assignedTo' => 'user11','status' => 'wait', 'left' => 1); diff --git a/module/task/test/model/updateparentstatus.php b/module/task/test/model/updateparentstatus.php index 2f1712b621..6a3231b687 100755 --- a/module/task/test/model/updateparentstatus.php +++ b/module/task/test/model/updateparentstatus.php @@ -2,38 +2,100 @@ updateParentStatus(); cid=1 pid=1 - -更新任务ID为1 创建动态的任务的父任务 >> 1 -更新任务ID为601 创建动态的任务的父任务 >> 1 -更新任务ID为601 父ID为601 创建动态的任务的父任务 >> doing,更多任务1 -更新任务ID为901 创建动态的任务的父任务 >> wait,子任务1 -更新任务ID为901 父ID为601 创建动态的任务的父任务 >> wait,子任务1 -更新任务ID为901 父ID为601 不创建动态的任务的父任务 >> wait,子任务1 -更新任务ID为901 父ID为902 创建动态的任务的父任务 >> 1 -更新任务ID为不存在的100001 父ID为601 创建动态的任务的父任务 >> 0 -更新任务ID为不存在的100001 父ID为601 不创建动态的任务的父任务 >> 0 -更新任务ID为不存在的100001 父ID为902 创建动态的任务的父任务 >> 1 - */ -$taskIDList = array('1', '601', '901', '100001'); -$parentIDList = array('601', '902'); +zdTable('user')->config('user')->gen(3); +zdTable('project')->config('project')->gen(1); + +su('user1'); +$_SERVER['HTTP_HOST'] = 'pms.zentao.com'; + +/** +doing + done = doing +doing + closed = doing +doing + pause = doing +doing + cancel = doing +doing + doing = doing +doing + wait = doing +done + wait = doing +closeReasonDone + wait = doing +*/ + +zdTable('task')->config('taskdoing')->gen(26, true, false); $task = new taskTest(); -r($task->updateParentStatusTest($taskIDList[0])) && p('status,name') && e('1'); //更新任务ID为1 创建动态的任务的父任务 -r($task->updateParentStatusTest($taskIDList[1])) && p('status,name') && e('1'); //更新任务ID为601 创建动态的任务的父任务 -r($task->updateParentStatusTest($taskIDList[1], $parentIDList[0])) && p('status,name') && e('doing,更多任务1'); //更新任务ID为601 父ID为601 创建动态的任务的父任务 -r($task->updateParentStatusTest($taskIDList[2])) && p('status,name') && e('wait,子任务1'); //更新任务ID为901 创建动态的任务的父任务 -r($task->updateParentStatusTest($taskIDList[2], $parentIDList[0])) && p('status,name') && e('wait,子任务1'); //更新任务ID为901 父ID为601 创建动态的任务的父任务 -r($task->updateParentStatusTest($taskIDList[2], $parentIDList[0], false)) && p('status,name') && e('wait,子任务1'); //更新任务ID为901 父ID为601 不创建动态的任务的父任务 -r($task->updateParentStatusTest($taskIDList[2], $parentIDList[1])) && p('status,name') && e('1'); //更新任务ID为901 父ID为902 创建动态的任务的父任务 -r($task->updateParentStatusTest($taskIDList[3], $parentIDList[0])) && p('status,name') && e('0'); //更新任务ID为不存在的100001 父ID为601 创建动态的任务的父任务 -r($task->updateParentStatusTest($taskIDList[3], $parentIDList[0], false)) && p('status,name') && e('0'); //更新任务ID为不存在的100001 父ID为601 不创建动态的任务的父任务 -r($task->updateParentStatusTest($taskIDList[3], $parentIDList[1])) && p('status,name') && e('1'); //更新任务ID为不存在的100001 父ID为902 创建动态的任务的父任务 +r($task->updateParentStatusTest(10)) && p('status') && e('doing'); +r($task->updateParentStatusTest(12)) && p('status') && e('doing'); +r($task->updateParentStatusTest(14)) && p('status') && e('doing'); +r($task->updateParentStatusTest(16)) && p('status') && e('doing'); +r($task->updateParentStatusTest(18)) && p('status') && e('doing'); +r($task->updateParentStatusTest(20)) && p('status') && e('doing'); +r($task->updateParentStatusTest(22)) && p('status') && e('doing'); +r($task->updateParentStatusTest(24)) && p('status') && e('doing'); +r($task->updateParentStatusTest(26)) && p('status') && e('wait'); + +/** +pause + done = doing +pause + closed = doing +pause + pause = doing +pause + cancel = doing +pause + doing = doing +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'); +r($task->updateParentStatusTest(14)) && p('status') && e('doing'); +r($task->updateParentStatusTest(16)) && p('status') && e('doing'); +r($task->updateParentStatusTest(18)) && p('status') && e('doing'); + +/** +wait + wait = wait +wait + closed = wait +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'); + +/** +done + done = done +done + closed = done +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'); + +/** +closed + closed = closed +closed + cancel = closed +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'); + + diff --git a/module/task/test/model/yaml/updateparentstatus/project.yaml b/module/task/test/model/yaml/updateparentstatus/project.yaml new file mode 100644 index 0000000000..b1979d5b06 --- /dev/null +++ b/module/task/test/model/yaml/updateparentstatus/project.yaml @@ -0,0 +1,7 @@ +title: zt_user +author: Zhaoke +version: "1.0" +fields: +- field: id + range: 1-100 + \ No newline at end of file diff --git a/module/task/test/model/yaml/updateparentstatus/taskclose.yaml b/module/task/test/model/yaml/updateparentstatus/taskclose.yaml new file mode 100644 index 0000000000..f397efc033 --- /dev/null +++ b/module/task/test/model/yaml/updateparentstatus/taskclose.yaml @@ -0,0 +1,19 @@ +title: zt_task_pause +author: Zhaoke +version: "1.0" +fields: +- field: id + range: 1-100 +- field: parent + range: '`-1`{3},1{2},2{2},3{2}' +- field: name + range: 1-100 + prefix: '任务' +- field: status + range: 'wait{3},closed,closed,closed,cancel,cancel,cancel' +- field: mode + range: 'multi{3},{100}' +- field: execution + range: 1 +- field: openedBy + range: "user2" \ No newline at end of file diff --git a/module/task/test/model/yaml/updateparentstatus/taskdoing.yaml b/module/task/test/model/yaml/updateparentstatus/taskdoing.yaml new file mode 100644 index 0000000000..37e6889443 --- /dev/null +++ b/module/task/test/model/yaml/updateparentstatus/taskdoing.yaml @@ -0,0 +1,21 @@ +title: zt_task_doing +author: Zhaoke +version: "1.0" +fields: +- field: id + range: 1-100 +- field: parent + range: '`-1`{9},1{2},2{2},3{2},4{2},5{2},6{2},7{2},8{2},9' +- field: name + range: 1-100 + prefix: '任务' +- field: status + range: 'wait{9},doing,done,doing,closed,doing,pause,doing,cancel,doing,wait,done,wait,done,wait,doing' +- field: mode + range: 'multi{9},{100}' +- field: execution + range: 1 +- field: openedBy + range: "user2" +- field: closedReason + range: "{21},done,{100}" \ No newline at end of file diff --git a/module/task/test/model/yaml/updateparentstatus/taskdone.yaml b/module/task/test/model/yaml/updateparentstatus/taskdone.yaml new file mode 100644 index 0000000000..225a268c5d --- /dev/null +++ b/module/task/test/model/yaml/updateparentstatus/taskdone.yaml @@ -0,0 +1,19 @@ +title: zt_task_pause +author: Zhaoke +version: "1.0" +fields: +- field: id + range: 1-100 +- field: parent + range: '`-1`{3},1{2},2{2},3{2}' +- field: name + range: 1-100 + prefix: '任务' +- field: status + range: 'wait{3},done,done,done,closed,done,cancel' +- field: mode + range: 'multi{3},{100}' +- field: execution + range: 1 +- field: openedBy + range: "user2" diff --git a/module/task/test/model/yaml/updateparentstatus/taskpause.yaml b/module/task/test/model/yaml/updateparentstatus/taskpause.yaml new file mode 100644 index 0000000000..51e7af82f6 --- /dev/null +++ b/module/task/test/model/yaml/updateparentstatus/taskpause.yaml @@ -0,0 +1,19 @@ +title: zt_task_pause +author: Zhaoke +version: "1.0" +fields: +- field: id + range: 1-100 +- field: parent + range: '`-1`{6},1{2},2{2},3{2},4{2},5{2},6{2}' +- field: name + range: 1-100 + prefix: '任务' +- field: status + range: 'wait{6},pause,done,pause,closed,pause,pause,pause,cancel,pause,doing,pause,wait' +- field: mode + range: 'multi{9},{100}' +- field: execution + range: 1 +- field: openedBy + range: "user2" \ No newline at end of file diff --git a/module/task/test/model/yaml/updateparentstatus/taskwait.yaml b/module/task/test/model/yaml/updateparentstatus/taskwait.yaml new file mode 100644 index 0000000000..ff6fb1f0a6 --- /dev/null +++ b/module/task/test/model/yaml/updateparentstatus/taskwait.yaml @@ -0,0 +1,19 @@ +title: zt_task_pause +author: Zhaoke +version: "1.0" +fields: +- field: id + range: 1-100 +- field: parent + range: '`-1`{3},1{2},2{2},3{2}' +- field: name + range: 1-100 + prefix: '任务' +- field: status + range: 'wait{3},wait,wait,wait,closed,wait,cancel' +- field: mode + range: 'multi{3},{100}' +- field: execution + range: 1 +- field: openedBy + range: "user2" \ No newline at end of file diff --git a/module/task/test/model/yaml/updateparentstatus/user.yaml b/module/task/test/model/yaml/updateparentstatus/user.yaml new file mode 100644 index 0000000000..103a576c70 --- /dev/null +++ b/module/task/test/model/yaml/updateparentstatus/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/test/lib/yaml.class.php b/test/lib/yaml.class.php index 44256195a1..d2deb13817 100644 --- a/test/lib/yaml.class.php +++ b/test/lib/yaml.class.php @@ -374,7 +374,7 @@ class yaml * @access public * @return void */ - public function gen($rows, $isClear = true) + public function gen($rows, $isClear = true, $useCache = true) { list($runFileDir, $runFileName) = $this->getScriptPathAndName(); @@ -382,7 +382,7 @@ class yaml $scriptPath = sprintf("%s%s%s.php", $runFileDir, DS, $runFileName); $yamlPath = sprintf("%s%sdata%s%s_%s.yaml", $runFileDir, DS, DS, $this->tableName, $runFileName); - if($rows && $this->checkNeedReGenerateSql($sqlPath, $scriptPath, $yamlPath)) + if($rows && (!$useCache || $this->checkNeedReGenerateSql($sqlPath, $scriptPath, $yamlPath))) { $runtimeRoot = dirname(dirname(__FILE__)) . '/runtime/'; $zdPath = $runtimeRoot . 'zd';