* [misc] Enhance unit tests for kanbanModel::getGroupList() method

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-25 09:16:18 +08:00
co-authored by Claude
parent e0cc9fae9e
commit 5f4e1b9d2a
2 changed files with 110 additions and 16 deletions
@@ -1445,6 +1445,20 @@ class kanbanTest
return $kanban;
}
/**
* Test get group list objects by region id.
*
* @param int $region
* @access public
* @return array
*/
public function getGroupListObjectsTest($region)
{
$objects = $this->objectModel->getGroupList($region);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Test get column by id.
*
@@ -2552,7 +2566,7 @@ class kanbanTest
public function moveCardByModalTest($cardID)
{
global $tester;
// 获取卡片信息
$card = $this->objectModel->getCardByID($cardID);
if(!$card) return array('error' => 'Card not found');
@@ -2560,7 +2574,7 @@ class kanbanTest
// 获取看板区域信息用于移动
$regions = $this->objectModel->getRegionPairs($card->kanban);
if(empty($regions)) return array('error' => 'No regions found');
// 返回区域和卡片信息
return array(
'regions' => count($regions),
@@ -2569,4 +2583,58 @@ class kanbanTest
'kanban' => $card->kanban
);
}
/**
* Test addSpaceMembers method.
*
* @param int $spaceID
* @param string $type
* @param array $kanbanMembers
* @access public
* @return mixed
*/
public function addSpaceMembersTest($spaceID, $type, $kanbanMembers = array())
{
global $tester;
// 获取操作前的空间信息
$spaceBefore = $this->objectModel->getSpaceById($spaceID);
// 执行添加成员操作
$this->objectModel->addSpaceMembers($spaceID, $type, $kanbanMembers);
if(dao::isError()) return dao::getError();
// 获取操作后的空间信息
$spaceAfter = $this->objectModel->getSpaceById($spaceID);
// 返回结果以便验证
return array(
'spaceBefore' => $spaceBefore,
'spaceAfter' => $spaceAfter,
'fieldValue' => $spaceAfter ? $spaceAfter->{$type} : null
);
}
/**
* Test checkChildColumn method.
*
* @param object $column
* @param object $childColumn
* @param int $sumChildLimit
* @access public
* @return bool
*/
public function checkChildColumnTest($column, $childColumn, $sumChildLimit)
{
// 清理之前的错误状态
dao::$errors = array();
$result = $this->objectModel->checkChildColumn($column, $childColumn, $sumChildLimit);
// 如果有错误,返回false,否则返回原始结果
if(dao::isError()) return false;
return $result;
}
}
+40 -14
View File
@@ -1,29 +1,55 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/kanban.unittest.class.php';
su('admin');
zenData('kanbangroup')->gen(10);
/**
title=测试 kanbanModel->getGroupList();
title=测试 kanbanModel::getGroupList();
timeout=0
cid=1
cid=0
- 获取区域1的看板 @,1
- 执行kanban模块的getGroupListTest方法,参数是1 @,1,2,3,1,2
- 获取区域1的看板 @,2
- 执行kanban模块的getGroupListTest方法,参数是2 @,3,1,2
- 获取不存在的看板 @0
- 执行kanban模块的getGroupListTest方法,参数是3 @,3,1
- 执行kanban模块的getGroupListTest方法,参数是100 @0
- 执行kanban模块的getGroupListObjectsTest方法,参数是1
- 第1条的id属性 @1
- 第1条的kanban属性 @1
- 第1条的region属性 @1
- 第1条的order属性 @1
*/
$regionIDList = array('1', '2', '10001');
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/kanban.unittest.class.php';
// 准备测试数据
$table = zenData('kanbangroup');
$table->id->range('1-15');
$table->kanban->range('1-3');
$table->region->range('1{5},2{3},3{2},4{1},5{4}');
$table->order->range('1-5,1-3,1-2,1,1-4');
$table->gen(15);
// 用户登录
su('admin');
// 创建测试实例
$kanban = new kanbanTest();
r($kanban->getGroupListTest($regionIDList[0])) && p() && e(',1'); // 获取区域1的看板
r($kanban->getGroupListTest($regionIDList[1])) && p() && e(',2'); // 获取区域1的看板
r($kanban->getGroupListTest($regionIDList[2])) && p() && e('0'); // 获取不存在的看板
// 测试步骤1:正常获取区域1的分组列表(根据实际数据分布)
r($kanban->getGroupListTest(1)) && p() && e(',1,2,3,1,2');
// 测试步骤2:正常获取区域2的分组列表(根据实际数据分布)
r($kanban->getGroupListTest(2)) && p() && e(',3,1,2');
// 测试步骤3:获取区域3的分组列表(根据实际数据分布)
r($kanban->getGroupListTest(3)) && p() && e(',3,1');
// 测试步骤4:获取不存在区域的分组列表(实际输出为0)
r($kanban->getGroupListTest(100)) && p() && e('0');
// 测试步骤5:验证返回数据结构完整性(检查第一个分组的字段)
r($kanban->getGroupListObjectsTest(1)) && p('1:id,kanban,region,order') && e('1,1,1,1');