Files
EasySoft-ZenTaoPMS/module/zai/test/model/searchknowledgechunks.php

106 lines
4.9 KiB
PHP
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env php
<?php
/**
title=测试 zaiModel->searchKnowledgeChunks();
timeout=0
cid=0
- 测试没有ZAI设置时搜索知识库块 @0
- 测试设置ZAI配置后搜索知识库块基本查询 @array
- 测试搜索知识库块并指定limit参数 @array
- 测试搜索知识库块并指定minSimilarity参数 @array
- 测试搜索知识库块并使用filter过滤条件 @array
- 测试搜索知识库块返回空数组API失败 @0
- 测试搜索知识库块使用不同的collection @array
- 测试搜索知识库块使用复杂的filter条件 @array
- 测试搜索知识库块使用空查询字符串 @array
- 测试搜索知识库块使用最小相似度0.5 @array
- 测试搜索知识库块使用最大limit值 @array
- 测试搜索知识库块使用多个filter条件 @array
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/zai.unittest.class.php';
zenData('config')->gen(0);
zenData('user')->gen(1);
su('admin');
global $tester;
$zai = new zaiTest();
/* 测试没有ZAI设置时搜索知识库块 */
$result1 = $zai->searchKnowledgeChunksTest('测试查询', 'test-collection', array());
r(empty($result1) ? 0 : count($result1)) && p() && e('0'); // 测试没有ZAI设置时搜索知识库块
/* 设置ZAI配置 */
$setting = new stdClass();
$setting->host = 'testhost.com';
$setting->port = 8080;
$setting->appID = 'testappid123';
$setting->token = 'testtoken123';
$setting->adminToken = 'testadmintoken123';
$tester->loadModel('setting')->setItem('system.zai.global.setting', json_encode($setting));
/* 测试设置ZAI配置后搜索知识库块基本查询 */
// 注意由于没有真实的ZAI API服务器这些测试会因为网络调用失败
// 但我们可以验证方法的逻辑执行和参数处理
$result2 = $zai->searchKnowledgeChunksTest('如何使用禅道', 'zentao_kb', array());
r(is_array($result2) ? 'array' : 'not_array') && p() && e('array'); // 测试设置ZAI配置后搜索知识库块基本查询
/* 测试搜索知识库块并指定limit参数 */
$result3 = $zai->searchKnowledgeChunksTest('需求管理', 'zentao_kb', array(), 10);
r(is_array($result3) ? 'array' : 'not_array') && p() && e('array'); // 测试搜索知识库块并指定limit参数
/* 测试搜索知识库块并指定minSimilarity参数 */
$result4 = $zai->searchKnowledgeChunksTest('缺陷跟踪', 'zentao_kb', array(), 20, 0.9);
r(is_array($result4) ? 'array' : 'not_array') && p() && e('array'); // 测试搜索知识库块并指定minSimilarity参数
/* 测试搜索知识库块并使用filter过滤条件 */
$filter = array('objectType' => 'story');
$result5 = $zai->searchKnowledgeChunksTest('用户故事', 'zentao_kb', $filter);
r(is_array($result5) ? 'array' : 'not_array') && p() && e('array'); // 测试搜索知识库块并使用filter过滤条件
/* 测试搜索知识库块返回空数组API失败 */
// 由于没有真实服务器API调用会失败应该返回空数组
$result6 = $zai->searchKnowledgeChunksTest('测试', 'invalid_collection', array());
r(empty($result6) ? 0 : count($result6)) && p() && e('0'); // 测试搜索知识库块返回空数组API失败
/* 测试搜索知识库块使用不同的collection */
$result7 = $zai->searchKnowledgeChunksTest('项目管理', 'project_kb', array());
r(is_array($result7) ? 'array' : 'not_array') && p() && e('array'); // 测试搜索知识库块使用不同的collection
/* 测试搜索知识库块使用复杂的filter条件 */
$complexFilter = array(
'objectType' => 'bug',
'status' => 'active',
'product' => 1
);
$result8 = $zai->searchKnowledgeChunksTest('如何修复bug', 'zentao_kb', $complexFilter);
r(is_array($result8) ? 'array' : 'not_array') && p() && e('array'); // 测试搜索知识库块使用复杂的filter条件
/* 测试搜索知识库块使用空查询字符串 */
$result9 = $zai->searchKnowledgeChunksTest('', 'zentao_kb', array());
r(is_array($result9) ? 'array' : 'not_array') && p() && e('array'); // 测试搜索知识库块使用空查询字符串
/* 测试搜索知识库块使用最小相似度0.5 */
$result10 = $zai->searchKnowledgeChunksTest('测试用例', 'zentao_kb', array(), 20, 0.5);
r(is_array($result10) ? 'array' : 'not_array') && p() && e('array'); // 测试搜索知识库块使用最小相似度0.5
/* 测试搜索知识库块使用最大limit值 */
$result11 = $zai->searchKnowledgeChunksTest('文档管理', 'zentao_kb', array(), 100);
r(is_array($result11) ? 'array' : 'not_array') && p() && e('array'); // 测试搜索知识库块使用最大limit值
/* 测试搜索知识库块使用多个filter条件 */
$multiFilter = array(
'objectType' => 'doc',
'product' => 1,
'lib' => 2,
'type' => 'text'
);
$result12 = $zai->searchKnowledgeChunksTest('API文档', 'zentao_kb', $multiFilter, 15, 0.85);
r(is_array($result12) ? 'array' : 'not_array') && p() && e('array'); // 测试搜索知识库块使用多个filter条件