* [test] add unit test for zai model.
This commit is contained in:
@@ -59,4 +59,33 @@ class zaiTest
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getVectorizedInfo method.
|
||||
*
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getVectorizedInfoTest()
|
||||
{
|
||||
$result = $this->objectModel->getVectorizedInfo();
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test setVectorizedInfo method.
|
||||
*
|
||||
* @param object $info
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
public function setVectorizedInfoTest($info)
|
||||
{
|
||||
$this->objectModel->setVectorizedInfo($info);
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 zaiModel::getVectorizedInfo();
|
||||
cid=0
|
||||
|
||||
- 测试获取不存在的向量化信息 >> 期望返回默认对象
|
||||
- 测试默认向量化信息的状态字段 >> 期望状态为disabled
|
||||
- 测试默认向量化信息的key字段 >> 期望key为空字符串
|
||||
- 测试默认向量化信息的同步计数字段 >> 期望计数为0
|
||||
- 测试设置向量化信息后获取 >> 期望返回设置的信息
|
||||
|
||||
*/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/zai.unittest.class.php';
|
||||
|
||||
zenData('config')->gen(0);
|
||||
|
||||
su('admin');
|
||||
|
||||
global $tester;
|
||||
$zai = new zaiTest();
|
||||
|
||||
/* 测试获取不存在的向量化信息 */
|
||||
r($zai->getVectorizedInfoTest()) && p('status') && e('disabled'); // 测试获取不存在的向量化信息
|
||||
|
||||
/* 测试默认向量化信息的各个字段 */
|
||||
r($zai->getVectorizedInfoTest()) && p('key') && e('~~'); // 测试默认向量化信息的key字段
|
||||
|
||||
r($zai->getVectorizedInfoTest()) && p('syncedCount') && e('0'); // 测试默认向量化信息的同步计数字段
|
||||
|
||||
r($zai->getVectorizedInfoTest()) && p('syncFailedCount') && e('0'); // 测试默认向量化信息的同步计数字段
|
||||
|
||||
/* 设置向量化信息后再获取 */
|
||||
$vectorizedInfo = new stdClass();
|
||||
$vectorizedInfo->key = 'testvectorkey123';
|
||||
$vectorizedInfo->status = 'enabled';
|
||||
$vectorizedInfo->syncedTime = time();
|
||||
$vectorizedInfo->syncedCount = 100;
|
||||
$vectorizedInfo->syncFailedCount = 5;
|
||||
|
||||
$tester->loadModel('setting')->setItem('system.zai.kb.systemVectorization', json_encode($vectorizedInfo));
|
||||
|
||||
r($zai->getVectorizedInfoTest()) && p('key,status,syncedCount,syncFailedCount') && e('testvectorkey123,enabled,100,5'); // 测试设置向量化信息后获取
|
||||
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 zaiModel::setVectorizedInfo();
|
||||
cid=0
|
||||
|
||||
- 测试设置对象类型的向量化信息 >> 期望正确保存
|
||||
- 测试设置字符串类型的向量化信息 >> 期望正确保存
|
||||
- 测试设置后验证信息已保存 >> 期望能够正确读取
|
||||
- 测试设置空对象的向量化信息 >> 期望正确保存空对象
|
||||
- 测试设置复杂对象的向量化信息 >> 期望正确保存复杂数据
|
||||
|
||||
*/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/zai.unittest.class.php';
|
||||
|
||||
zenData('config')->gen(0);
|
||||
|
||||
su('admin');
|
||||
|
||||
global $tester;
|
||||
$zai = new zaiTest();
|
||||
|
||||
/* 测试设置对象类型的向量化信息 */
|
||||
$vectorInfo1 = new stdClass();
|
||||
$vectorInfo1->key = 'vectorkey001';
|
||||
$vectorInfo1->status = 'active';
|
||||
$vectorInfo1->syncedCount = 50;
|
||||
r($zai->setVectorizedInfoTest($vectorInfo1)) && p() && e('1'); // 测试设置对象类型的向量化信息
|
||||
|
||||
/* 验证设置后的结果 */
|
||||
r($zai->getVectorizedInfoTest()) && p('key,status,syncedCount') && e('vectorkey001,active,50'); // 测试设置后验证信息已保存
|
||||
|
||||
/* 测试设置字符串类型的向量化信息 */
|
||||
$vectorInfoJson = '{"key":"vectorkey002","status":"inactive","syncedCount":25}';
|
||||
r($zai->setVectorizedInfoTest($vectorInfoJson)) && p() && e('1'); // 测试设置字符串类型的向量化信息
|
||||
|
||||
/* 验证字符串设置后的结果 */
|
||||
r($zai->getVectorizedInfoTest()) && p('key,status,syncedCount') && e('vectorkey002,inactive,25'); // 测试设置后验证信息已保存
|
||||
|
||||
/* 测试设置空对象 */
|
||||
$emptyInfo = new stdClass();
|
||||
r($zai->setVectorizedInfoTest($emptyInfo)) && p() && e('1'); // 测试设置空对象的向量化信息
|
||||
|
||||
/* 测试设置复杂对象 */
|
||||
$complexInfo = new stdClass();
|
||||
$complexInfo->key = 'complexkey999';
|
||||
$complexInfo->status = 'processing';
|
||||
$complexInfo->syncedTime = 1640995200;
|
||||
$complexInfo->syncDetails = new stdClass();
|
||||
$complexInfo->syncDetails->lastSync = '2022-01-01';
|
||||
$complexInfo->syncDetails->errors = array('error1', 'error2');
|
||||
r($zai->setVectorizedInfoTest($complexInfo)) && p() && e('1'); // 测试设置复杂对象的向量化信息
|
||||
Reference in New Issue
Block a user