Files
EasySoft-ZenTaoPMS/test/class/execution.class.php
2022-03-14 16:45:33 +08:00

1066 lines
30 KiB
PHP

<?php
class executionTest
{
public function __construct()
{
global $tester;
$this->objectModel = $tester->loadModel('execution');
}
public function getHour()
{
return date('Y-m-d');
}
public function getReduceHour($dayNum)
{
return date('Y-m-d',strtotime("-$dayNum day"));
}
public function createObject($param = array(), $project, $dayNum, $days)
{
$products = array('');
$plans = array('');
$whitelist = array('');
$beginData = date('Y-m-d');
$endData = date('Y-m-d',strtotime("+$dayNum day"));
$delta = intval($dayNum) + 1;
$createFields = array('project' => $project, 'name' => '', 'code' => '', 'begin' => $beginData, 'end' => $endData,
'lifetime' => 'short', 'status' => 'wait', 'products' => $products, 'delta' => $delta, 'days' => $days,
'plans' => $plans, 'team' => '', 'teams' => '0', 'PO' => '', 'QD' => '', 'PM' => '', 'RD' => '', 'whitelist' => '',
'desc' => '', 'acl' => 'private');
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$objectID = $this->objectModel->create();
unset($_POST);
if(dao::isError())
{
return dao::getError();
}
else
{
$object = $this->objectModel->getByID($objectID);
return $object;
}
}
public function updateObject($objectID, $param = array())
{
global $tester;
$products = array('1','81','91');
$object = $tester->dbh->query("SELECT `project`,`name`,`code`,`begin`,`end`,`days`,`lifetime`,`team`,`status`,`PO`,`QD`,`PM`,
`RD`,`desc`,`acl` FROM zt_project WHERE id = $objectID ")->fetch();
$object->products = $products;
foreach($object as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$change = $this->objectModel->update($objectID);
if($change == array()) $change = '没有数据更新';
unset($_POST);
if(dao::isError())
{
return dao::getError();
}
else
{
return $change;
}
}
public function batchUpdateObject($param = array(), $executionID = '')
{
$executionIDList = array($executionID => $executionID);
$codes = array($executionID => '');
$name = array($executionID => '');
$pms = array($executionID => '');
$pos = array($executionID => '');
$qds = array($executionID => '');
$rds = array($executionID => '');
$lifetimes = array($executionID => '');
$statuses = array($executionID => '');
$begins = array($executionID => date('Y-m-d'));
$ends = array($executionID => date('Y-m-d',strtotime("+5 day")));
$descs = array($executionID => '');
$teams = array($executionID => '');
$dayses = array($executionID => '');
$createFields = array('executionIDList' => $executionIDList, 'names' => $name, 'codes' => $codes, 'PMs' => $pms, 'lifetimes' => $lifetimes,
'begins' => $begins, 'ends' => $ends, 'descs' => $descs, 'statuses' => $statuses, 'teams'=>$teams, 'dayses' => $dayses,'POs' => $pos,
'QDs' => $qds, 'RDs' => $rds);
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$object = $this->objectModel->batchUpdate();
unset($_POST);
if(dao::isError())
{
return dao::getError();
}
else
{
$object = $object[$executionID];
return $object;
}
}
public function startTest($executionID,$param = array())
{
$data = date('Y-m-d');
$createFields = array( 'comment' => '开始描述测试', 'realBegan' => $data);
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$obj = $this->objectModel->start($executionID);
unset($_POST);
if(dao::isError())
{
$error = dao::getError();
if ($error[0] = "此任务已被启动,不能重复启动!")
{
return $error[0];
}
else
{
return $error;
}
}
else
{
return $obj;
}
}
public function putoffTest($executionID, $param = array())
{
$begin = date('Y-m-d');
$end = date('Y-m-d',strtotime("+5 day"));
$createFields = array('status' => 'wait', 'days' => '5', 'comment' => '延期描述测试', 'begin' => $begin, 'end' => $end);
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$obj = $this->objectModel->putoff($executionID);
unset($_POST);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
else
{
return $obj;
}
}
public function suspendTest($executionID, $param = array())
{
$createFields = array('status' => 'suspended', 'comment' => '挂起描述测试');
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$obj = $this->objectModel->suspend($executionID);
unset($_POST);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
else
{
return $obj;
}
}
public function activateTest($executionID, $param = array())
{
self::suspendTest($executionID);
$begin = date('Y-m-d');
$end = date('Y-m-d',strtotime("+5 day"));
$createFields = array('status' => 'doing', 'comment' => '激活描述测试', 'begin' => $begin, 'end' => $end);
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$obj = $this->objectModel->activate($executionID);
unset($_POST);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
else
{
return $obj;
}
}
public function closeTest($executionID, $param = array())
{
$todate = date('Y-m-d');
$createFields = array('status' => 'closed', 'comment' => '关闭描述测试', 'realEnd' => $todate);
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$obj = $this->objectModel->close($executionID);
unset($_POST);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
else
{
return $obj;
}
}
public function getPairsTest($projectID,$count)
{
$object = $this->objectModel->getPairs($projectID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getByIDTest($executionID)
{
$object = $this->objectModel->getByID($executionID);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
else
{
return $object;
}
}
public function getByIdListTest($executionIdList)
{
$object = $this->objectModel->getByIdList($executionIdList);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
else
{
return $object;
}
}
public function getListTest($projectID, $type, $status, $limit, $productID, $count)
{
$object = $this->objectModel->getList($projectID, $type, $status, $limit, $productID);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getInvolvedExecutionListTest($projectID, $limit, $productID, $count)
{
$object = $this->objectModel->getInvolvedExecutionList($projectID,$status = 'involved',$limit, $productID);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getByProjectTest($projectID, $status, $limit, $count)
{
$object = $this->objectModel->getByProject($projectID, $status, $limit);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getIdListTest($projectID, $count)
{
$object = $this->objectModel->getIdList($projectID);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getBranchesTest($executionID, $count)
{
$object = $this->objectModel->getBranches($executionID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getTreeTest_bak($executionID, $count)
{
$object = $this->objectModel->getTree($executionID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getRelatedExecutionsTest($executionID, $count)
{
$object = $this->objectModel->getRelatedExecutions($executionID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getChildExecutionsTest($executionID, $count)
{
$object = $this->objectModel->getChildExecutions($executionID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getProductGroupListTest($count)
{
$object = $this->objectModel->getProductGroupList();
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object[""];
}
}
public function getTasksTest($productID, $executionID, $browseType, $queryID, $moduleID, $sort, $count)
{
global $tester;
$execution = $tester->dbh->query("select * from zt_project where id = $executionID")->fetch();
$executions = array($executionID => $execution->name);
$page = 'NULL';
$object = $this->objectModel->getTasks($productID, $executionID, $executions, $browseType, $queryID, $moduleID, $sort, $page);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getDefaultManagersTest($executionID)
{
$object = $this->objectModel->getDefaultManagers($executionID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
else
{
return $object;
}
}
public function getBranchByProductTest($productID, $count)
{
$object = $this->objectModel->getBranchByProduct($productID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getOrderedExecutionsTest($projectID, $status, $count)
{
$object = $this->objectModel->getOrderedExecutions($projectID,$status);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getToImportTest($executionIds, $type, $count)
{
$object = $this->objectModel->getToImport($executionIds, $type);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function updateProductsTest($executionID,$param = array())
{
global $tester;
$products = array();
$branch = array();
$createFields = array('products' => $products, 'branch' => $branch, 'post' => 'post');
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$this->objectModel->updateProducts($executionID);
unset($_POST);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
else
{
$productList = $tester->dbh->query("select * from zt_projectproduct where project = $executionID")->fetchAll();
return $productList;
}
}
public function getTasks2ImportedTest($toExecution, $count)
{
$branches = $this->objectModel->getBranches($toExecution);
$object = $this->objectModel->getTasks2Imported($toExecution, $branches);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object[$toExecution]);
}
else
{
return $object[$toExecution];
}
}
public function importTaskTest($executionID, $count, $param = array())
{
global $tester;
$tasks = array();
$createFields = array('tasks' => $tasks);
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$this->objectModel->importTask($executionID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
$taskList = $tester->dbh->query("select * from zt_task where execution = $executionID")->fetchAll();
return count($taskList);
}
else
{
$taskList = $tester->dbh->query("select * from zt_task where execution = $executionID")->fetchAll();
return $taskList;
}
}
public function statRelatedDataTest($executionID)
{
$object = $this->objectModel->statRelatedData($executionID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
else
{
return $object;
}
}
public function importBugTest($executionID, $count, $param = array())
{
$import = array();
$id = array();
$pri = array();
$assignedTo = array();
$estimate = array();
$deadline = array();
$createFields = array('import' => $import, 'id' => $id, 'pri' => $pri, 'assignedTo' => $assignedTo,
'estimate' => $estimate, 'deadline' => $deadline);
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$object = $this->objectModel->importBug($executionID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function updateChildsTest($executionID, $count, $param = array())
{
global $tester;
$childs = array();
$createFields = array('childs' => $childs);
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$object = $this->objectModel->updateChilds($executionID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
$childExecutions = $tester->dbh->query("select id,name,type from zt_project where parent = $executionID")->fetchAll();
return count($childExecutions);
}
else
{
$childExecutions = $tester->dbh->query("select id,name,type from zt_project where parent = $executionID")->fetchAll();
return $childExecutions;
}
}
public function changeProjectTest($newProject, $oldProject, $executionID, $syncStories = 'no')
{
global $tester;
$this->objectModel->changeProject($newProject, $oldProject, $executionID, $syncStories);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
else
{
$newExecution = $tester->dbh->query("select parent,path from zt_project where id = $executionID")->fetchAll();
return $newExecution;
}
}
public function linkStoryTest($executionID, $count, $param = array())
{
global $tester;
$stories = array();
$products = array();
$createFields = array('stories' => $stories, 'products' => $products);
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$tester->dbh->query("delete from zt_projectstory where project = $executionID");
$this->objectModel->linkStory($executionID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
$object = $tester->dbh->query("select * from zt_projectstory where project = $executionID")->fetchAll();
return count($object);
}
else
{
$object = $tester->dbh->query("select * from zt_projectstory where project = $executionID")->fetchAll();
return $object;
}
}
public function linkCasesTest($executionID, $count, $productID, $storyID)
{
global $tester;
$tester->dbh->query("delete from zt_projectcase where project = $executionID");
$this->objectModel->linkCases($executionID, $productID, $storyID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
$object = $tester->dbh->query("select * from zt_projectcase where project = $executionID")->fetchAll();
return count($object);
}
else
{
$object = $tester->dbh->query("select * from zt_projectcase where project = $executionID")->fetchAll();
return $object;
}
}
public function unlinkStoryTest($executionID, $count, $storyID, $param = array())
{
global $tester;
$stories = array();
$products = array();
$createFields = array('stories' => $stories, 'products' => $products);
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$tester->dbh->query("delete from zt_projectstory where project = $executionID");
$this->objectModel->linkStory($executionID);
unset($_POST);
$this->objectModel->unlinkStory($executionID, $storyID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
$object = $tester->dbh->query("select * from zt_projectstory where project = $executionID")->fetchAll();
return count($object);
}
else
{
$object = $tester->dbh->query("select * from zt_projectstory where project = $executionID")->fetchAll();
if(isset($object))
{
return $object;
}
else
{
return "全部需求已解除";
}
}
}
public function unlinkCasesTest($executionID, $productID, $storyID)
{
global $tester;
$tester->dbh->query("delete from zt_projectcase where project = $executionID");
$this->objectModel->linkCases($executionID, $productID, $storyID);
$this->objectModel->unlinkCases($executionID, $storyID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
else
{
$object = $tester->dbh->query("select * from zt_projectcase where project = $executionID")->fetchAll();
return $object;
}
}
public function getTeamMembersTest($executionID, $count)
{
$object = $this->objectModel->getTeamMembers($executionID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getMembersByIdListTest($executionIdList, $count)
{
$object = $this->objectModel->getMembersByIdList($executionIdList);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function getTeamSkipTest($taskID, $begin, $end)
{
global $tester;
$teams = $tester->dao->select('*')->from(TABLE_TEAM)->where('root')->eq($taskID)->andWhere('type')->eq('task')->orderBy('order')->fetchAll('account');
$object = $this->objectModel->getTeamSkip($teams, $begin, $end);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
else
{
if(empty($object))
{
return '无跳转数据';
}
else
{
return $object;
}
}
}
public function getTeams2ImportTest($account, $currentExecution, $count)
{
$object = $this->objectModel->getTeams2Import($account, $currentExecution);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
if(empty($object))
{
return '无数据';
}
else
{
return $object;
}
}
}
public function getMembers2ImportTest($execution, $currentMembers, $count)
{
$object = $this->objectModel->getMembers2Import($execution, $currentMembers);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
if(empty($object))
{
return '无数据';
}
else
{
return $object;
}
}
}
public function getCanCopyObjectsTest($projectID = 0, $count)
{
$object = $this->objectModel->getCanCopyObjects($projectID);
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
if(empty($object))
{
return '无数据';
}
else
{
return $object;
}
}
}
public function manageMembersTest($executionID, $count, $param = array())
{
global $tester;
$tester->dbh->query("delete from zt_team where root = $executionID");
$realnames = array();
$roles = array();
$days = array();
$hours = array();
$accounts = array();
$limited = array();
$createFields = array('realnames' => $realnames, 'roles' => $roles, 'hours' => $hours, 'accounts' => $accounts,
'limited' => $limited, 'days' => $days);
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$object = $this->objectModel->manageMembers($executionID);
unset($_POST);
$object = $tester->dbh->query("select * from zt_team where root = $executionID")->fetchAll();
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
if(empty($object))
{
return '无数据';
}
else
{
return $object;
}
}
}
public function addProjectMembersTest($projectID = 0, $executionID, $count)
{
global $tester;
$tester->dbh->query("delete from zt_team where root = $projectID");
$executionMembers = $tester->dao->select('`root`,`account`,`join`,`role`,`days`,`type`,`hours`')->from(TABLE_TEAM)->where('root')->eq($executionID)->fetchAll('account');
$this->objectModel->addProjectMembers($projectID, $executionMembers);
$object = $tester->dao->select('*')->from(TABLE_TEAM)->where('root')->eq($projectID)->fetchAll();
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function unlinkMemberTest($sprintID, $account, $count)
{
global $tester;
$oldObject = $tester->dao->select('*')->from(TABLE_TEAM)->where('root')->eq($sprintID)->fetchAll();
$this->objectModel->unlinkMember($sprintID, $account);
$object = $tester->dao->select('*')->from(TABLE_TEAM)->where('root')->eq($sprintID)->fetchAll();
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($oldObject);
}
else
{
return $object;
}
}
public function computeBurnTest($count)
{
$object = $this->objectModel->computeBurn();
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
public function fixFirstTest($executionID, $count, $param = array())
{
global $tester;
$date = date('Y-m-d');
$createFields = array('estimate' => '');
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$this->objectModel->computeBurn();
$this->objectModel->fixFirst($executionID);
unset($_POST);
$object = $tester->dao->select('*')->from(TABLE_BURN)->where('execution')->eq($executionID)->andWhere('date')->eq($date)->fetchAll();
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
if(empty($object))
{
return '无数据';
}
else
{
return $object;
}
}
}
public function getBurnDataFlotTest($executionID = 0, $count)
{
$object = $this->objectModel->getBurnDataFlot($executionID, $burnBy = 'left');
if(dao::isError())
{
$error = dao::getError();
return $error;
}
elseif($count == "1")
{
return count($object);
}
else
{
return $object;
}
}
}