+ [misc] Add unit tests for biModel::preparePivotObject() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -428,4 +428,19 @@ class biTest
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test preparePivotObject method.
|
||||
*
|
||||
* @param mixed $pivot
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
public function preparePivotObjectTest($pivot)
|
||||
{
|
||||
$result = $this->objectModel->preparePivotObject($pivot);
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
Executable
+78
@@ -0,0 +1,78 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 biModel::preparePivotObject();
|
||||
timeout=0
|
||||
cid=1
|
||||
|
||||
- 检查返回数组长度 @3
|
||||
- 检查pivotSpec的name字段 @{"zh-cn":"完整用户","en":"Full User"}
|
||||
|
||||
- 检查转换后pivot对象的id @3
|
||||
- 检查默认settings为null @~~
|
||||
- 检查drills数组长度 @2
|
||||
|
||||
*/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/bi.unittest.class.php';
|
||||
|
||||
$bi = new biTest();
|
||||
|
||||
// 步骤1:基础pivot对象处理
|
||||
$basicPivot = array(
|
||||
'id' => 1,
|
||||
'version' => '1.0',
|
||||
'sql' => 'SELECT * FROM zt_user',
|
||||
'name' => array('zh-cn' => '用户统计', 'en' => 'User Statistics')
|
||||
);
|
||||
r(count($bi->preparePivotObjectTest($basicPivot))) && p('') && e('3'); //检查返回数组长度
|
||||
|
||||
// 步骤2:包含所有可选字段的pivot对象处理
|
||||
$fullPivot = array(
|
||||
'id' => 2,
|
||||
'version' => '2.0',
|
||||
'sql' => 'SELECT account, realname FROM zt_user',
|
||||
'name' => array('zh-cn' => '完整用户', 'en' => 'Full User'),
|
||||
'desc' => array('zh-cn' => '描述', 'en' => 'Description'),
|
||||
'settings' => array('pageSize' => 20),
|
||||
'filters' => array('status' => 'active'),
|
||||
'fields' => array('account', 'realname'),
|
||||
'langs' => array('zh-cn' => '中文'),
|
||||
'vars' => array('limit' => 100),
|
||||
'driver' => 'mysql'
|
||||
);
|
||||
r($bi->preparePivotObjectTest($fullPivot)[1]->name) && p('') && e('{"zh-cn":"完整用户","en":"Full User"}'); //检查pivotSpec的name字段
|
||||
|
||||
// 步骤3:数组输入转换为对象
|
||||
$arrayPivot = array(
|
||||
'id' => 3,
|
||||
'version' => '1.5',
|
||||
'sql' => 'SELECT id FROM zt_task',
|
||||
'name' => array('zh-cn' => '任务列表')
|
||||
);
|
||||
r($bi->preparePivotObjectTest($arrayPivot)[0]->id) && p('') && e('3'); //检查转换后pivot对象的id
|
||||
|
||||
// 步骤4:不包含可选字段的最小pivot对象
|
||||
$minimalPivot = array(
|
||||
'id' => 4,
|
||||
'version' => '1.0',
|
||||
'sql' => 'SELECT * FROM zt_bug',
|
||||
'name' => array('zh-cn' => '缺陷统计')
|
||||
);
|
||||
r($bi->preparePivotObjectTest($minimalPivot)[1]->settings) && p('') && e('~~'); //检查默认settings为null
|
||||
|
||||
// 步骤5:包含drills字段的pivot对象处理
|
||||
$pivotWithDrills = array(
|
||||
'id' => 5,
|
||||
'version' => '1.0',
|
||||
'sql' => 'SELECT * FROM zt_story',
|
||||
'name' => array('zh-cn' => '需求统计'),
|
||||
'drills' => array(
|
||||
array('field' => 'status', 'type' => 'group'),
|
||||
array('field' => 'stage', 'type' => 'filter')
|
||||
)
|
||||
);
|
||||
r(count($bi->preparePivotObjectTest($pivotWithDrills)[2])) && p('') && e('2'); //检查drills数组长度
|
||||
Reference in New Issue
Block a user