* Add unit test of taskModel-updateParentStatus.

This commit is contained in:
zhaoke
2023-06-09 15:20:39 +08:00
parent eaeef042e4
commit d0454dcd47
10 changed files with 209 additions and 31 deletions
+1 -4
View File
@@ -2,14 +2,11 @@
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/task.class.php';
su('admin');
/**
title=taskModel->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);
+87 -25
View File
@@ -2,38 +2,100 @@
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/task.class.php';
su('admin');
/**
title=taskModel->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');
@@ -0,0 +1,7 @@
title: zt_user
author: Zhaoke
version: "1.0"
fields:
- field: id
range: 1-100
@@ -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"
@@ -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}"
@@ -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"
@@ -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"
@@ -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"
@@ -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: '开发'
+2 -2
View File
@@ -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';