[story#79414,2h] test code for getPromptFields and savePromptFields.
This commit is contained in:
@@ -1400,6 +1400,21 @@ class aiTest
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getPromptFields method.
|
||||
*
|
||||
* @param int $promptID
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
public function getPromptFieldsTest($promptID = null)
|
||||
{
|
||||
$result = $this->objectModel->getPromptFields($promptID);
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test createPrompt method.
|
||||
*
|
||||
@@ -1415,6 +1430,27 @@ class aiTest
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test savePromptFields method.
|
||||
*
|
||||
* @param int $promptID
|
||||
* @param mixed $data
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
public function savePromptFieldsTest($promptID = null, $data = null)
|
||||
{
|
||||
$this->objectModel->savePromptFields($promptID, $data);
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
$fields = $this->objectModel->dao->select('*')
|
||||
->from(TABLE_AI_PROMPTFIELD)
|
||||
->where('appID')->eq($promptID)
|
||||
->fetchAll();
|
||||
|
||||
return count($fields);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test updatePrompt method.
|
||||
*
|
||||
@@ -1677,7 +1713,7 @@ class aiTest
|
||||
{
|
||||
// Custom implementation to handle edge cases cleanly
|
||||
if(empty($form)) return array();
|
||||
|
||||
|
||||
$formPath = explode('.', $form);
|
||||
if(count($formPath) !== 2) return array();
|
||||
|
||||
@@ -1768,7 +1804,7 @@ class aiTest
|
||||
$reflectionClass = new ReflectionClass('aiModel');
|
||||
$method = $reflectionClass->getMethod('autoPrependNewline');
|
||||
$method->setAccessible(true);
|
||||
|
||||
|
||||
$result = $method->invoke(null, $text);
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
@@ -2429,7 +2465,7 @@ class aiTest
|
||||
public function deleteAssistantTest($assistantId = null)
|
||||
{
|
||||
if(empty($assistantId) || $assistantId < 0) return '0';
|
||||
|
||||
|
||||
$result = $this->objectModel->deleteAssistant($assistantId);
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
@@ -2463,7 +2499,7 @@ class aiTest
|
||||
{
|
||||
try {
|
||||
$exception = new AIResponseException($type, $response);
|
||||
|
||||
|
||||
// 验证基本属性设置正确
|
||||
if($exception->type === $type && $exception->response === $response) {
|
||||
return '1';
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 aiModel::getPromptFields();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 执行aiTest模块的getPromptFieldsTest方法,参数是'1' @5
|
||||
- 执行aiTest模块的getPromptFieldsTest方法,参数是'2' @5
|
||||
- 执行aiTest模块的getPromptFieldsTest方法,参数是'999' @2
|
||||
- 执行aiTest模块的getPromptFieldsTest方法,参数是'3' @5
|
||||
- 执行aiTest模块的getPromptFieldsTest方法,参数是'0' @3
|
||||
|
||||
*/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/ai.unittest.class.php';
|
||||
|
||||
$table = zenData('ai_promptfield');
|
||||
$table->id->range('1-20');
|
||||
$table->appID->range('1{5},2{5},3{5},999{2},0{3}');
|
||||
$table->name->range('字段1,字段2,字段3,字段4,字段5,字段6,字段7,字段8,字段9,字段10,字段11,字段12,字段13,字段14,字段15,字段16,字段17,字段18,字段19,字段20');
|
||||
$table->type->range('text,textarea,radio,checkbox');
|
||||
$table->options->range('选项1,选项2,选项3,选项4,选项5,[]{15}');
|
||||
$table->required->range('1,0');
|
||||
$table->gen(20);
|
||||
|
||||
su('admin');
|
||||
|
||||
$aiTest = new aiTest();
|
||||
|
||||
r(count($aiTest->getPromptFieldsTest('1'))) && p() && e('5');
|
||||
r(count($aiTest->getPromptFieldsTest('2'))) && p() && e('5');
|
||||
r(count($aiTest->getPromptFieldsTest('999'))) && p() && e('2');
|
||||
r(count($aiTest->getPromptFieldsTest('3'))) && p() && e('5');
|
||||
r(count($aiTest->getPromptFieldsTest('0'))) && p() && e('3');
|
||||
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 aiModel::savePromptFields();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 执行aiTest模块的savePromptFieldsTest方法,参数是1, $testData1 @2
|
||||
- 执行aiTest模块的savePromptFieldsTest方法,参数是2, $testData2 @1
|
||||
- 执行aiTest模块的savePromptFieldsTest方法,参数是3, $testData3 @1
|
||||
- 执行aiTest模块的savePromptFieldsTest方法,参数是4, $testData4 @0
|
||||
- 执行aiTest模块的savePromptFieldsTest方法,参数是999, $testData5 @1
|
||||
|
||||
*/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/ai.unittest.class.php';
|
||||
|
||||
su('admin');
|
||||
|
||||
$aiTest = new aiTest();
|
||||
|
||||
$testData1 = new stdClass();
|
||||
$testData1->fields = array(
|
||||
(object)array('appID' => 1, 'name' => '字段A', 'type' => 'text', 'options' => null, 'required' => '1'),
|
||||
(object)array('appID' => 1, 'name' => '字段B', 'type' => 'text', 'options' => null, 'required' => '1')
|
||||
);
|
||||
r($aiTest->savePromptFieldsTest(1, $testData1)) && p() && e('2');
|
||||
|
||||
$testData2 = new stdClass();
|
||||
$testData2->fields = array(
|
||||
(object)array('appID' => 2, 'name' => '字段C', 'type' => 'textarea', 'options' => null, 'required' => '0')
|
||||
);
|
||||
r($aiTest->savePromptFieldsTest(2, $testData2)) && p() && e('1');
|
||||
|
||||
$testData3 = new stdClass();
|
||||
$testData3->fields = array(
|
||||
(object)array('appID' => 3, 'name' => '字段D', 'type' => 'radio', 'options' => array('选项1', '选项2'), 'required' => '1')
|
||||
);
|
||||
r($aiTest->savePromptFieldsTest(3, $testData3)) && p() && e('1');
|
||||
|
||||
$testData4 = new stdClass();
|
||||
$testData4->fields = array();
|
||||
r($aiTest->savePromptFieldsTest(4, $testData4)) && p() && e('0');
|
||||
|
||||
$testData5 = new stdClass();
|
||||
$testData5->fields = array(
|
||||
(object)array('appID' => 999, 'name' => '字段E', 'type' => 'checkbox', 'options' => array('可选1', '可选2'), 'required' => '0')
|
||||
);
|
||||
r($aiTest->savePromptFieldsTest(999, $testData5)) && p() && e('1');
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: getPromptFields方法的测试数据
|
||||
desc: 用于测试getPromptFields方法的ai_promptfield表数据
|
||||
author: AI Assistant
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 字段ID
|
||||
range: 1-20
|
||||
|
||||
- field: appID
|
||||
note: Prompt ID
|
||||
range: 1{5},2{5},3{5},999{2},0{3}
|
||||
|
||||
- field: name
|
||||
note: 字段名称
|
||||
range: 字段A{2},字段B{2},字段C{2},字段D{2},字段E{2},字段F{2},字段G{2},字段H{2},字段I{2},字段J{2}
|
||||
|
||||
- field: type
|
||||
note: 字段类型
|
||||
range: text{8},textarea{6},radio{3},checkbox{3}
|
||||
|
||||
- field: options
|
||||
note: 选项内容
|
||||
range: 选项1,选项2,选项3{2},是,否{2},高,中,低{2},必填,可选{2},[]{8}
|
||||
|
||||
- field: required
|
||||
note: 是否必填
|
||||
range: 1{12},0{8}
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: 保存 Prompt 字段测试数据
|
||||
desc: 用于测试savePromptFields方法的ai_promptfield表数据
|
||||
author: AI Assistant
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 字段ID
|
||||
range: 1-20
|
||||
|
||||
- field: appID
|
||||
note: Prompt ID
|
||||
range: 1{5},2{5},3{5},4{3},5{2}
|
||||
|
||||
- field: name
|
||||
note: 字段名称
|
||||
range: 字段K{3},字段L{3},字段M{3},字段N{3},字段O{3},字段P{3},字段Q{2}
|
||||
|
||||
- field: type
|
||||
note: 字段类型
|
||||
range: text{8},textarea{6},radio{4},checkbox{2}
|
||||
|
||||
- field: options
|
||||
note: 选项内容
|
||||
range: '[]{10}, 选项A,选项B{3}, 选项C,选项D,选项E{2}, 是,否{2}, 高级,中级,初级{3}'
|
||||
|
||||
- field: required
|
||||
note: 是否必填
|
||||
range: '1'{10}, '0'{10}
|
||||
Reference in New Issue
Block a user