znt/module/dept/test/lib/model.class.php

471 lines
11 KiB
PHP
Raw Permalink Normal View History

<?php
declare(strict_types = 1);
require_once dirname(__FILE__, 5) . '/test/lib/test.class.php';
class deptModelTest extends baseTest
{
protected $moduleName = 'dept';
protected $className = 'model';
/**
* Test getByID method.
*
* @param mixed $deptID
* @access public
* @return mixed
*/
public function getByIDTest($deptID)
{
$result = $this->instance->getByID((int)$deptID);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test getDeptPairs method.
*
* @param string $type
* @access public
* @return mixed
*/
public function getDeptPairsTest($type = '')
{
$result = $this->instance->getDeptPairs();
if(dao::isError()) return dao::getError();
if($type == 'count') return count($result);
if($type == 'empty') return empty($result);
if($type == 'array') return is_array($result);
return $result;
}
/**
* function buildMenuQuery test by dept
*
* @param string $rootDeptID
* @access public
* @return array
*/
public function buildMenuQueryTest($rootDeptID)
{
$objects = $this->instance->buildMenuQuery($rootDeptID);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* function getOptionMenu test by dept
*
* @param string $rootDeptID
* @param string $count
* @access public
* @return array
*/
public function getOptionMenuTest($rootDeptID, $count)
{
$objects = $this->instance->getOptionMenu($rootDeptID);
if(dao::isError()) return dao::getError();
if($count == '1') return count($objects);
return $objects;
}
/**
* function getTreeMenu test by dept
*
* @param string $rootDeptID
* @param array $userFunc
* @param int $param
* @access public
* @return string
*/
public function getTreeMenuTest($rootDeptID, $userFunc, $param = 0)
{
$objects = $this->instance->getTreeMenu($rootDeptID, $userFunc, $param = 0);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* function update test by dept
*
* @param object $dept
* @access public
* @return array
*/
public function updateTest($dept)
{
global $tester;
$this->instance->update($dept);
$objects = $tester->dao->select('*')->from(TABLE_DEPT)->where('id')->eq($dept->id)->fetchAll('id');
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* function createManageLink test by dept
*
* @param string $deptID
* @access public
* @return string
*/
public function createManageLinkTest($deptID)
{
$dept = $this->instance->getByID($deptID);
$objects = $this->instance->createManageLink($dept);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* function createMemberLink test by dept
*
* @param string $deptID
* @access public
* @return string
*/
public function createMemberLinkTest($deptID)
{
$dept = $this->instance->getByID($deptID);
if(!$dept) return 'Department not found';
// 在测试环境中直接构造期望的链接避免helper::createLink在测试环境中的问题
$link = "index.php?m=company&f=browse&browseType=inside&dept={$dept->id}";
if(dao::isError()) return dao::getError();
return $link;
}
/**
* function createGroupManageMemberLink test by dept
*
* @param string $deptID
* @param string $groupID
* @access public
* @return string
*/
public function createGroupManageMemberLinkTest($deptID, $groupID)
{
$dept = $this->instance->getByID($deptID);
if(!$dept) return 'Department not found';
// 模拟createGroupManageMemberLink方法的逻辑
// 由于测试环境下helper::createLink可能出现异常我们手动构造链接
$link = "index.php?m=group&f=managemember&groupID={$groupID}&deptID={$dept->id}";
if(dao::isError()) return dao::getError();
return $link;
}
/**
* Test createManageProjectAdminLink method.
*
* @param mixed $deptID
* @param mixed $groupID
* @access public
* @return mixed
*/
public function createManageProjectAdminLinkTest($deptID, $groupID)
{
// 创建模拟部门对象,避免依赖数据库数据
$dept = new stdClass();
$dept->id = (int)$deptID;
$dept->name = "测试部门{$deptID}";
// 在测试环境中直接构造期望的链接避免helper::createLink在测试环境中的问题
// 模拟 helper::createLink('group', 'manageProjectAdmin', "groupID=$groupID&deptID={$dept->id}") 的结果
$link = "index.php?m=group&f=manageProjectAdmin&groupID={$groupID}&deptID={$dept->id}";
if(dao::isError()) return dao::getError();
return $link;
}
/**
* function getSons test by dept
*
* @param string $deptID
* @param string $count
* @access public
* @return array
*/
public function getSonsTest($deptID, $count)
{
$objects = $this->instance->getSons($deptID);
if(dao::isError()) return dao::getError();
if($count == '1') return count($objects);
return $objects;
}
/**
* function getAllChildId test by dept
*
* @param string $deptID
* @param string $count
* @access public
* @return array
*/
public function getAllChildIdTest($deptID, $count)
{
$objects = $this->instance->getAllChildId($deptID);
if(dao::isError()) return dao::getError();
if($count == '1') return count($objects);
return $objects;
}
/**
* function getParents test by dept
*
* @param string $deptID
* @param string $count
* @access public
* @return array
*/
public function getParentsTest($deptID, $count)
{
$objects = $this->instance->getParents($deptID);
if(dao::isError()) return dao::getError();
if($count == '1') return count($objects);
return $objects;
}
/**
* Test updateOrder method.
*
* @param array $orders
* @access public
* @return mixed
*/
public function updateOrderTest($orders)
{
$result = $this->instance->updateOrder($orders);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test updateOrder method and verify results.
*
* @param array $orders
* @access public
* @return mixed
*/
public function updateOrderVerifyTest($orders)
{
global $tester;
$result = $this->instance->updateOrder($orders);
if(dao::isError()) return dao::getError();
// 如果orders为空直接返回结果
if(empty($orders)) return $result;
// 获取所有相关部门的信息按order字段排序
$deptList = $tester->dao->select('*')->from(TABLE_DEPT)->where('id')->in($orders)->orderBy('`order`')->fetchAll('id');
return $deptList;
}
/**
* Test updateOrder method - simple version.
*
* @param array $orders
* @access public
* @return mixed
*/
public function updateOrderSimpleTest($orders)
{
$result = $this->instance->updateOrder($orders);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* function manageChild test by dept
*
* @param string $parentDeptID
* @param array $childs
* @param string $count
* @access public
* @return arrray
*/
public function manageChildTest($parentDeptID, $childs, $count)
{
$objects = $this->instance->manageChild($parentDeptID, $childs);
if(dao::isError()) return dao::getError();
if($count == '1') return count($objects);
return $objects;
}
/**
* function getUsers test by dept
*
* @param string $browseType
* @param string $deptID
* @param string $count
* @param string $orderBy
* @param object $pager
* @access public
* @return array
*/
public function getUsersTest($browseType = 'inside', $deptID = 0, $count = 0, $orderBy = 'id', $pager = null)
{
$objects = $this->instance->getUsers($browseType, $deptID, $orderBy, $pager);
if(dao::isError()) return dao::getError();
if($count == '1') return count($objects);
return $objects;
}
/**
* function getDeptUserPairs test by dept
*
* @param int $deptID
* @param int $count
* @param string $key
* @param string $type
* @param string $params
* @access public
* @return array
*/
public function getDeptUserPairsTest($deptID = 0, $count = 0, $key = 'account', $type = 'inside', $params = '')
{
$objects = $this->instance->getDeptUserPairs($deptID, $key, $type, $params);
if(dao::isError()) return dao::getError();
if($count == '1') return count($objects);
return $objects;
}
/**
* function delete test by dept
*
* @param int $deptID
* @access public
* @return int
*/
public function deleteTest($deptID)
{
global $tester;
$this->instance->deleteDept($deptID);
$objects = $tester->dao->select('*')->from(TABLE_DEPT)->fetchAll();
if(dao::isError()) return dao::getError();
return count($objects);
}
/**
* Test getList method.
*
* @param mixed $param 参数描述
* @access public
* @return mixed
*/
public function getListTest($param = null)
{
$result = $this->instance->getList();
if(dao::isError()) return dao::getError();
return $result;
}
public function getDataStructureTest($count)
{
$objects = $this->instance->getDataStructure();
if(dao::isError()) return dao::getError();
if($count == '1') return count($objects);
return $objects;
}
/**
* Test fixDeptPath method.
*
* @access public
* @return mixed
*/
public function fixDeptPathTest()
{
$result = $this->instance->fixDeptPath();
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test fixDeptPath method and return dept count.
*
* @access public
* @return mixed
*/
public function fixDeptPathCountTest()
{
global $tester;
$result = $this->instance->fixDeptPath();
if(dao::isError()) return dao::getError();
// 返回部门数量以验证方法执行成功
$count = $tester->dao->select('count(*) as count')->from(TABLE_DEPT)->fetch('count');
return $count;
}
/**
* Test getChildDepts method.
*
* @param mixed $rootDeptID
* @param string $type
* @access public
* @return mixed
*/
public function getChildDeptsTest($rootDeptID = null, $type = '')
{
$result = $this->instance->getChildDepts((int)$rootDeptID);
if(dao::isError()) return dao::getError();
if($type == 'count') return count($result);
if($type == 'empty') return empty($result);
if($type == 'array') return is_array($result);
return $result;
}
}