From 8c55de03286596241cae64471d38fe8caa6d77c8 Mon Sep 17 00:00:00 2001 From: liugang Date: Thu, 6 Nov 2025 17:13:23 +0800 Subject: [PATCH] + [misc] Add unit tests for searchTao::processDocRecord() 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/search/test/lib/tao.class.php | 15 + module/search/test/tao/processdocrecord.php | 86 +++++ .../test/tao/yaml/processdocrecord/doc.yaml | 343 ++++++++++++++++++ 3 files changed, 444 insertions(+) create mode 100755 module/search/test/tao/processdocrecord.php create mode 100644 module/search/test/tao/yaml/processdocrecord/doc.yaml diff --git a/module/search/test/lib/tao.class.php b/module/search/test/lib/tao.class.php index 4a4123653b..0d47ffac40 100644 --- a/module/search/test/lib/tao.class.php +++ b/module/search/test/lib/tao.class.php @@ -222,4 +222,19 @@ class searchTaoTest extends baseTest if(dao::isError()) return dao::getError(); return $result; } + + /** + * Test processDocRecord method. + * + * @param object $record + * @param array $objectList + * @access public + * @return object + */ + public function processDocRecordTest(object $record, array $objectList): object + { + $result = $this->invokeArgs('processDocRecord', [$record, $objectList]); + if(dao::isError()) return dao::getError(); + return $result; + } } diff --git a/module/search/test/tao/processdocrecord.php b/module/search/test/tao/processdocrecord.php new file mode 100755 index 0000000000..7678fcbc14 --- /dev/null +++ b/module/search/test/tao/processdocrecord.php @@ -0,0 +1,86 @@ +#!/usr/bin/env php +loadYaml('processdocrecord', false, 2)->gen(10); + +su('admin'); + +$searchTest = new searchTaoTest(); + +$record1 = new stdClass(); +$record1->objectID = 1; +$record1->objectType = 'doc'; + +$doc1 = new stdClass(); +$doc1->id = 1; +$doc1->assetLib = 0; +$doc1->assetLibType = ''; + +$objectList1 = array('doc' => array(1 => $doc1)); + +$record2 = new stdClass(); +$record2->objectID = 3; +$record2->objectType = 'doc'; + +$doc2 = new stdClass(); +$doc2->id = 3; +$doc2->assetLib = 1; +$doc2->assetLibType = 'practice'; + +$objectList2 = array('doc' => array(3 => $doc2)); + +$record3 = new stdClass(); +$record3->objectID = 5; +$record3->objectType = 'doc'; + +$doc3 = new stdClass(); +$doc3->id = 5; +$doc3->assetLib = 2; +$doc3->assetLibType = 'component'; + +$objectList3 = array('doc' => array(5 => $doc3)); + +$record4 = new stdClass(); +$record4->objectID = 7; +$record4->objectType = 'doc'; + +$doc4 = new stdClass(); +$doc4->id = 7; +$doc4->assetLib = 1; +$doc4->assetLibType = ''; + +$objectList4 = array('doc' => array(7 => $doc4)); + +$record5 = new stdClass(); +$record5->objectID = 9; +$record5->objectType = 'doc'; + +$doc5 = new stdClass(); +$doc5->id = 9; +$doc5->assetLib = 0; +$doc5->assetLibType = ''; + +$objectList5 = array('doc' => array(9 => $doc5)); + +r($searchTest->processDocRecordTest($record1, $objectList1)) && p('url') && e('doc-view-1.html'); // 测试普通文档记录(无assetLib) +r($searchTest->processDocRecordTest($record2, $objectList2)) && p('url') && e('assetlib-practiceView-3.html'); // 测试资产库文档记录(assetLibType为practice) +r($searchTest->processDocRecordTest($record3, $objectList3)) && p('url') && e('assetlib-componentView-5.html'); // 测试资产库文档记录(assetLibType为component) +r($searchTest->processDocRecordTest($record4, $objectList4)) && p('url') && e('assetlib-componentView-7.html'); // 测试资产库文档记录(assetLibType为空) +r($searchTest->processDocRecordTest($record5, $objectList5)) && p('url') && e('doc-view-9.html'); // 测试文档记录的URL是否包含正确的objectID \ No newline at end of file diff --git a/module/search/test/tao/yaml/processdocrecord/doc.yaml b/module/search/test/tao/yaml/processdocrecord/doc.yaml new file mode 100644 index 0000000000..57b540e84b --- /dev/null +++ b/module/search/test/tao/yaml/processdocrecord/doc.yaml @@ -0,0 +1,343 @@ +--- +title: 文档测试数据 +desc: 用于测试 processDocRecord 方法的文档数据 +author: Claude +version: 1.0 + +fields: +- field: id + note: 文档ID + range: 1-10 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: vision + note: 版本类型 + range: rnd{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: project + note: 所属项目 + range: 0{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: product + note: 所属产品 + range: 0{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: execution + note: 所属执行 + range: 0{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: lib + note: 所属文档库 + range: 1-5 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: template + note: 模板 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: templateType + note: 模板类型 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: templateDesc + note: 模板描述 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: objects + note: 关联对象 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: chapterType + note: 章节类型 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: cycle + note: 周期 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: cycleConfig + note: 周期配置 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: module + note: 所属模块 + range: '0{10}' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: title + note: 文档标题 + range: 'Document{10}' + prefix: "" + postfix: "" + loop: 0 + format: "%02d" +- field: keywords + note: 关键词 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: type + note: 文档类型 + range: text{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: status + note: 状态 + range: normal{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: parent + note: 父文档 + range: 0{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: path + note: 路径 + range: ',1,{10}' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: grade + note: 等级 + range: 1{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: order + note: 排序 + range: 0{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: views + note: 浏览次数 + range: 0{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: assetLib + note: 资产库 + range: 0{2},1{4},2{4} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: assetLibType + note: 资产库类型 + range: '[]{2},practice{4},component{4}' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: from + note: 来源 + range: 0{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: fromVersion + note: 来源版本 + range: 1{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: draft + note: 草稿 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: collects + note: 收藏数 + range: 0{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: weeklyDate + note: 周报日期 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: addedBy + note: 创建者 + range: admin{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: addedDate + note: 创建日期 + range: '`2024-01-01`{10}' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: assignedTo + note: 指派给 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: assignedDate + note: 指派日期 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: approvedDate + note: 审批日期 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: editedBy + note: 编辑者 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: editedDate + note: 编辑日期 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: editingDate + note: 正在编辑日期 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: editedList + note: 编辑列表 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: mailto + note: 邮件发送 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: acl + note: 权限 + range: open{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: groups + note: 用户组 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: users + note: 用户列表 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: readGroups + note: 读权限用户组 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: readUsers + note: 读权限用户 + range: '[]' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: version + note: 版本 + range: 1{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: builtIn + note: 内置 + range: 0{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: deleted + note: 删除标记 + range: 0{10} + prefix: "" + postfix: "" + loop: 0 + format: ""