From f7682bf7a2d5e888a9bb113dfcef6c3a85559608 Mon Sep 17 00:00:00 2001 From: zhengrunyu Date: Tue, 18 Jan 2022 10:41:40 +0800 Subject: [PATCH] * Autotest program. --- test/model/program/create.php | 2 +- test/model/program/getbudgetunitlist.php | 29 ++++++-- test/model/program/getinvolvedprograms.php | 23 ++++++- test/model/program/getkanbangroup.php | 1 + test/model/program/getlist.php | 7 +- test/model/program/getpairs.php | 3 +- test/model/program/getparentpairs.php | 27 +++++++- test/model/program/getparentpm.php | 21 +++++- test/model/program/getproductpairs.php | 45 ++++++++++++- test/model/program/getprojectlist.php | 69 ++++++++++++++++++- test/model/program/gettoppairs.php | 27 ++++++-- test/model/program/settreepath.php | 31 ++++++++- test/model/program/update.php | 78 ++++++++++++---------- 13 files changed, 301 insertions(+), 62 deletions(-) diff --git a/test/model/program/create.php b/test/model/program/create.php index acc39cdac2..5b708570a0 100755 --- a/test/model/program/create.php +++ b/test/model/program/create.php @@ -21,7 +21,7 @@ class Tester $programID = $this->program->create(); - if(dao::isError()) return array('code' => 'fail','message' => dao::getError()); + if(dao::isError()) return array('message' => dao::getError()); $program = $this->program->getById($programID); diff --git a/test/model/program/getbudgetunitlist.php b/test/model/program/getbudgetunitlist.php index da5d8b87c8..7027673f2b 100755 --- a/test/model/program/getbudgetunitlist.php +++ b/test/model/program/getbudgetunitlist.php @@ -2,6 +2,28 @@ program = $tester->loadModel('program'); + } + + public function getBudgetUnitList() + { + global $app; + $app->loadConfig('project'); + $app->loadLang('project'); + + return $this->program->getBudgetUnitList(); + } +} + +$t = new Tester('admin'); + /** title=测试 programModel::getBudgetUnitList(); @@ -9,8 +31,5 @@ cid=1 pid=1 */ -global $app; -$app->loadConfig('project'); -$app->loadLang('project'); -$program = $tester->loadModel('program'); -r($program->getBudgetUnitList()) && p() && e(''); //aaa + +r($t->getBudgetUnitList()) && p('CNY;USD') && e('人民币;美元'); //获取货币类型列表 diff --git a/test/model/program/getinvolvedprograms.php b/test/model/program/getinvolvedprograms.php index e3c04a8cab..9d33fb6f7f 100755 --- a/test/model/program/getinvolvedprograms.php +++ b/test/model/program/getinvolvedprograms.php @@ -2,6 +2,24 @@ program = $tester->loadModel('program'); + } + + public function getInvolvedPrograms($account) + { + return $this->program->getInvolvedPrograms($account); + } +} + +$t = new Tester('admin'); + /** title=测试 programModel::getInvolvedPrograms(); @@ -9,6 +27,5 @@ cid=1 pid=1 */ - -$program = $tester->loadModel('program'); -r($program->getInvolvedPrograms('admin')) && p() && e(''); // 通过id字段获取存在的项目集 +r($t->getInvolvedPrograms('admin')) && p('122') && e('122'); // 查看用户admin可以看到的项目和执行id列表 +r($t->getInvolvedPrograms('test2')) && p('1;122') && e('1;122'); // 查看用户test2可以看到的项目和执行id列表 diff --git a/test/model/program/getkanbangroup.php b/test/model/program/getkanbangroup.php index 60decbdf45..5a78d61273 100755 --- a/test/model/program/getkanbangroup.php +++ b/test/model/program/getkanbangroup.php @@ -15,5 +15,6 @@ pid=1 $program = $tester->loadModel('program'); $result = 'Not Found'; +r($program->getKanbanGroup()) && p() && e(''); if(empty($program->getKanbanGroup()['my'])) r($result) && p() && e($result); // 获取我的看板组 if(empty($program->getKanbanGroup()['other'])) r($result) && p() && e($result); // 获取其他看板组 diff --git a/test/model/program/getlist.php b/test/model/program/getlist.php index 15215a7363..3e4d539d2e 100755 --- a/test/model/program/getlist.php +++ b/test/model/program/getlist.php @@ -42,9 +42,14 @@ pid=1 */ -a($t->getListByOrder('id_asc')); + +/* GetList($status). */ r($t->getListByStatus('all')) && p() && e('100'); // 查看所有项目和项目集的个数 r($t->getListByStatus('wait')) && p() && e('34'); // 查看所有'wait'的项目和项目集的个数 r($t->getListByStatus('doing')) && p() && e('44'); // 查看所有'doing'的项目和项目集的个数 r($t->getListByStatus('suspended')) && p() && e('11'); // 查看所有'suspended'的项目和项目集的个数 r($t->getListByStatus('closed')) && p() && e('11'); // 查看所有'closed'的项目和项目集的个数 + +/* GetList('all', $orderBy). */ +r($t->getListByOrder('name_desc')) && p() && e(1); // 按照项目和项目集名称倒序获取项目列表 +r($t->getListByOrder('id_asc')) && p() && e(1); // 按照ID正序获取项目和项目集列表 diff --git a/test/model/program/getpairs.php b/test/model/program/getpairs.php index eec299649c..e64a5ff281 100755 --- a/test/model/program/getpairs.php +++ b/test/model/program/getpairs.php @@ -36,6 +36,7 @@ pid=1 */ r($t->getCount()) && p() && e('10'); // 获取项目集个数 + r($t->getPairs()) && p('1') && e('项目集1'); // 获取项目集id/name 的关联数组 -r($t->getPairs()) && p('10') && e('项目集10'); // 获取项目集id/name 的关联数组 +r($t->getPairs()) && p('9') && e('项目集9'); // 获取项目集id/name 的关联数组 r($t->getPairs()) && p('11') && e(''); // 获取不存在的项目集id/name 的关联数组 diff --git a/test/model/program/getparentpairs.php b/test/model/program/getparentpairs.php index ffed1828fe..20ebcfffbd 100755 --- a/test/model/program/getparentpairs.php +++ b/test/model/program/getparentpairs.php @@ -2,7 +2,28 @@ program = $tester->loadModel('program'); + } + + public function getParentPairs() + { + return $this->program->getParentPairs(); + } + + public function getCount() + { + return count($this->program->getParentPairs()); + } +} + +$t = new Tester('admin'); /** @@ -12,5 +33,5 @@ pid=1 */ -$program = $tester->loadModel('program'); -r($program->getParentPairs()) && p('1') && e(''); // 获取父项目集 +r($t->getParentPairs()) && p('1') && e(''); // 获取父项目集的id/name关联数组 +r($t->getCount()) && p() && e('11'); // diff --git a/test/model/program/getparentpm.php b/test/model/program/getparentpm.php index 9f087b9dab..fa8da98654 100755 --- a/test/model/program/getparentpm.php +++ b/test/model/program/getparentpm.php @@ -2,7 +2,23 @@ program = $tester->loadModel('program'); + } + + public function getParentPM($programIdList) + { + return $this->program->getParentPM($programIdList); + } +} + +$t = new Tester('admin'); /** @@ -12,5 +28,4 @@ pid=1 */ -$program = $tester->loadModel('program'); -r($program->getParentPM()) && p() && e(''); // +r($t->getParentPM('1')) && p() && e('0'); // diff --git a/test/model/program/getproductpairs.php b/test/model/program/getproductpairs.php index f61aba40e5..078d71b9c7 100755 --- a/test/model/program/getproductpairs.php +++ b/test/model/program/getproductpairs.php @@ -2,6 +2,41 @@ program = $tester->loadModel('program'); + } + + public function getProductPairsByID($programID = 0) + { + $program = $this->program->getByID($programID); + if(empty($program)) return array('message' => 'Not Found'); + return $this->program->getProductPairs($programID, 'assign', 'all'); + } + + public function getProductPairsByMode($mode = 'assign') + { + return $this->program->getProductPairs(1, $mode, 'noclosed'); + } + + public function getProductPairsByStatus($status = 'all') + { + return $this->program->getProductPairs(1, 'assign', $status); + } + + public function getCount($programID = 0, $mode = 'assign', $status = 'all') + { + return count($this->program->getProductPairs($programID, $mode, $status)); + } +} + +$t = new Tester('admin'); + /** title=测试 programModel::getProductPairs(); @@ -11,5 +46,11 @@ pid=1 */ -$program = $tester->loadModel('program'); -r($program->getProductPairs('1', 'assign', 'all')) && p() && e(''); // +r($t->getProductPairsByID('1')) && p('23') && e('已关闭的正常产品23'); //根据项目或项目集ID获取关联产品详情 +r($t->getProductPairsByID('1000')) && p('message') && e('Not Found'); //获取不存在的项目或项目集 +r($t->getProductPairsByMode(all)) && p('1') && e('正常产品1'); // 根据项目或项目集指派情况获取关联产品详情 +r($t->getProductPairsByStatus('all')) && p('100') && e('多平台产品100'); //根据项目或项目集状态获取关联产品详情 + +r($t->getCount('1', 'assign', 'all')) && p() && e('10'); //查看ID=1,有指派,所有状态的关联产品数量 +r($t->getCount('1', 'assign', 'noclosed')) && p() && e('6'); //查看ID=1,有指派,未关闭的关联产品数量 + diff --git a/test/model/program/getprojectlist.php b/test/model/program/getprojectlist.php index 6a28baa664..50c14800d7 100755 --- a/test/model/program/getprojectlist.php +++ b/test/model/program/getprojectlist.php @@ -2,6 +2,59 @@ program = $tester->loadModel('program'); + $this->config->systemMode = 'new'; + } + + public function getListByProgramID($programID = 0) + { + return count($this->program->getProjectList($programID)); + } + + public function getListByBrowseType($browseType = 'all') + { + $projects = $this->program->getProjectList('0', $browseType); + + if(!$projects) return 0; + foreach($projects as $project) + { + if($project->status != $browseType and $browseType != 'all' and $browseType != 'undone') return 0; + if($browseType == 'undone' and ($project->status != ('wait' or 'doing'))) return 0; + } + + return count($projects); + } + + public function getListByOrder($orderBy = 'id_desc') + { + $projects = $this->program->getProjectList('0', 'all', '0', $orderBy); + + return checkOrder($projects, $orderBy); + } + + public function getListAddProgramTitle($programTitle = 0) + { + return $this->program->getProjectList('0', 'all', '0', 'id_desc', '', $programTitle); + } + + public function getListByInvolved($involved = 0, $count = '') + { + $projects = $this->program->getProjectList('0', 'all', '0', 'id_desc', '', '0', $involved); + + if($count == 'count') return count($projects); + return $projects; + } +} + +$t = new Tester('admin'); + /** title=测试 programModel::getProjectList($programID = 0, $browseType = 'all', $queryID = 0, $orderBy = 'id_desc', $pager = null, $programTitle = 0, $involved = 0, $queryAll = false); @@ -10,5 +63,17 @@ pid=1 */ -$program = $tester->loadModel('program'); -r($program->getProjectList()) && p() && e(''); // 通过id字段获取存在的项目集 +/* GetProjectList($programID). */ +r($t->getListByProgramID(0)) && p() && e('90'); // 查看所有项目的个数 + +/* GetProjectList(0, $browseType). */ +r($t->getListByBrowseType(doing)) && p() && e('44'); // 查看所有项目的个数 + +/* GetProjectList(0, 'all', 0, $orderBy). */ +r($t->getListByOrder('name_desc')) && p() && e('1'); // 查看所有项目的个数 +r($t->getListByOrder('id_desc')) && p() && e('1'); // 查看所有项目的个数 + +r($t->getListAddProgramTitle(0)) && p('11:name') && e('项目1'); // 查看所有项目的个数 + +r($t->getListByInvolved(1)) && p('11:name') && e('项目1'); // 查看所有项目的个数 +r($t->getListByInvolved(1, 'count')) && p() && e('1'); // 查看所有项目的个数 diff --git a/test/model/program/gettoppairs.php b/test/model/program/gettoppairs.php index 5ad547588d..c23ac1bb77 100755 --- a/test/model/program/gettoppairs.php +++ b/test/model/program/gettoppairs.php @@ -1,7 +1,26 @@ #!/usr/bin/env php program = $tester->loadModel('program'); + } + + public function getTopPairs($count = '') + { + if($count == 'count') return count($this->program->getTopPairs()); + return $this->program->getTopPairs(); + } +} + +$t = new Tester('admin'); + /** title=测试 programModel::getTopPairs(); @@ -10,6 +29,6 @@ pid=1 */ -$program = $tester->loadModel('program'); -a($program->getTopPairs()); -r($program->getTopPairs()) && p() && e(''); // +r($t->getTopPairs('count')) && p() && e('10'); // 查看父项目集的个数 +r($t->getTopPairs()) && p('1') && e('项目集1'); // 查看id=1的父项目集 + diff --git a/test/model/program/settreepath.php b/test/model/program/settreepath.php index 6bb94d500f..e9241894f9 100755 --- a/test/model/program/settreepath.php +++ b/test/model/program/settreepath.php @@ -2,6 +2,32 @@ program = $tester->loadModel('program'); + } + + public function setTreePath($programID) + { + $programPath = $this->program->setTreePath($programID); + if($programPath) + { + return $this->program->getById($programID); + } + else + { + return 0; + } + } +} + +$t = new Tester('admin'); + /** title=测试 programModel::setTreePath(); @@ -10,6 +36,5 @@ pid=1 */ -$program = $tester->loadModel('program'); -r($program->setTreePath(11)) && p() && e('1'); // 设置id=11的项目集的path -r($program->getById(11)) && p('path') && e('11,'); // 查找id=11的项目集的path +r($t->setTreePath(12)) && p('path') && e('12,'); // 查找id=11的项目集的path +r($t->setTreePath(1000)) && p('path') && e('0'); // 查找不存在的id=1000的项目集的path diff --git a/test/model/program/update.php b/test/model/program/update.php index 173f0978f2..7c085aeddb 100755 --- a/test/model/program/update.php +++ b/test/model/program/update.php @@ -2,34 +2,42 @@ loadModel('program'); - - $_POST = $data; - $result = $program->update(10); - if(dao::isError()) return array('code' => 'fail','message' => dao::getError()); - - $app->dbh->query("UPDATE " . TABLE_PROGRAM . " SET name = '" . $result[0]['old']. "' where id = '" . $programID . "'"); - return $result; -} - -function updateProgram($programID, $status = 0) -{ - $data = array( - 'parent' => '0', - 'name' => '测试更新项目集十', - 'begin' => '2020-10-10', - 'end' => '2020-10-11', - 'acl' => 'private', - 'budget' => '100', - 'budgetUnit' => 'CNY' - ); - - switch($status) + public function __construct($user) { + global $tester; + + su('admin'); + $this->program = $tester->loadModel('program'); + } + + function update($programID, $data) + { + global $app; + + $_POST = $data; + $result = $this->program->update(10); + if(dao::isError()) return array('message' => dao::getError()); + + $app->dbh->query("UPDATE " . TABLE_PROGRAM . " SET name = '" . $result[0]['old']. "' where id = '" . $programID . "'"); + return $result; + } + + function updateProgram($programID, $status = 0) + { + $data = array( + 'parent' => '0', + 'name' => '测试更新项目集十', + 'begin' => '2020-10-10', + 'end' => '2020-10-11', + 'acl' => 'private', + 'budget' => '100', + 'budgetUnit' => 'CNY' + ); + + switch($status) + { case '1': // 项目集名称已经存在时 $data['name'] = '项目集1'; break; @@ -47,11 +55,13 @@ function updateProgram($programID, $status = 0) $data['begin'] = '2019-01-01'; break; default: // 更新id为10的项目集信息 + } + return $this->update($programID, $data); } - - return update($programID, $data); } +$t = new Tester('admin'); + /** title=测试 programModel::update($programID); @@ -60,9 +70,9 @@ pid=1 */ -r(updateProgram(10)) && p('0:new') && e('测试更新项目集十');// 更新id为10的项目集信息 -r(updateProgram(10, 2)) && p('message[begin]:0') && e('『计划开始』不能为空。');// 当计划开始为空时更新项目集信息 -r(updateProgram(10, 3)) && p('message[end]:0') && e('『计划完成』不能为空。');// 当计划完成为空时更新项目集信息 -r(updateProgram(10, 4)) && p('message[end]:0') && e('『计划完成』应当大于『2020-10-10』。');// 当计划完成小于计划开始时 -r(updateProgram(10, 1)) && p('message[name]:0') && e('『项目集名称』已经有『项目集1』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。');// 项目集名称已经存在时 -r(updateProgram(10, 5)) && p('message:begin;message:end') && e('父项目集的开始日期:2019-09-09,开始日期不能小于父项目集的开始日期;父项目集的完成日期:2019-09-09,完成日期不能大于父项目集的完成日期');// 项目集开始时间小于父项目集时 +r($t->updateProgram(10)) && p('0:new') && e('测试更新项目集十');// 更新id为10的项目集信息 +r($t->updateProgram(10, 2)) && p('message[begin]:0') && e('『计划开始』不能为空。');// 当计划开始为空时更新项目集信息 +r($t->updateProgram(10, 3)) && p('message[end]:0') && e('『计划完成』不能为空。');// 当计划完成为空时更新项目集信息 +r($t->updateProgram(10, 4)) && p('message[end]:0') && e('『计划完成』应当大于『2020-10-10』。');// 当计划完成小于计划开始时 +r($t->updateProgram(10, 1)) && p('message[name]:0') && e('『项目集名称』已经有『项目集1』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。');// 项目集名称已经存在时 +r($t->updateProgram(10, 5)) && p('message:begin;message:end') && e('父项目集的开始日期:2019-09-09,开始日期不能小于父项目集的开始日期;父项目集的完成日期:2019-09-09,完成日期不能大于父项目集的完成日期');// 项目集开始时间小于父项目集时