From f9693fb766d8b2cb1540d04a7a7aef5da7c7eb72 Mon Sep 17 00:00:00 2001 From: sunguangming Date: Mon, 29 May 2023 16:51:23 +0800 Subject: [PATCH] * Add task-tao checkworkhour unit test. --- module/task/tao.php | 2 +- module/task/test/tao/checkworkhour.php | 119 +++++++++++++++++++++++++ module/task/test/task.class.php | 23 +++++ 3 files changed, 143 insertions(+), 1 deletion(-) create mode 100755 module/task/test/tao/checkworkhour.php diff --git a/module/task/tao.php b/module/task/tao.php index e1114c347c..288e734907 100644 --- a/module/task/tao.php +++ b/module/task/tao.php @@ -174,7 +174,7 @@ class taskTao extends taskModel /** * 检查录入日志的字段必填性及日志记录人要在多人任务的团队中。 - * Check that the required fields of the effort must be filled in and the effort recorder must be in the multi-task team.. + * Check that the required fields of the effort must be filled in and the effort recorder must be in the multi-task team. * * @param object $task * @param array $workhour diff --git a/module/task/test/tao/checkworkhour.php b/module/task/test/tao/checkworkhour.php new file mode 100755 index 0000000000..f6d6494513 --- /dev/null +++ b/module/task/test/tao/checkworkhour.php @@ -0,0 +1,119 @@ +#!/usr/bin/env php +id->range('1-7'); +$task->execution->range('1-7'); +$task->name->prefix("任务")->range('1-7'); +$task->left->range('1-7'); +$task->mode->range(" , multi, , , , ,"); +$task->estStarted->range('2022\-01\-01'); +$task->assignedTo->prefix("user")->range('1-7'); +$task->status->range("wait,wait,doing,done,pause,cancel,closed"); +$task->gen(7); + +$taskteam = zdTable('taskteam'); +$taskteam->id->range('1-5'); +$taskteam->task->range('2'); +$taskteam->account->prefix("user")->range('1-5'); +$taskteam->estimate->range('5'); +$taskteam->consumed->range('0'); +$taskteam->left->range('5'); +$taskteam->status->range("wait"); +$taskteam->gen(5); + +$effort = zdTable('effort'); +$effort->gen(1); + +$multiTaskEffort = array(); +for($i = 1; $i <= 5; $i++) +{ + $multiTaskEffort[$i] = new stdclass(); + $multiTaskEffort[$i]->consumed = 2; + $multiTaskEffort[$i]->left = 1; + $multiTaskEffort[$i]->work = "工作内容$i"; + $multiTaskEffort[$i]->date = "2022-01-01"; +} + +$finishTaskEffort = array(); +$finishTaskEffort[1] = new stdclass(); +$finishTaskEffort[1]->consumed = 5; +$finishTaskEffort[1]->left = 0; +$finishTaskEffort[1]->work = "完成了任务"; +$finishTaskEffort[1]->date = "2022-01-01"; + +$startTaskEffort = array(); +$startTaskEffort[1] = new stdclass(); +$startTaskEffort[1]->consumed = 5; +$startTaskEffort[1]->left = 5; +$startTaskEffort[1]->work = "开始了任务"; +$startTaskEffort[1]->date = "2022-01-01"; + +$normalTaskEffort = array(); +$normalTaskEffort[1] = new stdclass(); +$normalTaskEffort[1]->consumed = 5; +$normalTaskEffort[1]->left = 5; +$normalTaskEffort[1]->work = "记录了日志"; +$normalTaskEffort[1]->date = "2022-01-01"; + +$noconsumedTaskEffort = array(); +$noconsumedTaskEffort[1] = new stdclass(); +$noconsumedTaskEffort[1]->consumed = 0; +$noconsumedTaskEffort[1]->left = 2; +$noconsumedTaskEffort[1]->work = "无消耗的日志"; +$noconsumedTaskEffort[1]->date = "2022-01-01"; + +$consumedNotNumTaskEffort = array(); +$consumedNotNumTaskEffort[1] = new stdclass(); +$consumedNotNumTaskEffort[1]->consumed = 'test'; +$consumedNotNumTaskEffort[1]->left = 2; +$consumedNotNumTaskEffort[1]->work = "消耗不为数字"; +$consumedNotNumTaskEffort[1]->date = "2022-01-01"; + +$leftNotNumTaskEffort = array(); +$leftNotNumTaskEffort[1] = new stdclass(); +$leftNotNumTaskEffort[1]->consumed = 2; +$leftNotNumTaskEffort[1]->left = 'asd'; +$leftNotNumTaskEffort[1]->work = "剩余不为数字"; +$leftNotNumTaskEffort[1]->date = "2022-01-01"; + +$task = new taskTest(); +r($task->checkWorkhourTest(1, $finishTaskEffort)) && p() && e('1'); // 正常完成任务,是否通过检查 + +su('admin'); +r($task->checkWorkhourTest(2, $multiTaskEffort)) && p() && e('0'); // 不在团队中的人维护工时,返回false + +su('user1'); +r($task->checkWorkhourTest(2, $multiTaskEffort)) && p() && e('1'); // 在团队中的人维护工时,返回true + +r($task->checkWorkhourTest(3, $noconsumedTaskEffort)) && p('0') && e('『ID #1 工时』应当大于『0』。'); // 无消耗工时给出提示 +r($task->checkWorkhourTest(4, $leftNotNumTaskEffort)) && p('0') && e('ID #1 "预计剩余"必须为数字'); // 剩余不为数字,给出提示 +r($task->checkWorkhourTest(5, $finishTaskEffort)) && p() && e('1'); // 以记录工时的形式完成任务 +r($task->checkWorkhourTest(6, $consumedNotNumTaskEffort)) && p('0') && e('ID #1 "总计消耗"必须为数字'); // 消耗不为数字,给出提示 +r($task->checkWorkhourTest(7, $normalTaskEffort)) && p() && e('1'); // 正常记录工时 \ No newline at end of file diff --git a/module/task/test/task.class.php b/module/task/test/task.class.php index f8142b565c..0c6522f1dd 100755 --- a/module/task/test/task.class.php +++ b/module/task/test/task.class.php @@ -1489,6 +1489,29 @@ class taskTest return $object; } + /** + * Check workhour test. + * + * @param int $taskID + * @param array $workhour + * @access public + * @return array|bool + */ + public function checkWorkhourTest(int $taskID, array $workhour): array|bool + { + $task = $this->objectModel->getByID($taskID); + $result = $this->objectModel->checkWorkhour($task, $workhour); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + return $result; + } + } + /** * 测试根据类型查询任务。 * Test fetch tasks of a execution.