From 184bdc992c6864f90d839cddd343f48a0df52838 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Mon, 11 Apr 2022 16:57:38 +0800 Subject: [PATCH] * Add auto test of programplan. --- test/class/programplan.class.php | 273 ++++++++++++++++++ test/model/programplan/getbyid.php | 23 ++ test/model/programplan/getbylist.php | 23 ++ test/model/programplan/getduration.php | 24 ++ .../programplan/getmilestonebyproduct.php | 23 ++ test/model/programplan/getmilestones.php | 22 ++ test/model/programplan/getparentstagelist.php | 24 ++ test/model/programplan/getplans.php | 23 ++ test/model/programplan/getstage.php | 31 ++ test/ztest | 3 + 10 files changed, 469 insertions(+) create mode 100644 test/class/programplan.class.php create mode 100755 test/model/programplan/getbyid.php create mode 100755 test/model/programplan/getbylist.php create mode 100755 test/model/programplan/getduration.php create mode 100755 test/model/programplan/getmilestonebyproduct.php create mode 100755 test/model/programplan/getmilestones.php create mode 100755 test/model/programplan/getparentstagelist.php create mode 100755 test/model/programplan/getplans.php create mode 100755 test/model/programplan/getstage.php diff --git a/test/class/programplan.class.php b/test/class/programplan.class.php new file mode 100644 index 0000000000..6fe72f5a32 --- /dev/null +++ b/test/class/programplan.class.php @@ -0,0 +1,273 @@ +objectModel = $tester->loadModel('programplan'); + } + + /** + * Test get plan by id. + * + * @param int $planID + * @access public + * @return object + */ + public function getByIDTest($planID) + { + $object = $this->objectModel->getByID($planID); + + if(dao::isError()) return dao::getError(); + + return $object; + } + + /** + * Test get plans list. + * + * @param int $executionID + * @param int $productID + * @param string $browseType + * @param string $orderBy + * @access public + * @return string + */ + public function getStageTest($executionID = 0, $productID = 0, $browseType = 'all', $orderBy = 'id_asc') + { + $objects = $this->objectModel->getStage($executionID, $productID, $browseType, $orderBy); + + if(dao::isError()) return dao::getError(); + + $title = ''; + foreach($objects as $object) $title .= ',' . $object->name; + return $title; + } + + /** + * Test get plans by idList. + * + * @param array $idList + * @access public + * @return array + */ + public function getByListTest($idList = array()) + { + $objects = $this->objectModel->getByList($idList); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Test get plans. + * + * @param int $executionID + * @param int $productID + * @param string $orderBy + * @access public + * @return string + */ + public function getPlansTest($executionID = 0, $productID = 0, $orderBy = 'id_asc') + { + $objects = $this->objectModel->getPlans($executionID, $productID, $orderBy); + + if(dao::isError()) return dao::getError(); + + $title = ''; + foreach($objects as $object) $title .= ',' . $object->name; + return $title; + } + + /** + * Test get pairs. + * + * @param int $executionID + * @param int $productID + * @param string $type + * @access public + * @return string + */ + public function getPairsTest($executionID, $productID = 0, $type = 'all') + { + $objects = $this->objectModel->getPairs($executionID, $productID, $type); + + if(dao::isError()) return dao::getError(); + + return implode(',', $objects); + } + + public function getDataForGanttTest($executionID, $productID, $baselineID = 0, $selectCustom = '', $returnJson = false) + { + $objects = $this->objectModel->getDataForGantt($executionID, $productID, $baselineID, $selectCustom, $returnJson); + + if(dao::isError()) return dao::getError(); + + $objects = is_string($objects) ? json_decode($objects) : $objects; + return $objects; + } + + public function getTotalPercentTest($stage, $parent = false) + { + $objects = $this->objectModel->getTotalPercent($stage, $parent = false); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + public function processPlansTest($plans) + { + $objects = $this->objectModel->processPlans($plans); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + public function processPlanTest($plan) + { + $objects = $this->objectModel->processPlan($plan); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Test get duration. + * + * @param date $begin + * @param date $end + * @access public + * @return int + */ + public function getDurationTest($begin, $end) + { + $count = $this->objectModel->getDuration($begin, $end); + + if(dao::isError()) return dao::getError(); + + return $count; + } + + /** + * Test create a plan. + * + * @param array $param + * @access public + * @return array + */ + public function createTest($param = array()) + { + $_POST['planIDList'] = array('131', '221', '311', '401', '491', '581', '671'); + $_POST['names'] = array('阶段31', '阶段121', '阶段211', '阶段301', '阶段391', '阶段481', '阶段571', '', '', '', '', ''); + $_POST['PM'] = array('', '', '', '', '', '', '', '', '', '', '', ''); + $_POST['percents'] = array('0', '0', '0', '0', '0', '0', '0', '', '', '', '', ''); + $_POST['attributes'] = array('request', 'request', 'request', 'request', 'request', 'request', 'request', 'request', 'request', 'request', 'request', 'request'); + $_POST['acl'] = array('private', 'open', 'open', 'private', 'private', 'open', 'open', 'open', 'open', 'open', 'open', 'open'); + $_POST['milestone'] = array('0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); + $_POST['begin'] = array('2022-03-13', '2022-03-13', '2022-03-16', '2022-03-16', '2022-03-19', '2022-03-19', '2022-03-22', '', '', '', '', ''); + $_POST['end'] = array('2022-05-18', '2022-04-30', '2022-05-18', '2022-05-18', '2022-04-30', '2022-05-18', '2022-05-18', '', '', '', '', ''); + $_POST['realBegan'] = array('', '', '', '', '', '', '', '', '', '', '', ''); + $_POST['realEnd'] = array('', '', '', '', '', '', '', '', '', '', '', ''); + + foreach($param as $field => $value) $_POST[$field] = $value; + + $objects = $this->objectModel->create(41, 0, 0); + + unset($_POST); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + public function setTreePathTest($planID) + { + $objects = $this->objectModel->setTreePath($planID); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + public function updateTest($planID = 0, $projectID = 0) + { + $objects = $this->objectModel->update($planID = 0, $projectID = 0); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + public function printCellTest($col, $plan, $users, $projectID) + { + $objects = $this->objectModel->printCell($col, $plan, $users, $projectID); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + public function isCreateTaskTest($planID) + { + $objects = $this->objectModel->isCreateTask($planID); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Test get the stage set to milestone. + * + * @param int $projectID + * @access public + * @return string + */ + public function getMilestonesTest($projectID = 0) + { + $objects = $this->objectModel->getMilestones($projectID); + + if(dao::isError()) return dao::getError(); + + return implode(',', $objects); + } + + /** + * Test get milestone by product. + * + * @param int $productID + * @param int $projectID + * @access public + * @return string + */ + public function getMilestoneByProductTest($productID, $projectID) + { + $objects = $this->objectModel->getMilestoneByProduct($productID, $projectID); + + if(dao::isError()) return dao::getError(); + + return implode(',', $objects); + } + + /** + * Test get parent stage list. + * + * @param int $executionID + * @param int $planID + * @param int $productID + * @access public + * @return string + */ + public function getParentStageListTest($executionID, $planID, $productID) + { + $objects = $this->objectModel->getParentStageList($executionID, $planID, $productID); + + if(dao::isError()) return dao::getError(); + + return implode(',', $objects); + } +} diff --git a/test/model/programplan/getbyid.php b/test/model/programplan/getbyid.php new file mode 100755 index 0000000000..b8980fc33f --- /dev/null +++ b/test/model/programplan/getbyid.php @@ -0,0 +1,23 @@ +#!/usr/bin/env php +getByID(); +cid=1 +pid=1 + +*/ + +$planIDList = array('131', '132', '133', '134', '135'); + +$programplan = new programplanTest(); + +r($programplan->getByIDTest($planIDList[0])) && p('name,code') && e('阶段31,project31'); // 获取阶段131 +r($programplan->getByIDTest($planIDList[1])) && p('name,code') && e('阶段32,project32'); // 获取阶段132 +r($programplan->getByIDTest($planIDList[2])) && p('name,code') && e('阶段33,project33'); // 获取阶段133 +r($programplan->getByIDTest($planIDList[3])) && p('name,code') && e('阶段34,project34'); // 获取阶段134 +r($programplan->getByIDTest($planIDList[4])) && p('name,code') && e('阶段35,project35'); // 获取阶段135 diff --git a/test/model/programplan/getbylist.php b/test/model/programplan/getbylist.php new file mode 100755 index 0000000000..e0229ffee1 --- /dev/null +++ b/test/model/programplan/getbylist.php @@ -0,0 +1,23 @@ +#!/usr/bin/env php +getByList(); +cid=1 +pid=1 + +*/ + +$planIDList = array(array(11, 12), array(13, 14), array(15, 16, 17), array(18, 19, 20), array(21, 22, 23, 24)); + +$programplan = new programplanTest(); + +r($programplan->getByListTest($planIDList[0])) && p('11:name;12:name') && e('项目1;项目2'); // 测试获取项目11 12的信息 +r($programplan->getByListTest($planIDList[1])) && p('13:name;14:name') && e('项目3;项目4'); // 测试获取项目13 14的信息 +r($programplan->getByListTest($planIDList[2])) && p('15:name;16:name;17:name') && e('项目5;项目6;项目7'); // 测试获取项目15 16 17的信息 +r($programplan->getByListTest($planIDList[3])) && p('18:name;19:name;20:name') && e('项目8;项目9;项目10'); // 测试获取项目18 19 20的信息 +r($programplan->getByListTest($planIDList[4])) && p('21:name;22:name;23:name;24:name') && e('项目11;项目12;项目13;项目14'); // 测试获取项目21 22 23 24的信息 diff --git a/test/model/programplan/getduration.php b/test/model/programplan/getduration.php new file mode 100755 index 0000000000..cc539c6ce0 --- /dev/null +++ b/test/model/programplan/getduration.php @@ -0,0 +1,24 @@ +#!/usr/bin/env php +getDuration(); +cid=1 +pid=1 + +*/ + +$beginList = array('2022-04-01', '2022-04-02', '2022-04-03', '2022-04-04', '2022-04-05'); +$endList = array('2022-05-01', '2022-05-06', '2022-05-11', '2022-05-16', '2022-05-21'); + +$programplan = new programplanTest(); + +r($programplan->getDurationTest($beginList[0], $endList[0])) && p() && e('21'); // 测试获取2022-04-01 ~ 2022-05-01持续时间 +r($programplan->getDurationTest($beginList[1], $endList[1])) && p() && e('25'); // 测试获取2022-04-02 ~ 2022-05-06持续时间 +r($programplan->getDurationTest($beginList[2], $endList[2])) && p() && e('28'); // 测试获取2022-04-03 ~ 2022-05-11持续时间 +r($programplan->getDurationTest($beginList[3], $endList[3])) && p() && e('31'); // 测试获取2022-04-04 ~ 2022-05-16持续时间 +r($programplan->getDurationTest($beginList[4], $endList[4])) && p() && e('34'); // 测试获取2022-04-05 ~ 2022-05-21持续时间 diff --git a/test/model/programplan/getmilestonebyproduct.php b/test/model/programplan/getmilestonebyproduct.php new file mode 100755 index 0000000000..617e402db8 --- /dev/null +++ b/test/model/programplan/getmilestonebyproduct.php @@ -0,0 +1,23 @@ +#!/usr/bin/env php +getMilestoneByProduct(); +cid=1 +pid=1 + +*/ +$projectIDList = array(41, 52, 43, 54, 45); +$productIDList = array(21, 32, 23, 34, 25); + +$programplan = new programplanTest(); + +r($programplan->getMilestoneByProductTest($productIDList[0], $projectIDList[0])) && p() && e('阶段301,阶段481,阶段211,阶段391,阶段571'); // 测试获取产品21 项目41的里程碑 +r($programplan->getMilestoneByProductTest($productIDList[1], $projectIDList[1])) && p() && e('0'); // 测试获取产品32 项目52的里程碑 +r($programplan->getMilestoneByProductTest($productIDList[2], $projectIDList[2])) && p() && e('阶段123,阶段303,阶段483,阶段33,阶段213,阶段393,阶段573'); // 测试获取产品23 项目43的里程碑 +r($programplan->getMilestoneByProductTest($productIDList[3], $projectIDList[3])) && p() && e('0'); // 测试获取产品34 项目54的里程碑 +r($programplan->getMilestoneByProductTest($productIDList[4], $projectIDList[4])) && p() && e('阶段125,阶段305,阶段485,阶段35,阶段215,阶段395,阶段575'); // 测试获取产品25 项目45的里程碑 diff --git a/test/model/programplan/getmilestones.php b/test/model/programplan/getmilestones.php new file mode 100755 index 0000000000..f070c3b6cc --- /dev/null +++ b/test/model/programplan/getmilestones.php @@ -0,0 +1,22 @@ +#!/usr/bin/env php +getMilestones(); +cid=1 +pid=1 + +*/ +$projectIDList = array(41, 52, 43, 54, 45); + +$programplan = new programplanTest(); + +r($programplan->getMilestonesTest($projectIDList[0])) && p() && e('阶段571,阶段481,阶段391,阶段301,阶段211'); // 测试获取项目41的里程碑 +r($programplan->getMilestonesTest($projectIDList[1])) && p() && e('0'); // 测试获取项目52的里程碑 +r($programplan->getMilestonesTest($projectIDList[2])) && p() && e('阶段573,阶段483,阶段393,阶段303,阶段213,阶段123,阶段33'); // 测试获取项目43的里程碑 +r($programplan->getMilestonesTest($projectIDList[3])) && p() && e('0'); // 测试获取项目54的里程碑 +r($programplan->getMilestonesTest($projectIDList[4])) && p() && e('阶段575,阶段485,阶段395,阶段305,阶段215,阶段125,阶段35'); // 测试获取项目45的里程碑 diff --git a/test/model/programplan/getparentstagelist.php b/test/model/programplan/getparentstagelist.php new file mode 100755 index 0000000000..6e20a1426b --- /dev/null +++ b/test/model/programplan/getparentstagelist.php @@ -0,0 +1,24 @@ +#!/usr/bin/env php +getParentStageList(); +cid=1 +pid=1 + +*/ +$projectIDList = array(41, 42, 43, 44, 45); +$planIDList = array(701, 702, 703, 704, 705); +$productIDList = array(21, 22, 23, 24, 25); + +$programplan = new programplanTest(); + +r($programplan->getParentStageListTest($projectIDList[0], $planIDList[0], $productIDList[0])) && p() && e('无,阶段31'); // 测试查询项目41 计划701 产品21的父阶段信息 +r($programplan->getParentStageListTest($projectIDList[1], $planIDList[1], $productIDList[1])) && p() && e('无,阶段32'); // 测试查询项目42 计划702 产品22的父阶段信息 +r($programplan->getParentStageListTest($projectIDList[2], $planIDList[2], $productIDList[2])) && p() && e('无,阶段33'); // 测试查询项目43 计划703 产品23的父阶段信息 +r($programplan->getParentStageListTest($projectIDList[3], $planIDList[3], $productIDList[3])) && p() && e('无,阶段34'); // 测试查询项目44 计划704 产品24的父阶段信息 +r($programplan->getParentStageListTest($projectIDList[4], $planIDList[4], $productIDList[4])) && p() && e('无,阶段35'); // 测试查询项目45 计划705 产品25的父阶段信息 diff --git a/test/model/programplan/getplans.php b/test/model/programplan/getplans.php new file mode 100755 index 0000000000..5c2a6626e5 --- /dev/null +++ b/test/model/programplan/getplans.php @@ -0,0 +1,23 @@ +#!/usr/bin/env php +getPlans(); +cid=1 +pid=1 + +*/ +$executionIDList = array(41, 42, 43, 44, 45); +$productIDList = array(21, 22, 23, 24, 25); + +$programplan = new programplanTest(); + +r($programplan->getPlansTest($executionIDList[0], $productIDList[0])) && p() && e(',阶段31,阶段121,阶段211,阶段301,阶段391,阶段481,阶段571'); // 测试获取执行41 产品21的计划键值对 +r($programplan->getPlansTest($executionIDList[1], $productIDList[1])) && p() && e(',阶段32,阶段122,阶段212,阶段302,阶段392,阶段482,阶段572'); // 测试获取执行42 产品22的计划键值对 +r($programplan->getPlansTest($executionIDList[2], $productIDList[2])) && p() && e(',阶段33,阶段123,阶段213,阶段303,阶段393,阶段483,阶段573'); // 测试获取执行43 产品23的计划键值对 +r($programplan->getPlansTest($executionIDList[3], $productIDList[3])) && p() && e(',阶段34,阶段124,阶段214,阶段304,阶段394,阶段484,阶段574'); // 测试获取执行44 产品24的计划键值对 +r($programplan->getPlansTest($executionIDList[4], $productIDList[4])) && p() && e(',阶段35,阶段125,阶段215,阶段305,阶段395,阶段485,阶段575'); // 测试获取执行45 产品25的计划键值对 diff --git a/test/model/programplan/getstage.php b/test/model/programplan/getstage.php new file mode 100755 index 0000000000..2e2f761e16 --- /dev/null +++ b/test/model/programplan/getstage.php @@ -0,0 +1,31 @@ +#!/usr/bin/env php +getStage(); +cid=1 +pid=1 + +*/ +$executionIDList = array(41, 42, 43, 44, 45); +$productIDList = array(21, 22, 23, 24, 25); +$browseTypeList = array('all', 'parent'); +$order = 'id_desc'; + +$programplan = new programplanTest(); + +r($programplan->getStageTest($executionIDList[0], $productIDList[0], $browseTypeList[0])) && p() && e(',阶段31,阶段121,阶段211,阶段301,阶段391,阶段481,阶段571,子阶段1'); // 测试获取执行41 产品21 browse all的计划键值对 +r($programplan->getStageTest($executionIDList[0], $productIDList[0], $browseTypeList[1])) && p() && e(',阶段31,阶段121,阶段211,阶段301,阶段391,阶段481,阶段571'); // 测试获取执行41 产品21 browse parent的计划键值对 +r($programplan->getStageTest($executionIDList[0], $productIDList[0], $browseTypeList[0], $order)) && p() && e(',子阶段1,阶段571,阶段481,阶段391,阶段301,阶段211,阶段121,阶段31'); // 测试获取执行41 产品21 browse all id desc的计划键值对 +r($programplan->getStageTest($executionIDList[1], $productIDList[1], $browseTypeList[0])) && p() && e(',阶段32,阶段122,阶段212,阶段302,阶段392,阶段482,阶段572,子阶段2'); // 测试获取执行42 产品22 browse all的计划键值对 +r($programplan->getStageTest($executionIDList[1], $productIDList[1], $browseTypeList[1])) && p() && e(',阶段32,阶段122,阶段212,阶段302,阶段392,阶段482,阶段572'); // 测试获取执行42 产品22 browse parent的计划键值对 +r($programplan->getStageTest($executionIDList[2], $productIDList[2], $browseTypeList[0])) && p() && e(',阶段33,阶段123,阶段213,阶段303,阶段393,阶段483,阶段573,子阶段3'); // 测试获取执行43 产品23 browse all的计划键值对 +r($programplan->getStageTest($executionIDList[2], $productIDList[2], $browseTypeList[1])) && p() && e(',阶段33,阶段123,阶段213,阶段303,阶段393,阶段483,阶段573'); // 测试获取执行43 产品23 browse parent的计划键值对 +r($programplan->getStageTest($executionIDList[3], $productIDList[3], $browseTypeList[0])) && p() && e(',阶段34,阶段124,阶段214,阶段304,阶段394,阶段484,阶段574,子阶段4'); // 测试获取执行44 产品24 browse all的计划键值对 +r($programplan->getStageTest($executionIDList[3], $productIDList[3], $browseTypeList[1])) && p() && e(',阶段34,阶段124,阶段214,阶段304,阶段394,阶段484,阶段574'); // 测试获取执行44 产品24 browse parent的计划键值对 +r($programplan->getStageTest($executionIDList[4], $productIDList[4], $browseTypeList[0])) && p() && e(',阶段35,阶段125,阶段215,阶段305,阶段395,阶段485,阶段575,子阶段5'); // 测试获取执行45 产品25 browse all的计划键值对 +r($programplan->getStageTest($executionIDList[4], $productIDList[4], $browseTypeList[1])) && p() && e(',阶段35,阶段125,阶段215,阶段305,阶段395,阶段485,阶段575'); // 测试获取执行45 产品25 browse parent的计划键值对 diff --git a/test/ztest b/test/ztest index 121b61ec45..a03d2f0b42 100755 --- a/test/ztest +++ b/test/ztest @@ -22,6 +22,9 @@ switch($argv[1]) case 'program': ztfRun('model/program'); break; + case 'programplan': + ztfRun('model/programplan'); + break; case 'product': ztfRun('model/product'); break;