+ [misc] Add unit tests for productZen::processProjectListData() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-15 15:09:59 +08:00
co-authored by Claude
parent 335558aab5
commit 02df12da6b
2 changed files with 99 additions and 0 deletions
@@ -4389,4 +4389,30 @@ class productTest
return array('error' => $e->getMessage());
}
}
/**
* Test processProjectListData method.
*
* @param array $projectList
* @access public
* @return array
*/
public function processProjectListDataTest(array $projectList): array
{
try {
global $tester;
$productZen = new productZen();
$method = $this->objectZen->getMethod('processProjectListData');
$method->setAccessible(true);
$result = $method->invokeArgs($productZen, array($projectList));
if(dao::isError()) return dao::getError();
return $result;
} catch (Exception $e) {
return array('error' => $e->getMessage());
}
}
}
+73
View File
@@ -0,0 +1,73 @@
#!/usr/bin/env php
<?php
/**
title=测试 productZen::processProjectListData();
timeout=0
cid=0
- 步骤1:正常项目列表数据处理第0条的name属性 @测试项目1
- 步骤2:空项目列表数据处理 @0
- 步骤3:单个项目数据处理验证第0条的name属性 @单个测试项目
- 步骤4:多个项目数据批量处理 @2
- 步骤5:项目数据字段完整性验证第0条的from属性 @project
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/product.unittest.class.php';
su('admin');
$productTest = new productTest();
// 准备简单的测试数据
$projectList = array();
$project1 = new stdClass();
$project1->id = 1;
$project1->name = '测试项目1';
$project1->PM = 'admin';
$project1->status = 'doing';
$project1->budget = '100000';
$project1->budgetUnit = 'CNY';
$project1->estimate = 0;
$project1->consumed = 0;
$project1->left = 0;
$project1->hasProduct = 1;
$projectList[] = $project1;
$project2 = new stdClass();
$project2->id = 2;
$project2->name = '测试项目2';
$project2->PM = 'user1';
$project2->status = 'wait';
$project2->budget = '200000';
$project2->budgetUnit = 'CNY';
$project2->estimate = 0;
$project2->consumed = 0;
$project2->left = 0;
$project2->hasProduct = 1;
$projectList[] = $project2;
$emptyProjectList = array();
$singleProject = array();
$project = new stdClass();
$project->id = 1;
$project->name = '单个测试项目';
$project->PM = 'admin';
$project->status = 'doing';
$project->budget = '150000';
$project->budgetUnit = 'CNY';
$project->estimate = 0;
$project->consumed = 0;
$project->left = 0;
$project->hasProduct = 1;
$singleProject[] = $project;
r($productTest->processProjectListDataTest($projectList)) && p('0:name') && e('测试项目1'); // 步骤1:正常项目列表数据处理
r($productTest->processProjectListDataTest($emptyProjectList)) && p() && e('0'); // 步骤2:空项目列表数据处理
r($productTest->processProjectListDataTest($singleProject)) && p('0:name') && e('单个测试项目'); // 步骤3:单个项目数据处理验证
r($productTest->processProjectListDataTest($projectList)) && p() && e('2'); // 步骤4:多个项目数据批量处理
r($productTest->processProjectListDataTest($projectList)) && p('0:from') && e('project'); // 步骤5:项目数据字段完整性验证