From 5fe1795f2c7b3cdf8240c1e74b7e1ee3167b3167 Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 12 Sep 2023 10:42:07 +0800 Subject: [PATCH] * testtask: refactor script to test the activate method. --- module/testtask/test/model/activate.php | 28 ++++++++++++++++++++++--- module/testtask/test/testtask.class.php | 20 ++++++++++++++---- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/module/testtask/test/model/activate.php b/module/testtask/test/model/activate.php index a14f80a70f..5bda0e12dd 100755 --- a/module/testtask/test/model/activate.php +++ b/module/testtask/test/model/activate.php @@ -2,6 +2,9 @@ gen(7); + su('admin'); /** @@ -10,10 +13,29 @@ title=测试 testtaskModel->activate(); cid=1 pid=1 - - */ +$uid = uniqid(); + +$task1 = array('id' => 0); +$task2 = array('id' => ''); +$task3 = array('id' => 'id'); +$task4 = array('id' => 1); +$task5 = array('id' => 2); +$task6 = array('id' => 8); +$task7 = array('id' => 3, 'status' => 'doing', 'uid' => $uid, 'comment' => ''); +$task8 = array('id' => 7, 'status' => 'doing', 'uid' => $uid, 'comment' => 'comment'); +$task9 = array('id' => 4, 'status' => 'doing', 'uid' => $uid, 'comment' => 'comment'); + $testtask = new testtaskTest(); -r($testtask->activateTest()) && p() && e(); \ No newline at end of file +r($testtask->activateTest($task1)) && p() && e(0); // 测试单 ID 为 0 返回 false。 +r($testtask->activateTest($task2)) && p() && e(0); // 测试单 ID 为空字符串返回 false。 +r($testtask->activateTest($task3)) && p() && e(0); // 测试单 ID 为字符串返回 false。 +r($testtask->activateTest($task4)) && p() && e(0); // 测试单 ID 对应的测试单状态为 wait 返回 false。 +r($testtask->activateTest($task5)) && p() && e(0); // 测试单 ID 对应的测试单状态为 doing 返回 false。 +r($testtask->activateTest($task6)) && p() && e(0); // 测试单 ID 对应的测试单不存在返回 false。 + +r($testtask->activateTest($task7)) && p('task:id|status;action:objectType|action|comment;history[0]:field|old|new', '|') && e('3|doing;testtask|activated|~~;status|done|doing'); // 激活状态为 closed 的测试单,备注为空,成功后检测测试单信息和日志。 +r($testtask->activateTest($task8)) && p('task:id|status;action:objectType|action|comment;history[0]:field|old|new', '|') && e('7|doing;testtask|activated|comment;status|done|doing'); // 激活状态为 closed 的测试单,备注不为空,成功后检测测试单信息和日志。 +r($testtask->activateTest($task9)) && p('task:id|status;action:objectType|action|comment;history[0]:field|old|new', '|') && e('4|doing;testtask|activated|comment;status|blocked|doing'); // 激活状态为 blocked 的测试单,备注不为空,成功后检测测试单信息和日志。 diff --git a/module/testtask/test/testtask.class.php b/module/testtask/test/testtask.class.php index 4ee5e08552..3bdf00894c 100644 --- a/module/testtask/test/testtask.class.php +++ b/module/testtask/test/testtask.class.php @@ -113,13 +113,25 @@ class testtaskTest return array('task' => $task, 'action' => $action, 'history' => $history); } - public function activateTest($taskID) + /** + * 测试激活一个测试单。 + * Test activate a testtask. + * + * param array $task + * access public + * return bool|array + */ + public function activateTest(array $task): bool|array { - $objects = $this->objectModel->activate($taskID); - + $result = $this->objectModel->activate((object)$task); if(dao::isError()) return dao::getError(); + if(!$result) return $result; - return $objects; + $task = $this->objectModel->fetchByID($task['id']); + $action = $this->objectModel->dao->select('*')->from(TABLE_ACTION)->orderBy('id_desc')->limit(1)->fetch(); + $history = $this->objectModel->dao->select('*')->from(TABLE_HISTORY)->where('action')->eq($action->id)->fetchAll(); + + return array('task' => $task, 'action' => $action, 'history' => $history); } public function linkCaseTest($taskID, $type)