285 lines
7.3 KiB
PHP
285 lines
7.3 KiB
PHP
<?php
|
|
declare(strict_types = 1);
|
|
|
|
require_once dirname(__FILE__, 5) . '/test/lib/test.class.php';
|
|
|
|
class testsuiteModelTest extends baseTest
|
|
{
|
|
protected $moduleName = 'testsuite';
|
|
protected $className = 'model';
|
|
|
|
public function selectTest($products, $productID, $currentModule, $currentMethod, $extra = '')
|
|
{
|
|
$objects = $this->instance->select($products, $productID, $currentModule, $currentMethod, $extra);
|
|
|
|
if(dao::isError()) return dao::getError();
|
|
|
|
return $objects;
|
|
}
|
|
|
|
/**
|
|
* 测试创建一个测试套件。
|
|
* Test create a test suite.
|
|
*
|
|
* @param int $productID
|
|
* @param string $name
|
|
* @param string $type
|
|
* @access public
|
|
* @return array|int
|
|
*/
|
|
public function createTest(int $productID, string $name, string $type): array|int
|
|
{
|
|
$suite = new stdclass();
|
|
$suite->name = $name;
|
|
$suite->desc = '';
|
|
$suite->type = $type;
|
|
|
|
$suiteID = $this->instance->create($suite);
|
|
|
|
if(dao::isError()) return dao::getError();
|
|
|
|
return $suiteID;
|
|
}
|
|
|
|
/**
|
|
* Test get test suites of a product.
|
|
*
|
|
* @param int $productID
|
|
* @param string $orderBy
|
|
* @param object $pager
|
|
* @access public
|
|
* @return array
|
|
*/
|
|
public function getSuitesTest($productID, $orderBy = 'id_desc', $pager = null)
|
|
{
|
|
$objects = $this->instance->getSuites($productID, $orderBy, $pager);
|
|
|
|
if(dao::isError()) return dao::getError();
|
|
|
|
return $objects;
|
|
}
|
|
|
|
/**
|
|
* Test get test suites pairs of a product.
|
|
*
|
|
* @param int $productID
|
|
* @param string $orderBy
|
|
* @param object $paper
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
public function getSuitePairsTest($productID, $orderBy = 'id_desc', $paper = null)
|
|
{
|
|
$relation = $this->instance->getSuitePairs($productID, $orderBy, $paper);
|
|
|
|
if(dao::isError()) return dao::getError();
|
|
|
|
return $relation;
|
|
}
|
|
|
|
/**
|
|
* Test get unit suite.
|
|
*
|
|
* @param int $productID
|
|
* @param string $orderBy
|
|
* @access public
|
|
* @return array
|
|
*/
|
|
public function getUnitSuitesTest($productID, $orderBy = 'id_desc')
|
|
{
|
|
$objects = $this->instance->getUnitSuites($productID, $orderBy);
|
|
|
|
if(dao::isError()) return dao::getError();
|
|
|
|
return $objects;
|
|
}
|
|
|
|
/**
|
|
* Test get test suite info by id.
|
|
*
|
|
* @param int $suiteID
|
|
* @param bool $setImgSize
|
|
* @access public
|
|
* @return object
|
|
*/
|
|
public function getByIdTest($suiteID, $setImgSize = false)
|
|
{
|
|
$objects = $this->instance->getById($suiteID, $setImgSize);
|
|
|
|
if(dao::isError()) return dao::getError();
|
|
if($setImgSize == true) $objects->setImgSizeResult = strpos($objects->desc, 'setImageSize') !== false;
|
|
|
|
return $objects;
|
|
}
|
|
|
|
/**
|
|
* 测试更新一个套件。
|
|
* Test update a test suite.
|
|
*
|
|
* @param int $suiteID
|
|
* @param string $name
|
|
* @param string $type
|
|
* @param string $desc
|
|
* @param string $uid
|
|
* @access public
|
|
* @return bool|array
|
|
*/
|
|
public function updateTest(int $suiteID, string $name, string $type, string $desc, string $uid): bool|array
|
|
{
|
|
$suite = new stdclass();
|
|
$suite->id = $suiteID;
|
|
$suite->name = $name;
|
|
$suite->desc = $desc;
|
|
$suite->type = $type;
|
|
|
|
if(!empty($uid))
|
|
{
|
|
global $tester;
|
|
$tester->session->set('album', array('used' => array($uid => array(1))));
|
|
}
|
|
|
|
$objects = $this->instance->update($suite, $uid);
|
|
|
|
if(dao::isError()) return dao::getError();
|
|
|
|
foreach($objects as &$object)
|
|
{
|
|
if($object['field'] == 'desc') $object['result'] = $object['new'] == $desc;
|
|
}
|
|
|
|
return $objects;
|
|
}
|
|
|
|
/**
|
|
* Test link cases.
|
|
*
|
|
* @param int $suiteID
|
|
* @param array $cases
|
|
* @param array $versions
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
public function linkCaseTest($suiteID, $cases, $versions)
|
|
{
|
|
$this->instance->linkCase($suiteID, $cases, $versions);
|
|
|
|
if(dao::isError()) return dao::getError();
|
|
|
|
global $tester;
|
|
$objects = $tester->dao->select('*')->from(TABLE_SUITECASE)->where('suite')->eq($suiteID)->andWhere('`case`')->in($cases)->fetchAll();
|
|
|
|
return $objects;
|
|
}
|
|
|
|
/**
|
|
* Test get linked cases for suite.
|
|
*
|
|
* @param int $suiteID
|
|
* @param string $orderBy
|
|
* @param object $pager
|
|
* @param bool $append
|
|
* @access public
|
|
* @return array
|
|
*/
|
|
public function getLinkedCasesTest($suiteID, $orderBy = 'id_desc', $pager = null, $append = true)
|
|
{
|
|
$objects = $this->instance->getLinkedCases($suiteID, $orderBy, $pager, $append);
|
|
|
|
if(dao::isError()) return dao::getError();
|
|
|
|
if(!$append)
|
|
{
|
|
foreach($objects as $object) $object->results = 'a';
|
|
}
|
|
|
|
return $objects;
|
|
}
|
|
|
|
/**
|
|
* Test get linked cases pairs for suite.
|
|
*
|
|
* @param int $suiteID
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
public function getLinkedCasePairsTest($suiteID)
|
|
{
|
|
global $tester;
|
|
$tester->session->set('project', 1);
|
|
$relation = $this->instance->getLinkedCasePairs($suiteID);
|
|
|
|
if(dao::isError()) return dao::getError();
|
|
|
|
return $relation;
|
|
}
|
|
|
|
/**
|
|
* Test get unlinked cases for suite.
|
|
*
|
|
* @param int $suiteID
|
|
* @param string $browseType
|
|
* @param int $param
|
|
* @param object $pager
|
|
* @access public
|
|
* @return array
|
|
*/
|
|
public function getUnlinkedCasesTest($suiteID, $browseType = 'all', $param = 0, $pager = null)
|
|
{
|
|
global $tester;
|
|
$tester->session->set('testsuiteQuery', null);
|
|
|
|
$suite = $this->instance->getById($suiteID);
|
|
$objects = $this->instance->getUnlinkedCases($suite, $browseType, $param, $pager);
|
|
|
|
if(dao::isError()) return dao::getError();
|
|
|
|
return $objects;
|
|
}
|
|
|
|
/**
|
|
* 测试判断操作是否可以点击。
|
|
* Test judge an action is clickable or not.
|
|
*
|
|
* @param object $report
|
|
* @param string $action
|
|
* @access public
|
|
* @return int|array
|
|
*/
|
|
public function isClickableTest(object $report, string $action): int|array
|
|
{
|
|
$isClickable = $this->instance->isClickable($report, $action);
|
|
if(dao::isError()) return dao::getError();
|
|
return $isClickable ? 1 : 0;
|
|
}
|
|
|
|
/**
|
|
* 测试根据套件id删除关联的用例。
|
|
* Test delete case by suiteID.
|
|
*
|
|
* @param int $cases
|
|
* @param int $suiteID
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
public function deleteCaseBySuiteIDTest($cases, $suiteID)
|
|
{
|
|
return $this->instance->deleteCaseBySuiteID($cases, $suiteID);
|
|
}
|
|
|
|
/**
|
|
* 测试获取产品下用例关联的需求
|
|
* Test get case linked stories by productID.
|
|
*
|
|
* @param int $productID
|
|
* @access public
|
|
* @return array
|
|
*/
|
|
public function getCaseLinkedStoriesTest(int $productID): array
|
|
{
|
|
$result = $this->instance->getCaseLinkedStories($productID);
|
|
if(dao::isError()) return dao::getError();
|
|
|
|
return $result;
|
|
}
|
|
}
|