Files
EasySoft-ZenTaoPMS/module/caselib/test/caselib.class.php
T
2023-09-26 07:17:10 +00:00

231 lines
5.9 KiB
PHP

<?php
class caselibTest
{
public function __construct()
{
global $tester;
$this->objectModel = $tester->loadModel('caselib');
}
/**
* 测试通过 id 获取用例库信息。
* Get by ID test.
*
* @param int $libID
* @param bool $setImgSize
* @access public
* @return array|object|false
*/
public function getByIdTest(int $libID, bool $setImgSize = false): array|object|false
{
$object = $this->objectModel->getById($libID, $setImgSize);
if(dao::isError()) return dao::getError();
return $object;
}
/**
* 测试更新用例库。
* Update case lib test.
*
* @param object $lib
* @access public
* @return void
*/
public function updateTest(object $lib)
{
$this->objectModel->update($lib);
if(dao::isError()) return dao::getError();
return $this->objectModel->getByID($lib->id);
}
/**
* 测试删除用例库。
* Delete test.
*
* @param mixed $libID
* @param string $table
* @access public
* @return array|object
*/
public function deleteTest(int $libID, string $table = ''): array|object
{
$objects = $this->objectModel->delete($libID, $table);
if(dao::isError()) return dao::getError();
return $this->objectModel->getByID($libID);
}
/**
* 测试获取用例库键对。
* Get libraries test.
*
* @access public
* @return array
*/
public function getLibrariesTest(): array
{
$objects = $this->objectModel->getLibraries();
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* 测试获取用例库列表。
* Get list test.
*
* @param string $orderBy
* @param mixed $pager
* @access public
* @return void
*/
public function getListTest($orderBy = 'id_desc', $pager = null)
{
$objects = $this->objectModel->getList('all', $orderBy, $pager);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* 创建用例库单元测试方法。
* Create case lib test function.
*
* @param array $params
* @access public
* @return array|object
*/
public function createTest(array $params = array()): array|object
{
$lib = new stdclass();
foreach($params as $key => $value) $lib->{$key} = $value;
$libID = $this->objectModel->create($lib);
if(dao::isError()) return dao::getError();
return $this->objectModel->getById($libID);
}
/**
* 测试获取用例库的用例。
* Get libcases test.
*
* @param int $libID
* @param string $browseType
* @param int $moduleID
* @param string $sort
* @access public
* @return array|string
*/
public function getLibCasesTest(int $libID, string $browseType, int $moduleID = 0, string $sort = 'id_desc'): array|string
{
$objects = $this->objectModel->getLibCases($libID, $browseType, 0, $moduleID, $sort);
if(dao::isError()) return dao::getError();
return implode(',', array_keys($objects));
}
/**
* Create from import test.
*
* @param mixed $libID
* @access public
* @return void
*/
public function createFromImportTest($libID)
{
$objects = $this->objectModel->createFromImport($libID);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* 测试获取用例库 1.5 级下拉的链接。
* Test get lib link.
*
* @param string $module
* @param string $method
* @access public
* @return array
*/
public function getLibLinkTest(string $module, string $method): array
{
$link = $this->objectModel->getLibLink($module, $method);
if(dao::isError()) return dao::getError();
$isCaselibBrowse = preg_match('/caselib.*browse/', $link) ? 1 : 0;
$isItself = preg_match("/{$module}.*{$method}/", $link) ? 1 : 0;
return array('isCaselibBrowse' => $isCaselibBrowse, 'isItself' => $isItself);
}
/**
* 测试初始化导入的用例
* Test init imported case.
*
* @param object $data
* @access public
* @return array|bool
*/
public function initImportedCaseTest(object $data): bool|array
{
$cases = $this->objectModel->initImportedCase($data);
if(dao::isError()) return dao::getError();
return $cases;
}
/**
* 测试插入一条导入的用例。
* Test insert a imported case.
*
* @param int $key
* @param object $caseData
* @param object $data
* @param bool $forceNotReview
* @access public
* @return array|object|false
*/
public function insertImportedCaseTest(int $key, object $caseData, object $data, bool $forceNotReview): array|object|false
{
$caseID = $this->objectModel->insertImportedCase($key, $caseData, $data, $forceNotReview);
if(dao::isError()) return dao::getError();
global $tester;
return $tester->loadModel('testcase')->getByID($caseID);
}
/**
* 测试导入的用例覆盖已存在的用例。
* Test update a imported case.
*
* @param int $key
* @param object $caseData
* @param object $data
* @param bool $forceNotReview
* @access public
* @return array|object|false
*/
public function updateImportedCaseTest(int $key, object $caseData, object $data, bool $forceNotReview): array|object|false
{
$caseID = $data->id[$key];
$this->objectModel->updateImportedCase($key, $caseData, $data, $forceNotReview);
if(dao::isError()) return dao::getError();
global $tester;
return $tester->loadModel('testcase')->getByID($caseID);
}
}