* Refactor personnelModel::getWhitelistAccount, and modify its unit test.

This commit is contained in:
liumengyi
2023-12-06 13:25:58 +08:00
parent 01e75fe5f7
commit 0e423135b4
3 changed files with 30 additions and 35 deletions
+3 -2
View File
@@ -525,6 +525,7 @@ class personnelModel extends model
}
/**
* 测试获取对象白名单人员账号。
* Get whitelisted accounts.
*
* @param int $objectID
@@ -532,9 +533,9 @@ class personnelModel extends model
* @access public
* @return array
*/
public function getWhitelistAccount(int $objectID = 0, string $objectType = '')
public function getWhitelistAccount(int $objectID = 0, string $objectType = ''): array
{
return $this->dao->select('account')->from(TABLE_ACL)->where('objectID')->eq($objectID)->andWhere('objectType')->eq($objectType)->fetchPairs('account', 'account');
return $this->dao->select('account,account')->from(TABLE_ACL)->where('objectID')->eq($objectID)->andWhere('objectType')->eq($objectType)->fetchPairs();
}
/**
@@ -1,9 +1,10 @@
#!/usr/bin/env php
<?php
declare(strict_types=1);
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/personnel.class.php';
zdTable('acl')->gen(100);
zdTable('acl')->gen(50);
/**
@@ -11,34 +12,26 @@ title=测试 personnelModel->getWhitelistAccount();
cid=1
pid=1
这是一个正常测试,统计关联白名单人员数量 >> 3
取出其中一个数据admin >> admin
取出另一个数据dev10 >> dev10
取出objectid2的白名单数量 >> 0
当objectID不存在时,统计匹配数量 >> 0
当传入参数为空时,统计匹配人员数量 >> 0
*/
$personnel = new personnelTest('admin');
$objectID = array();
$objectID[0] = 1;
$objectID[1] = 2;
$objectID[2] = 1111;
$objectIdList = array(1, 2, 3, 4);
$objectTypeList = array('program', 'project', 'product', 'sprint');
$objectType = array();
$objectType[0] = 'project';
$objectType[1] = 'program';
$objectType[2] = 'product';
$objectType[3] = 'sprint';
$result1 = $personnel->getWhitelistAccountTest($objectID[0], $objectType[1]);
$result2 = $personnel->getWhitelistAccountTest($objectID[1], $objectType[2]);
$result3 = $personnel->getWhitelistAccountTest($objectID[2], $objectType[3]);
r(count($result1)) && p() && e('5'); //这是一个正常测试,统计关联白名单人员数量
r($result1) && p('admin') && e('admin'); //取出其中一个数据admin
r($result1) && p('user20') && e('user20'); //取出另一个数据dev10
r(count($result2)) && p() && e('5'); //取出objectid2的白名单数量
r(count($result3)) && p() && e('0'); //当objectID不存在时,统计匹配数量
r($personnel->getWhitelistAccountTest($objectIdList[0], $objectTypeList[0])) && p() && e('admin,user20,user40'); // 测试获取 项目集 1 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[0], $objectTypeList[1])) && p() && e('user10,user30'); // 测试获取 项目 1 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[0], $objectTypeList[2])) && p() && e('0'); // 测试获取 产品 1 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[0], $objectTypeList[3])) && p() && e('0'); // 测试获取 执行 1 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[1], $objectTypeList[0])) && p() && e('0'); // 测试获取 项目集 2 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[1], $objectTypeList[1])) && p() && e('0'); // 测试获取 项目 2 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[1], $objectTypeList[2])) && p() && e('user1,user21,user41'); // 测试获取 产品 2 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[1], $objectTypeList[3])) && p() && e('user11,user31'); // 测试获取 执行 2 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[2], $objectTypeList[0])) && p() && e('user12,user32'); // 测试获取 项目集 3 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[2], $objectTypeList[1])) && p() && e('user2,user22,user42'); // 测试获取 项目 3 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[2], $objectTypeList[2])) && p() && e('0'); // 测试获取 产品 3 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[2], $objectTypeList[3])) && p() && e('0'); // 测试获取 执行 3 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[3], $objectTypeList[0])) && p() && e('0'); // 测试获取 项目集 4 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[3], $objectTypeList[1])) && p() && e('0'); // 测试获取 项目 4 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[3], $objectTypeList[2])) && p() && e('user13,user33'); // 测试获取 产品 4 的白名单人员
r($personnel->getWhitelistAccountTest($objectIdList[3], $objectTypeList[3])) && p() && e('user3,user23,user43'); // 测试获取 执行 4 的白名单人员
+7 -6
View File
@@ -265,20 +265,21 @@ class personnelTest
}
/**
* Get whitelist account test
* 测试获取对象的白名单账号。
* Test get whitelist account.
*
* @param int $objectID
* @param string $objectType
* @param int $objectID
* @param string $objectType
* @access public
* @return array
* @return array|array
*/
public function getWhitelistAccountTest($objectID = 0, $objectType = '')
public function getWhitelistAccountTest(int $objectID = 0, string $objectType = ''): string|array
{
$objects = $this->objectModel->getWhitelistAccount($objectID, $objectType);
if(dao::isError()) return dao::getError();
return $objects;
return implode(',', $objects);
}
public function updateWhitelistTest($users = array(), $objectType = '', $objectID = 0, $type = 'whitelist', $source = 'add', $updateType = 'replace')