Merge branch 'autoTest_liumengyi_task' into 'master'

* Add auto test of computeHours4Multiple.

See merge request easycorp/zentaopms!2188
This commit is contained in:
孙广明
2022-03-10 07:00:26 +00:00
5 changed files with 225 additions and 0 deletions
+15
View File
@@ -607,4 +607,19 @@ class taskTest
return isset($parentObject) ? $parentObject : $object; return isset($parentObject) ? $parentObject : $object;
} }
} }
public function computeHours4MultipleTest($oldTask, $task = null, $team = array(), $autoStatus = true)
{
$result = $this->objectModel->computeHours4Multiple($oldTask, $task, $team, $autoStatus);
if(dao::isError())
{
return dao::getError();
}
else
{
$object = $this->objectModel->getById($oldTask->id);
return !empty($team) ? $result : $object;
}
}
} }
+99
View File
@@ -0,0 +1,99 @@
title: table zt_team
desc: "团队"
author: automated export
version: "1.0"
fields:
- field: id
note: "ID"
range: 911-1000
prefix: ""
postfix: ""
loop: 0
format: ""
- field: root
note: "任务ID"
range: 1,901-909
prefix: ""
postfix: ""
loop: 0
format: ""
- field: type
note: "项目类型"
range: 'task'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: account
note: "用户账号"
fields:
- field: account1
range: po,user,admin
- field: account2
range: 82,92,''
prefix: ""
postfix: ""
loop: 0
format: ""
- field: role
note: "角色"
range: 研发{99},测试{100},项目经理{100},产品经理{5}
prefix: ""
postfix: ""
loop: 0
format: ""
- field: limited
note: "受限用户"
range: no
prefix: ""
postfix: ""
loop: 0
format: ""
- field: join
note: "加盟日"
range: Y-m-d
prefix: ""
type: timestamp
format: "YYYY-MM-DD"
- field: days
note: "可用工作日"
range: 1-50:R
prefix: ""
postfix: ""
loop: 0
format: ""
- field: hours
note: "可用工时/天"
range: 1-8:R
prefix: ""
postfix: ""
loop: 0
format: ""
- field: estimate
note: ""
range: 1-3
prefix: ""
postfix: ""
loop: 0
format: ""
- field: consumed
note: ""
range: 1-3
prefix: ""
postfix: ""
loop: 0
format: ""
- field: left
note: ""
range: 1-3
prefix: ""
postfix: ""
loop: 0
format: ""
- field: order
note: "排序"
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
+1
View File
@@ -45,6 +45,7 @@ $builder->kanbancellproject = array('rows' => 4860, 'extends' => array('kanban
$builder->team = array('rows' => 400, 'extends' => array('team')); $builder->team = array('rows' => 400, 'extends' => array('team'));
$builder->teamtask = array('rows' => 20, 'extends' => array('team', 'teamtask'));
$builder->stakeholder = array('rows' => 1, 'extends' => array('stakeholder')); $builder->stakeholder = array('rows' => 1, 'extends' => array('stakeholder'));
$builder->stageson = array('rows' => 30, 'extends' => array('project', 'executionson')); $builder->stageson = array('rows' => 30, 'extends' => array('project', 'executionson'));
+5
View File
@@ -149,6 +149,11 @@ class Processor
*/ */
private function initTask() private function initTask()
{ {
$parentList = $this->dao->select('parent')->from(TABLE_TASK)->where('parent')->gt(0)->fetchAll('parent');
$parentIDList = array_keys($parentList);
$parentID = implode(',', $parentIDList);
$this->dao->update(TABLE_TASK)->set('parent')->eq(-1)->where('id')->in($parentID)->andWhere('deleted')->eq(0)->exec();
} }
/** /**
+105
View File
@@ -0,0 +1,105 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/task.class.php';
su('admin');
/**
title=taskModel->computeHours4Multiple();
cid=1
pid=1
task状态为wait只有老task计算多人工时 >> 1,po82,wait,3,3,3
task状态为wait有新老task计算多人工时 >> 1,po82,wait,3,3,3
task状态为wait有新老task和团队计算多人工时 >> 1,po82,doing,3,3,3
task状态为done只有老task计算多人工时 >> 903,po82,done,3,3,3
task状态为done有新老task计算多人工时 >> 903,po82,done,3,3,3
task状态为done有新老task和团队计算多人工时 >> 903,po82,doing,3,3,3
task状态为pause只有老task计算多人工时 >> 910,,pause,9,12,9
task状态为pause有新老task计算多人工时 >> 910,,pause,9,12,9
task状态为pause只有老task计算多人工时 >> 910,po82,doing,3,3,3
老task不存在的情况有新老task和团队计算多人工时 >> 0
老task不存在的情况有新老task计算多人工时 >> 0
新task不存在的情况有新老task和团队计算多人工时 >> 10001,po82,doing,3,3,3
*/
$task1 = new stdclass();
$task1->id = 1;
$task1->status = 'wait';
$task1->assignedTo = '';
$task1->openedBy = '';
$task2 = new stdclass();
$task2->id = 1;
$task2->status = 'wait';
$task2->assignedTo = 'user92';
$task2->openedBy = '';
$task3 = new stdclass();
$task3->id = 903;
$task3->status = 'done';
$task3->assignedTo = '';
$task3->openedBy = '';
$task4 = new stdclass();
$task4->id = 903;
$task4->status = 'done';
$task4->assignedTo = 'po82';
$task4->openedBy = '';
$task5 = new stdclass();
$task5->id = 910;
$task5->status = 'pause';
$task5->assignedTo = '';
$task5->openedBy = '';
$task6 = new stdclass();
$task6->id = 910;
$task6->status = 'pause';
$task6->assignedTo = '';
$task6->openedBy = '';
$task7 = new stdclass();
$task7->id = 100001;
$task7->status = 'done';
$task7->assignedTo = '';
$task7->openedBy = '';
$task8 = new stdclass();
$task8->id = 10001;
$task8->status = 'wait';
$task8->assignedTo = '';
$task8->openedBy = '';
$user1 = new stdclass();
$user1->account = 'po82';
$user1->estimate = 1;
$user1->consumed = 1;
$user1->left = 1;
$user2 = new stdclass();
$user2->account = 'user93';
$user2->estimate = 2;
$user2->consumed = 2;
$user2->left = 2;
$team = array('po82' => $user1, 'user93' => $user2);
$autoStatusList = array(true, false);
$task = new taskTest();
r($task->computeHours4MultipleTest($task1)) && p('id,assignedTo,status,estimate,consumed,left') && e('1,po82,wait,3,3,3'); // task状态为wait只有老task计算多人工时
r($task->computeHours4MultipleTest($task1, $task2)) && p('id,assignedTo,status,estimate,consumed,left') && e('1,po82,wait,3,3,3'); // task状态为wait有新老task计算多人工时
r($task->computeHours4MultipleTest($task1, $task2, $team)) && p('id,assignedTo,status,estimate,consumed,left') && e('1,po82,doing,3,3,3'); // task状态为wait有新老task和团队计算多人工时
r($task->computeHours4MultipleTest($task3)) && p('id,assignedTo,status,estimate,consumed,left') && e('903,po82,done,3,3,3'); // task状态为done只有老task计算多人工时
r($task->computeHours4MultipleTest($task3, $task4)) && p('id,assignedTo,status,estimate,consumed,left') && e('903,po82,done,3,3,3'); // task状态为done有新老task计算多人工时
r($task->computeHours4MultipleTest($task3, $task4, $team)) && p('id,assignedTo,status,estimate,consumed,left') && e('903,po82,doing,3,3,3'); // task状态为done有新老task和团队计算多人工时
r($task->computeHours4MultipleTest($task5)) && p('id,assignedTo,status,estimate,consumed,left') && e('910,,pause,9,12,9'); // task状态为pause只有老task计算多人工时
r($task->computeHours4MultipleTest($task5, $task1, array(), false)) && p('id,assignedTo,status,estimate,consumed,left') && e('910,,pause,9,12,9'); // task状态为pause有新老task计算多人工时
r($task->computeHours4MultipleTest($task5, $task6, $team)) && p('id,assignedTo,status,estimate,consumed,left') && e('910,po82,doing,3,3,3'); // task状态为pause只有老task计算多人工时
r($task->computeHours4MultipleTest($task7)) && p('id,assignedTo,status,estimate,consumed,left') && e('0'); // 老task不存在的情况有新老task和团队计算多人工时
r($task->computeHours4MultipleTest($task7, $task8)) && p('id,assignedTo,status,estimate,consumed,left') && e('0'); // 老task不存在的情况有新老task计算多人工时
r($task->computeHours4MultipleTest($task1, $task8, $team)) && p('id,assignedTo,status,estimate,consumed,left') && e('10001,po82,doing,3,3,3'); // 新task不存在的情况有新老task和团队计算多人工时
system("./ztest init");