+ [misc] Add unit tests for searchTao::processDocRecord() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-11-07 10:30:58 +08:00
co-authored by Claude
parent ccbf7dd250
commit 8c55de0328
3 changed files with 444 additions and 0 deletions
+15
View File
@@ -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;
}
}
+86
View File
@@ -0,0 +1,86 @@
#!/usr/bin/env php
<?php
/**
title=测试 searchTao::processDocRecord();
timeout=0
cid=0
- 测试普通文档记录(无assetLib)属性url @doc-view-1.html
- 测试资产库文档记录(assetLibType为practice)属性url @assetlib-practiceView-3.html
- 测试资产库文档记录(assetLibType为component)属性url @assetlib-componentView-5.html
- 测试资产库文档记录(assetLibType为空)属性url @assetlib-componentView-7.html
- 测试文档记录的URL是否包含正确的objectID属性url @doc-view-9.html
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/tao.class.php';
zendata('doc')->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
@@ -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: ""