From 5fe8784aac816aba08b6e7a7421fb6fdb65006c6 Mon Sep 17 00:00:00 2001 From: liugang Date: Mon, 8 Sep 2025 19:42:36 +0800 Subject: [PATCH] + [misc] Add unit tests for markModel::getNeededMarks() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- module/mark/test/lib/mark.unittest.class.php | 28 ++++++++++++++ module/mark/test/model/getneededmarks.php | 38 +++++++++++++++++++ .../test/model/yaml/mark_getneededmarks.yaml | 33 ++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 module/mark/test/lib/mark.unittest.class.php create mode 100755 module/mark/test/model/getneededmarks.php create mode 100644 module/mark/test/model/yaml/mark_getneededmarks.yaml diff --git a/module/mark/test/lib/mark.unittest.class.php b/module/mark/test/lib/mark.unittest.class.php new file mode 100644 index 0000000000..22842f17e9 --- /dev/null +++ b/module/mark/test/lib/mark.unittest.class.php @@ -0,0 +1,28 @@ +objectModel = $tester->loadModel('mark'); + } + + /** + * Test getNeededMarks method. + * + * @param array $objectIDs + * @param string $objectType + * @param string $version + * @param string $mark + * @access public + * @return mixed + */ + public function getNeededMarksTest(array $objectIDs, string $objectType, string $version, string $mark) + { + $result = $this->objectModel->getNeededMarks($objectIDs, $objectType, $version, $mark); + if(dao::isError()) return dao::getError(); + + return $result; + } +} \ No newline at end of file diff --git a/module/mark/test/model/getneededmarks.php b/module/mark/test/model/getneededmarks.php new file mode 100755 index 0000000000..e1b8cdbddb --- /dev/null +++ b/module/mark/test/model/getneededmarks.php @@ -0,0 +1,38 @@ +#!/usr/bin/env php +objectType->range('story,story,story,task,task'); +$mark->objectID->range('1,2,3,1,2'); +$mark->version->range('1.0,1.0,1.0,2.0,2.0'); +$mark->account->range('admin'); +$mark->mark->range('view'); +$mark->date->range('`2024-01-01 10:00:00`,`2024-01-02 10:00:00`,`2024-01-03 10:00:00`,`2024-01-04 10:00:00`,`2024-01-05 10:00:00`'); +$mark->extra->range(''); +$mark->gen(5); + +global $tester; +$markModel = $tester->loadModel('mark'); + +r(count($markModel->getNeededMarks([1, 2, 3], 'story', '1.0', 'view'))) && p() && e('3'); // 测试正常查询存在的标记数据 +r(count($markModel->getNeededMarks([999, 888], 'story', '1.0', 'view'))) && p() && e('0'); // 测试查询不存在的对象ID +r(count($markModel->getNeededMarks([1, 2], 'task', '2.0', 'view'))) && p() && e('2'); // 测试查询task类型的标记数据 +r(count($markModel->getNeededMarks([1, 2, 3], 'story', 'all', 'view'))) && p() && e('3'); // 测试查询所有版本的标记数据 +r(count($markModel->getNeededMarks([1, 2, 3], 'story', '1.0', 'nonexistent'))) && p() && e('0'); // 测试查询不存在的标记类型 \ No newline at end of file diff --git a/module/mark/test/model/yaml/mark_getneededmarks.yaml b/module/mark/test/model/yaml/mark_getneededmarks.yaml new file mode 100644 index 0000000000..dd6f63ffd1 --- /dev/null +++ b/module/mark/test/model/yaml/mark_getneededmarks.yaml @@ -0,0 +1,33 @@ +--- +title: Mark data for getNeededMarks method testing +desc: Test data for mark table to test getNeededMarks method +author: Claude + +fields: +- field: id + note: 标记ID + range: 1-20 + prefix: "" + postfix: "" +- field: objectType + note: 对象类型 + range: story{5},task{5},bug{5},project{5} +- field: objectID + note: 对象ID + range: 1-10 +- field: version + note: 版本号 + range: 1.0{5},2.0{5},1.1{3},all{7} +- field: account + note: 用户账号 + range: admin{8},user1{4},user2{4},user3{4} +- field: date + note: 标记日期 + range: 2024-01-01 10:00:00-2024-12-31 23:59:59:86400 + format: YYYY-MM-DD hh:mm:ss +- field: mark + note: 标记类型 + range: view{12},star{4},read{4} +- field: extra + note: 额外信息 + range: ''{15},'extra1'{3},'extra2'{2} \ No newline at end of file