Files
EasySoft-ZenTaoPMS/module/zai/test/model/convertdoctomarkdown.php
2025-11-14 13:05:25 +08:00

108 lines
3.5 KiB
PHP

#!/usr/bin/env php
<?php
/**
title=测试 zaiModel::convertDocToMarkdown();
timeout=0
cid=19765
- 测试转换完整的文档对象 @1
- 测试转换没有docContent的文档对象 @2
- 测试验证Markdown内容包含文档信息 @1
- 测试验证属性设置正确
- 产品 @1
- 库 @1
- 模块 @1
- 项目 @1
- 执行 @1
- 类型 @manual
- 测试验证标题包含ID @1
- 测试验证内容包含基本信息标题 @1
- 测试验证内容包含直接内容 @1
- 测试验证文档类型转换正确 @manual
- 测试验证Markdown内容包含文档标题 @测试文档1
- 测试验证不同版本文档的处理 @1
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/zai.unittest.class.php';
zenData('doc')->gen(2);
zenData('doccontent')->gen(1);
su('admin');
global $tester;
$zai = new zaiTest();
// 创建完整的文档对象
$doc1 = new stdClass();
$doc1->id = 1;
$doc1->title = '测试文档1 - 用户手册';
$doc1->type = 'manual';
$doc1->product = 1;
$doc1->project = 1;
$doc1->execution = 1;
$doc1->version = 1;
$doc1->lib = 1;
$doc1->module = 1;
$doc1->addedBy = 'admin';
$doc1->addedDate = '2023-01-01 10:00:00';
$doc1->editedBy = 'admin';
$doc1->editedDate = '2023-01-02 10:00:00';
// 创建没有docContent的文档对象
$doc2 = new stdClass();
$doc2->id = 2;
$doc2->title = '测试文档2 - 技术规范';
$doc2->type = 'standard';
$doc2->product = 1;
$doc2->project = 0;
$doc2->execution = 0;
$doc2->version = 1;
$doc2->lib = 2;
$doc2->module = 2;
$doc2->content = '<p>这是直接在doc对象中的内容</p>';
$doc2->addedBy = 'admin';
$doc2->addedDate = '2023-01-03 10:00:00';
$doc2->editedBy = '';
$doc2->editedDate = '';
/* 测试转换完整的文档对象 */
$result1 = $zai->convertDocToMarkdownTest($doc1);
r($result1) && p('id') && e('1'); // 测试转换完整的文档对象
/* 测试转换没有docContent的文档对象 */
$result2 = $zai->convertDocToMarkdownTest($doc2);
r($result2) && p('id') && e('2'); // 测试转换没有docContent的文档对象
/* 测试验证Markdown内容包含文档信息 */
$contentContainsDocId = strpos($result1['content'], '#1') !== false;
r($contentContainsDocId) && p() && e('1'); // 测试验证Markdown内容包含文档信息
/* 测试验证属性设置正确 */
r($result1['attrs']) && p('product,lib,module,project,execution,type') && e('1,1,1,1,1,manual'); // 测试验证属性设置正确
/* 测试验证标题格式正确 */
$titleContainsId = strpos($result1['title'], '#1') !== false;
r($titleContainsId) && p() && e('1'); // 测试验证标题包含ID
/* 测试验证内容包含基本信息标题 */
$contentContainsBasicInfo = strpos($result1['content'], '基本信息') !== false;
r($contentContainsBasicInfo) && p() && e('1'); // 测试验证内容包含基本信息标题
/* 测试验证第二个文档的内容包含直接内容 */
$content2ContainsDirectContent = strpos($result2['content'], '技术规范') !== false;
r($content2ContainsDirectContent) && p() && e('1'); // 测试验证内容包含直接内容
/* 测试验证文档类型转换正确 */
r($result1['attrs']['type']) && p() && e('manual'); // 测试验证文档类型转换正确
/* 测试验证Markdown内容包含文档标题 */
$contentContainsDocTitle = !empty($result1['content']);
r($contentContainsDocTitle) && p() && e('1'); // 测试验证Markdown内容包含文档标题
/* 测试验证不同版本文档的处理 */
r($result1['attrs']['version']) && p() && e('1'); // 测试验证不同版本文档的处理