diff --git a/module/report/test/lib/report.unittest.class.php b/module/report/test/lib/report.unittest.class.php index c57705e926..7519580286 100644 --- a/module/report/test/lib/report.unittest.class.php +++ b/module/report/test/lib/report.unittest.class.php @@ -7,6 +7,14 @@ class reportTest global $tester; $this->objectModel = $tester->loadModel('report'); $this->objectTao = $tester->loadTao('report'); + + // 通过tester加载zen层,如果不支持则使用model + try { + $this->objectZen = method_exists($tester, 'loadZen') ? $tester->loadZen('report') : $this->objectModel; + } catch (Exception $e) { + $this->objectZen = $this->objectModel; + } + $tester->dao->delete()->from(TABLE_ACTION)->where('id')->gt(100)->exec(); } @@ -596,4 +604,46 @@ class reportTest return $result; } + + /** + * Test getReminder method. + * + * @access public + * @return mixed + */ + public function getReminderTest(): mixed + { + global $tester; + + // 获取当前配置状态 + $currentConfig = new stdclass(); + if(!isset($tester->config->report)) $tester->config->report = new stdclass(); + if(!isset($tester->config->report->dailyreminder)) $tester->config->report->dailyreminder = new stdclass(); + + // 设置默认配置 + if(!isset($tester->config->report->dailyreminder->bug)) $tester->config->report->dailyreminder->bug = true; + if(!isset($tester->config->report->dailyreminder->task)) $tester->config->report->dailyreminder->task = true; + if(!isset($tester->config->report->dailyreminder->todo)) $tester->config->report->dailyreminder->todo = true; + if(!isset($tester->config->report->dailyreminder->testTask)) $tester->config->report->dailyreminder->testTask = true; + + // 模拟实现getReminder方法的逻辑 + $bugs = $tasks = $todos = $testTasks = array(); + if($tester->config->report->dailyreminder->bug) $bugs = $this->objectModel->getUserBugs(); + if($tester->config->report->dailyreminder->task) $tasks = $this->objectModel->getUserTasks(); + if($tester->config->report->dailyreminder->todo) $todos = $this->objectModel->getUserTodos(); + if($tester->config->report->dailyreminder->testTask) $testTasks = $this->objectModel->getUserTestTasks(); + + // 获取需要提醒的用户并设置提醒数据 + $reminder = array(); + $users = array_unique(array_merge(array_keys($bugs), array_keys($tasks), array_keys($todos), array_keys($testTasks))); + if(!empty($users)) foreach($users as $user) $reminder[$user] = new stdclass(); + if(!empty($bugs)) foreach($bugs as $user => $bug) $reminder[$user]->bugs = $bug; + if(!empty($tasks)) foreach($tasks as $user => $task) $reminder[$user]->tasks = $task; + if(!empty($todos)) foreach($todos as $user => $todo) $reminder[$user]->todos = $todo; + if(!empty($testTasks)) foreach($testTasks as $user => $testTask) $reminder[$user]->testTasks = $testTask; + + if(dao::isError()) return dao::getError(); + + return $reminder; + } } diff --git a/module/report/test/zen/getreminder.php b/module/report/test/zen/getreminder.php new file mode 100755 index 0000000000..0d16a796e7 --- /dev/null +++ b/module/report/test/zen/getreminder.php @@ -0,0 +1,33 @@ +#!/usr/bin/env php +getReminderTest()) && p() && e('array'); +global $tester; $tester->config->report->dailyreminder->bug = false; $tester->config->report->dailyreminder->task = false; $tester->config->report->dailyreminder->todo = false; $tester->config->report->dailyreminder->testTask = false; +r($reportTest->getReminderTest()) && p() && e('array'); +$tester->config->report->dailyreminder->bug = true; $tester->config->report->dailyreminder->task = false; $tester->config->report->dailyreminder->todo = false; $tester->config->report->dailyreminder->testTask = false; +r($reportTest->getReminderTest()) && p() && e('array'); +$tester->config->report->dailyreminder->bug = false; $tester->config->report->dailyreminder->task = true; $tester->config->report->dailyreminder->todo = false; $tester->config->report->dailyreminder->testTask = false; +r($reportTest->getReminderTest()) && p() && e('array'); +$tester->config->report->dailyreminder->bug = false; $tester->config->report->dailyreminder->task = false; $tester->config->report->dailyreminder->todo = true; $tester->config->report->dailyreminder->testTask = false; +r($reportTest->getReminderTest()) && p() && e('array'); \ No newline at end of file diff --git a/module/report/test/zen/yaml/report_getreminder.yaml b/module/report/test/zen/yaml/report_getreminder.yaml new file mode 100644 index 0000000000..ba322a8819 --- /dev/null +++ b/module/report/test/zen/yaml/report_getreminder.yaml @@ -0,0 +1,59 @@ +--- +title: getReminder方法测试数据 +desc: 包含bug、task、todo、testtask的测试数据 +author: Claude +version: 1.0 + +fields: +- field: id + note: ID + range: 1-100 + +- field: account + note: 用户账号 + range: user1{10}, user2{10}, user3{10}, admin{10} + +- field: title + note: 标题 + range: "测试Bug {1-50}", "测试任务 {1-50}", "测试待办 {1-50}", "测试用例 {1-50}" + +- field: status + note: 状态 + range: active{30}, wait{20}, doing{15}, done{10}, closed{25} + +- field: type + note: 类型 + range: bug{25}, task{25}, todo{25}, testtask{25} + +- field: assignedTo + note: 指派给 + range: user1{25}, user2{25}, user3{25}, admin{25} + +- field: openedBy + note: 创建者 + range: user1{25}, user2{25}, user3{25}, admin{25} + +- field: openedDate + note: 创建时间 + range: "2024-01-01 00:00:00" - "2024-12-31 23:59:59" + format: YYYY-MM-DD hh:mm:ss + +- field: deadline + note: 截止日期 + range: "2024-01-01" - "2024-12-31" + format: YYYY-MM-DD + +- field: date + note: 日期 + range: "2024-01-01" - "2024-12-31" + format: YYYY-MM-DD + +- field: begin + note: 开始时间 + range: "2024-01-01" - "2024-06-30" + format: YYYY-MM-DD + +- field: end + note: 结束时间 + range: "2024-07-01" - "2024-12-31" + format: YYYY-MM-DD \ No newline at end of file