* add unit test for task.

This commit is contained in:
wangyidong
2022-08-20 19:58:46 +08:00
parent 5a61f56960
commit 193b333c5e
5 changed files with 132 additions and 45 deletions
+2 -1
View File
@@ -759,6 +759,7 @@ class taskModel extends model
*
* @param object $oldTask
* @param object $task
* @param array $team
* @param bool $autoStatus
* @access public
* @return object|bool
@@ -3675,7 +3676,7 @@ class taskModel extends model
public function getAssignedTo4Multi($users, $task, $type = 'current')
{
if(empty($task->team)) return $task->assignedTo;
if($task->mode != 'linear') return $task->assignedTo;
if($task->mode != 'linear') return '';
$teamHours = array_values($task->team);
+20 -12
View File
@@ -1378,25 +1378,33 @@ class taskTest
}
/**
* Test get next user.
* Test for get team by account.
*
* @param array $users
* @param string $account
* @param string $filter
* @access public
* @return string
*/
public function getTeamByAccount($users, $account, $filter = 'done')
{
$object = $this->objectModel->getTeamByAccount($users, $account, $filter);
if(empty($object)) return '_';
return $object->account . '_' . $object->status;
}
/**
* Test get assignedTo for multi task.
*
* @param array $users
* @param string $current
* @access public
* @return string
*/
public function getNextUserTest($users, $current)
public function getAssignedTo4Multi($users, $task, $type = 'current')
{
$object = $this->objectModel->getNextUser($users, $current);
if(dao::isError())
{
return dao::getError();
}
else
{
return $object;
}
$assignedTo = $this->objectModel->getAssignedTo4Multi($users, $task, $type);
return empty($assignedTo) ? 'null' : $assignedTo;
}
/**
+61
View File
@@ -0,0 +1,61 @@
#!/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->getAssignedTo4Multi();
cid=1
pid=1
获取非多人任务的指派给 >> admin
获取非串行多人任务的指派给 >> null
获取串行多人任务的指派给 >> admin
获取排除已经完成的串行多人任务的指派给 >> dev1
获取串行多人任务的下一个指派给 >> admin
获取已经完成的串行多人任务的指派给 >> dev1
*/
$user = new stdclass();
$user->account = 'admin';
$user->status = 'wait';
$user->order = '0';
$users[] = $user;
$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'); //获取已经完成的串行多人任务的指派给
-32
View File
@@ -1,32 +0,0 @@
#!/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->getDataOfTasksPerEstimate();
cid=1
pid=1
计算current为0的下一个用户 >> user1
计算current为1的下一个用户 >> user2
计算current为2的下一个用户 >> po1
计算current为3的下一个用户 >> po2
计算current为4的下一个用户 >> pm1
计算current为5的下一个用户 >> pm2
计算current为6的下一个用户 >> admin
*/
$users = array('admin', 'user1', 'user2', 'po1', 'po2', 'pm1', 'pm2');
$task = new taskTest();
r($task->getNextUserTest($users, $users[0])) && p() && e('user1'); //计算current为0的下一个用户
r($task->getNextUserTest($users, $users[1])) && p() && e('user2'); //计算current为1的下一个用户
r($task->getNextUserTest($users, $users[2])) && p() && e('po1'); //计算current为2的下一个用户
r($task->getNextUserTest($users, $users[3])) && p() && e('po2'); //计算current为3的下一个用户
r($task->getNextUserTest($users, $users[4])) && p() && e('pm1'); //计算current为4的下一个用户
r($task->getNextUserTest($users, $users[5])) && p() && e('pm2'); //计算current为5的下一个用户
r($task->getNextUserTest($users, $users[6])) && p() && e('admin'); //计算current为6的下一个用户
+49
View File
@@ -0,0 +1,49 @@
#!/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->getTeamByAccount();
cid=1
pid=1
获取未开始的指定账号的团队信息 >> admin_wait
获取进行中的指定账号的团队信息 >> admin_doing
过滤已完成的成员获取的指定账号的团队信息 >> admin_wait
不过滤已完成的成员获取的指定账号的团队信息 >> admin_done
获取的不存在账号 >> _
*/
$user = new stdclass();
$user->account = 'admin';
$user->status = 'wait';
$user->order = '0';
$users[] = $user;
$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 taskTest();
r($task->getTeamByAccount($users, 'admin')) && p() && e('admin_wait'); //获取未开始的指定账号的团队信息
$users[0]->status = 'doing';
r($task->getTeamByAccount($users, 'admin')) && p() && e('admin_doing'); //获取进行中的指定账号的团队信息
$users[0]->status = 'done';
r($task->getTeamByAccount($users, 'admin')) && p() && e('admin_wait'); //过滤已完成的成员获取的指定账号的团队信息
r($task->getTeamByAccount($users, 'admin', '')) && p() && e('admin_done'); //不过滤已完成的成员获取的指定账号的团队信息
r($task->getTeamByAccount($users, 'dev')) && p() && e('_'); //获取的不存在账号