Test code for Zai model.
This commit is contained in:
@@ -534,6 +534,45 @@ class zaiTest
|
||||
return zaiModel::extractFieldValue($objectType, $field, $target);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test convertCaseToMarkdown static method.
|
||||
*
|
||||
* @param object $case
|
||||
* @param array|null $langData
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function convertCaseToMarkdownTest($case, ?array $langData = null): array
|
||||
{
|
||||
return zaiModel::convertCaseToMarkdown($case, $langData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test convertIssueToMarkdown static method.
|
||||
*
|
||||
* @param object $issue
|
||||
* @param array|null $langData
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function convertIssueToMarkdownTest($issue, ?array $langData = null): array
|
||||
{
|
||||
return zaiModel::convertIssueToMarkdown($issue, $langData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test convertRiskToMarkdown static method.
|
||||
*
|
||||
* @param object $risk
|
||||
* @param array|null $langData
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function convertRiskToMarkdownTest($risk, ?array $langData = null): array
|
||||
{
|
||||
return zaiModel::convertRiskToMarkdown($risk, $langData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test searchKnowledgesInCollections method.
|
||||
*
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 zaiModel::convertCaseToMarkdown();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 生成标题包含编号 @1
|
||||
- Markdown 包含基本信息章节 @1
|
||||
- 字段列表包含状态项 @1
|
||||
- 属性包含状态字段 @normal
|
||||
- 追加前置条件章节 @1
|
||||
- 追加执行步骤章节 @1
|
||||
|
||||
*/
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/zai.unittest.class.php';
|
||||
|
||||
su('admin');
|
||||
|
||||
global $tester;
|
||||
$zai = new zaiTest();
|
||||
|
||||
$langData = array(
|
||||
'common' => '用例',
|
||||
'sections' => array(
|
||||
'basic' => '基本信息',
|
||||
'precondition' => '前置条件',
|
||||
'steps' => '执行步骤'
|
||||
),
|
||||
'fields' => array(
|
||||
'status' => '状态',
|
||||
'pri' => '优先级',
|
||||
'module' => '模块',
|
||||
'story' => '关联需求',
|
||||
'assignedTo' => '指派人',
|
||||
'expect' => '期望',
|
||||
'execution' => '执行',
|
||||
'type' => '类型'
|
||||
)
|
||||
);
|
||||
|
||||
$case = new stdClass();
|
||||
$case->id = 10;
|
||||
$case->title = '登录校验';
|
||||
$case->status = 'normal';
|
||||
$case->pri = '2';
|
||||
$case->module = 'login';
|
||||
$case->story = 'story1';
|
||||
$case->assignedTo = 'tester';
|
||||
$case->execution = 'exec1';
|
||||
$case->type = 'functional';
|
||||
$case->precondition = '用户已注册';
|
||||
$case->steps = array(
|
||||
array('desc' => '打开登录页', 'expect' => '页面展示'),
|
||||
array('desc' => '输入错误密码', 'expect' => '提示错误')
|
||||
);
|
||||
|
||||
$result = $zai->convertCaseToMarkdownTest($case, $langData);
|
||||
|
||||
/* 生成标题包含编号 */
|
||||
$titleMatch = isset($result['title']) && $result['title'] === '用例 #10 登录校验' ? '1' : '0';
|
||||
r($titleMatch) && p() && e('1'); // 生成标题包含编号
|
||||
|
||||
/* Markdown 包含基本信息章节 */
|
||||
$hasBasicSection = strpos($result['content'], '## 基本信息') !== false ? '1' : '0';
|
||||
r($hasBasicSection) && p() && e('1'); // Markdown 包含基本信息章节
|
||||
|
||||
/* 字段列表包含状态项 */
|
||||
$hasStatusLine = strpos($result['content'], '* 状态: normal') !== false ? '1' : '0';
|
||||
r($hasStatusLine) && p() && e('1'); // 字段列表包含状态项
|
||||
|
||||
/* 属性包含状态字段 */
|
||||
$statusAttr = isset($result['attrs']['status']) ? $result['attrs']['status'] : '';
|
||||
r($statusAttr) && p() && e('normal'); // 属性包含状态字段
|
||||
|
||||
/* 追加前置条件章节 */
|
||||
$hasPrecondition = strpos($result['content'], '## 前置条件') !== false ? '1' : '0';
|
||||
r($hasPrecondition) && p() && e('1'); // 追加前置条件章节
|
||||
|
||||
/* 追加执行步骤章节 */
|
||||
$hasStepSection = strpos($result['content'], '## 执行步骤') !== false ? '1' : '0';
|
||||
r($hasStepSection) && p() && e('1'); // 追加执行步骤章节
|
||||
@@ -0,0 +1,87 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 zaiModel::convertIssueToMarkdown();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 生成标题包含问题编号 @1
|
||||
- Markdown 包含 basic 章节 @1
|
||||
- Markdown 字段包含状态信息 @1
|
||||
- 追加描述章节内容 @1
|
||||
- 追加解决方案章节内容 @1
|
||||
- 属性包含 issueType 字段 @bug
|
||||
|
||||
*/
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/zai.unittest.class.php';
|
||||
|
||||
su('admin');
|
||||
|
||||
global $tester;
|
||||
$zai = new zaiTest();
|
||||
|
||||
$langData = array(
|
||||
'common' => '问题',
|
||||
'sections' => array(
|
||||
'basic' => '基本信息',
|
||||
'desc' => '详情',
|
||||
'solution' => '解决方案'
|
||||
),
|
||||
'fields' => array(
|
||||
'status' => '状态',
|
||||
'pri' => '优先级',
|
||||
'severity' => '严重程度',
|
||||
'project' => '项目',
|
||||
'execution' => '执行',
|
||||
'assignedTo' => '指派人',
|
||||
'issueType' => '类型'
|
||||
)
|
||||
);
|
||||
|
||||
$issue = new stdClass();
|
||||
$issue->id = 21;
|
||||
$issue->title = '接口异常';
|
||||
$issue->status = 'active';
|
||||
$issue->pri = 'high';
|
||||
$issue->severity = 'critical';
|
||||
$issue->project = 'proj1';
|
||||
$issue->execution = 'exec1';
|
||||
$issue->assignedTo = 'dev';
|
||||
$issue->issueType = 'bug';
|
||||
$issue->desc = '<p>接口请求失败</p>';
|
||||
$issue->resolutionComment = '<p>回滚版本</p>';
|
||||
|
||||
$result = $zai->convertIssueToMarkdownTest($issue, $langData);
|
||||
|
||||
/* 生成标题包含问题编号 */
|
||||
$titleMatch = isset($result['title']) && $result['title'] === '问题 #21 接口异常' ? '1' : '0';
|
||||
r($titleMatch) && p() && e('1'); // 生成标题包含问题编号
|
||||
|
||||
/* Markdown 包含 basic 章节 */
|
||||
$hasBasicSection = strpos($result['content'], '## 基本信息') !== false ? '1' : '0';
|
||||
r($hasBasicSection) && p() && e('1'); // Markdown 包含 basic 章节
|
||||
|
||||
/* Markdown 字段包含状态信息 */
|
||||
$hasStatusLine = strpos($result['content'], '* 状态: active') !== false ? '1' : '0';
|
||||
r($hasStatusLine) && p() && e('1'); // Markdown 字段包含状态信息
|
||||
|
||||
/* 追加描述章节内容 */
|
||||
$hasDescSection = (strpos($result['content'], '## 详情') !== false && strpos($result['content'], '接口请求失败') !== false) ? '1' : '0';
|
||||
r($hasDescSection) && p() && e('1'); // 追加描述章节内容
|
||||
|
||||
/* 追加解决方案章节内容 */
|
||||
$hasSolutionSection = (strpos($result['content'], '## 解决方案') !== false && strpos($result['content'], '回滚版本') !== false) ? '1' : '0';
|
||||
r($hasSolutionSection) && p() && e('1'); // 追加解决方案章节内容
|
||||
|
||||
/* 属性包含 issueType 字段 */
|
||||
$issueType = isset($result['attrs']['issueType']) ? $result['attrs']['issueType'] : '';
|
||||
$issueTypeMatch = $issueType === 'bug' ? '1' : '0';
|
||||
r($issueTypeMatch) && p() && e('1'); // 属性包含 issueType 字段
|
||||
|
||||
/* 属性包含状态字段 */
|
||||
$statusAttr = isset($result['attrs']['status']) ? $result['attrs']['status'] : '';
|
||||
$statusMatch = $statusAttr === 'active' ? '1' : '0';
|
||||
r($statusMatch) && p() && e('1'); // 属性包含状态字段
|
||||
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 zaiModel::convertRiskToMarkdown();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 生成标题包含风险编号 @1
|
||||
- Markdown 包含基本信息章节 @1
|
||||
- 字段列表包含概率项 @1
|
||||
- 追加预防措施章节 @1
|
||||
- 追加补救措施章节 @1
|
||||
- 属性包含概率字段 @high
|
||||
|
||||
*/
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/zai.unittest.class.php';
|
||||
|
||||
su('admin');
|
||||
|
||||
global $tester;
|
||||
$zai = new zaiTest();
|
||||
|
||||
$langData = array(
|
||||
'common' => '风险',
|
||||
'sections' => array(
|
||||
'basic' => '基本信息',
|
||||
'desc' => '风险描述',
|
||||
'prevention' => '预防措施',
|
||||
'remedy' => '补救措施'
|
||||
),
|
||||
'fields' => array(
|
||||
'status' => '状态',
|
||||
'probability' => '概率',
|
||||
'impact' => '影响',
|
||||
'assignedTo' => '负责人',
|
||||
'strategy' => '策略'
|
||||
)
|
||||
);
|
||||
|
||||
$risk = new stdClass();
|
||||
$risk->id = 8;
|
||||
$risk->name = '数据泄露';
|
||||
$risk->status = 'open';
|
||||
$risk->probability = 'high';
|
||||
$risk->impact = 'major';
|
||||
$risk->strategy = 'mitigate';
|
||||
$risk->assignedTo = 'security';
|
||||
$risk->desc = '<p>存在泄露风险</p>';
|
||||
$risk->prevention = '<p>加强审计</p>';
|
||||
$risk->remedy = '<p>应急响应</p>';
|
||||
|
||||
$result = $zai->convertRiskToMarkdownTest($risk, $langData);
|
||||
|
||||
/* 生成标题包含风险编号 */
|
||||
$titleMatch = isset($result['title']) && $result['title'] === '风险 #8 数据泄露' ? '1' : '0';
|
||||
r($titleMatch) && p() && e('1'); // 生成标题包含风险编号
|
||||
|
||||
/* Markdown 包含基本信息章节 */
|
||||
$hasBasicSection = strpos($result['content'], '## 基本信息') !== false ? '1' : '0';
|
||||
r($hasBasicSection) && p() && e('1'); // Markdown 包含基本信息章节
|
||||
|
||||
/* 字段列表包含概率项 */
|
||||
$hasProbabilityLine = strpos($result['content'], '* 概率: high') !== false ? '1' : '0';
|
||||
r($hasProbabilityLine) && p() && e('1'); // 字段列表包含概率项
|
||||
|
||||
/* 追加预防措施章节 */
|
||||
$hasPrevention = (strpos($result['content'], '## 预防措施') !== false && strpos($result['content'], '加强审计') !== false) ? '1' : '0';
|
||||
r($hasPrevention) && p() && e('1'); // 追加预防措施章节
|
||||
|
||||
/* 追加补救措施章节 */
|
||||
$hasRemedy = (strpos($result['content'], '## 补救措施') !== false && strpos($result['content'], '应急响应') !== false) ? '1' : '0';
|
||||
r($hasRemedy) && p() && e('1'); // 追加补救措施章节
|
||||
|
||||
/* 属性包含概率字段 */
|
||||
$probabilityAttr = isset($result['attrs']['probability']) ? $result['attrs']['probability'] : '';
|
||||
$probabilityMatch = $probabilityAttr === 'high' ? '1' : '0';
|
||||
r($probabilityMatch) && p() && e('1'); // 属性包含概率字段
|
||||
|
||||
/* 属性包含状态字段 */
|
||||
$statusAttr = isset($result['attrs']['status']) ? $result['attrs']['status'] : '';
|
||||
$statusMatch = $statusAttr === 'open' ? '1' : '0';
|
||||
r($statusMatch) && p() && e('1'); // 属性包含状态字段
|
||||
Reference in New Issue
Block a user