From 8ebdc2a3b621bb5828439567beecddcaf54e800f Mon Sep 17 00:00:00 2001 From: zhengrunyu Date: Tue, 18 Jan 2022 10:22:42 +0800 Subject: [PATCH] * Autotest program case. --- test/model/program/create.php | 86 +++++++++++++++++++ test/model/program/createstakeholder.php | 33 +++++++ test/model/program/getbudgetleft.php | 33 +++++++ test/model/program/getbudgetunitlist.php | 16 ++++ test/model/program/getbyid.php | 31 ++++++- test/model/program/getchildren.php | 41 +++++++++ test/model/program/getinvolvedprograms.php | 14 +++ test/model/program/getkanbangroup.php | 19 ++++ test/model/program/getlist.php | 50 +++++++++++ test/model/program/getpairs.php | 41 +++++++++ test/model/program/getpairsbylist.php | 45 ++++++++++ test/model/program/getparentpairs.php | 16 ++++ test/model/program/getparentpm.php | 16 ++++ test/model/program/getproductpairs.php | 15 ++++ test/model/program/getprogresslist.php | 38 ++++++++ test/model/program/getprojectlist.php | 14 +++ test/model/program/getprojectstats.php | 14 +++ test/model/program/getstakeholders.php | 14 +++ .../program/getstakeholdersbyprograms.php | 14 +++ test/model/program/getteammemberpairs.php | 14 +++ test/model/program/gettopbyid.php | 15 ++++ test/model/program/gettoppairs.php | 15 ++++ test/model/program/hasunfinished.php | 15 ++++ test/model/program/processnode.php | 14 +++ test/model/program/settreepath.php | 15 ++++ test/model/program/update.php | 68 +++++++++++++++ 26 files changed, 702 insertions(+), 4 deletions(-) create mode 100755 test/model/program/create.php create mode 100755 test/model/program/createstakeholder.php create mode 100755 test/model/program/getbudgetleft.php create mode 100755 test/model/program/getbudgetunitlist.php create mode 100755 test/model/program/getchildren.php create mode 100755 test/model/program/getinvolvedprograms.php create mode 100755 test/model/program/getkanbangroup.php create mode 100755 test/model/program/getlist.php create mode 100755 test/model/program/getpairs.php create mode 100755 test/model/program/getpairsbylist.php create mode 100755 test/model/program/getparentpairs.php create mode 100755 test/model/program/getparentpm.php create mode 100755 test/model/program/getproductpairs.php create mode 100755 test/model/program/getprogresslist.php create mode 100755 test/model/program/getprojectlist.php create mode 100755 test/model/program/getprojectstats.php create mode 100755 test/model/program/getstakeholders.php create mode 100755 test/model/program/getstakeholdersbyprograms.php create mode 100755 test/model/program/getteammemberpairs.php create mode 100755 test/model/program/gettopbyid.php create mode 100755 test/model/program/gettoppairs.php create mode 100755 test/model/program/hasunfinished.php create mode 100755 test/model/program/processnode.php create mode 100755 test/model/program/settreepath.php create mode 100755 test/model/program/update.php diff --git a/test/model/program/create.php b/test/model/program/create.php new file mode 100755 index 0000000000..acc39cdac2 --- /dev/null +++ b/test/model/program/create.php @@ -0,0 +1,86 @@ +#!/usr/bin/env php +program = $tester->loadModel('program'); + } + + function create($data) + { + global $app; + + $_POST = ''; + $_POST = $data; + + $programID = $this->program->create(); + + if(dao::isError()) return array('code' => 'fail','message' => dao::getError()); + + $program = $this->program->getById($programID); + + $app->dbh->query("DELETE FROM ". TABLE_PROGRAM ." where name = '" . $data['name']. "'"); + return $program; + } + + function createData($status) + { + $data = array( + 'parent' => 0, + 'name' => '测试新增项目集一', + 'budget' => '', + 'budgetUnit' => 'CNY', + 'begin' => '2022-01-12', + 'end' => '2022-02-12', + 'desc' => '测试项目集描述', + 'acl' => 'private' + ); + + switch($status) + { + case '1': // 创建新项目集 + break; + case '2': // 项目集名称为空时 + $data['name'] = ''; + break; + case '3': // 项目集的开始时间为空 + $data['begin'] = ''; + break; + case '4': // 项目集的完成时间为空 + $data['end'] = ''; + break; + case '5': // 项目集的计划完成时间大于计划开始时间 + $data['end'] = '2022-01-10'; + break; + case '6': // 项目集的完成日期大于父项目集的完成日期 + $data['parent'] = '1'; + $data['begin'] = '2018-01-01'; + $data['end'] = '2022-02-10'; + break; + default: + } + return $this->create($data); + } +} + +$t = new Tester('admin'); + +/** + +title=测试 programModel::create(); +cid=1 +pid=1 + + */ +r($t->createData(1)) && p('name') && e('测试新增项目集一'); // 创建新项目集 +r($t->createData(2)) && p('message[name]:0') && e('『项目集名称』不能为空。'); // 项目集名称为空时 +r($t->createData(3)) && p('message[begin]:0') && e('『计划开始』不能为空。'); // 项目集的开始时间为空 +r($t->createData(4)) && p('message[end]:0') && e('『计划完成』不能为空。'); // 项目集的完成时间为空 +r($t->createData(5)) && p('message[end]:0') && e('『计划完成』应当大于『2022-01-12』。'); // 项目集的计划完成时间大于计划开始时间 +r($t->createData(6)) && p('message:begin;message:end') && e('父项目集的开始日期:2019-01-01,开始日期不能小于父项目集的开始日期;父项目集的完成日期:2019-01-01,完成日期不能大于父项目集的完成日期'); // 项目集的完成日期大于父项目集的完成日期 diff --git a/test/model/program/createstakeholder.php b/test/model/program/createstakeholder.php new file mode 100755 index 0000000000..3ea1e26d2d --- /dev/null +++ b/test/model/program/createstakeholder.php @@ -0,0 +1,33 @@ +#!/usr/bin/env php +program = $tester->loadModel('program'); + } + + public function createStakeholder($programID) + { + $_POST['accounts'] = array('dev1', 'dev2'); + $this->program->createStakeholder($programID); + + return $this->program->getStakeholdersByPrograms($programID); + } +} + +$t = new Tester('admin'); + +/** + +title=测试 programModel::createStakeholder(); +cid=1 +pid=1 + +*/ +r($t->createStakeholder(1)) && p('0:account;1:account') && e('dev2;dev1'); // 创建id=1的项目集的干系人dev1,dev2并查看。 diff --git a/test/model/program/getbudgetleft.php b/test/model/program/getbudgetleft.php new file mode 100755 index 0000000000..9a41f820eb --- /dev/null +++ b/test/model/program/getbudgetleft.php @@ -0,0 +1,33 @@ +#!/usr/bin/env php +program = $tester->loadModel('program'); + } + + public function getBudgetLeft($programID) + { + $program = $this->program->getById(1); + + return $this->program->getBudgetLeft($program); + } +} + +$t = new Tester('admin'); + +/** + +title=测试 programModel::getBudgetLeft($parentProgram); +cid=1 +pid=1 + +*/ + +r($t->getBudgetLeft(1)) && p() && e('0'); // 查看父项目集id=1的预算剩余 diff --git a/test/model/program/getbudgetunitlist.php b/test/model/program/getbudgetunitlist.php new file mode 100755 index 0000000000..da5d8b87c8 --- /dev/null +++ b/test/model/program/getbudgetunitlist.php @@ -0,0 +1,16 @@ +#!/usr/bin/env php +loadConfig('project'); +$app->loadLang('project'); +$program = $tester->loadModel('program'); +r($program->getBudgetUnitList()) && p() && e(''); //aaa diff --git a/test/model/program/getbyid.php b/test/model/program/getbyid.php index ccc27cc86d..f8aa954c07 100755 --- a/test/model/program/getbyid.php +++ b/test/model/program/getbyid.php @@ -2,15 +2,38 @@ program = $tester->loadModel('program'); + } + + public function getById($programID) + { + if(empty($this->program->getById($programID))) + { + return array('code' => 'fail', 'message' => 'Not Found'); + } + else + { + return $this->program->getById($programID); + } + } +} + +$t = new Tester('admin'); + /** title=测试 programModel::getById(); cid=1 pid=1 -通过id字段获取存在的项目集 >> 测试项目集1 - */ -$program = $tester->loadModel('program'); -r($program->getById(1)) && p('name') && e('测试项目集1'); // 通过id字段获取存在的项目集 \ No newline at end of file +r($t->getById(1)) && p('name') && e('项目集1'); // 通过id字段获取id=1的项目集并验证它的name。 +r($t->getById(1000)) && p('message') && e('Not Found'); // 通过id字段获取id=1000的项目集并验证它的name。 diff --git a/test/model/program/getchildren.php b/test/model/program/getchildren.php new file mode 100755 index 0000000000..62cce707ed --- /dev/null +++ b/test/model/program/getchildren.php @@ -0,0 +1,41 @@ +#!/usr/bin/env php +program = $tester->loadModel('program'); + } + + public function getChildren($programID) + { + $programInfo = $this->program->getChildren($programID); + if(empty($programInfo)) + { + return array('code' => 'fail' , 'message' => 'Not Found'); + } + else + { + return $programInfo; + } + } +} + +$t = new Tester('admin'); + +/** + +title=测试 programModel:: getChildren(); +cid=1 +pid=1 + +*/ + +r($t->getChildren(1)) && p() && e('9'); // 通过id查找id=1的子项目集个数 +r($t->getChildren(220)) && p() && e('5'); // 通过id查找id=220的子项目集个数 +r($t->getChildren(221)) && p('message') && e('Not Found'); // 通过id查找id=221的子项目集个数 diff --git a/test/model/program/getinvolvedprograms.php b/test/model/program/getinvolvedprograms.php new file mode 100755 index 0000000000..e3c04a8cab --- /dev/null +++ b/test/model/program/getinvolvedprograms.php @@ -0,0 +1,14 @@ +#!/usr/bin/env php +loadModel('program'); +r($program->getInvolvedPrograms('admin')) && p() && e(''); // 通过id字段获取存在的项目集 diff --git a/test/model/program/getkanbangroup.php b/test/model/program/getkanbangroup.php new file mode 100755 index 0000000000..60decbdf45 --- /dev/null +++ b/test/model/program/getkanbangroup.php @@ -0,0 +1,19 @@ +#!/usr/bin/env php +loadModel('program'); + +$result = 'Not Found'; +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 new file mode 100755 index 0000000000..15215a7363 --- /dev/null +++ b/test/model/program/getlist.php @@ -0,0 +1,50 @@ +#!/usr/bin/env php +program = $tester->loadModel('program'); + } + + public function getListByStatus($status) + { + $this->program->cookie->showClosed = ture; + $programs = $this->program->getList($status); + if(!$programs) return 0; + foreach($programs as $program) + { + if($program->status != $status and $status != 'all') return 0; + } + return count($programs); + } + + public function getListByOrder($orderBy) + { + $programs = $this->program->getList('all', $orderBy); + return checkOrder($programs, $orderBy); + } +} + +$t = new Tester('admin'); + +/** + +title=测试 programModel::getList(); +cid=1 +pid=1 + + +*/ +a($t->getListByOrder('id_asc')); +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'的项目和项目集的个数 diff --git a/test/model/program/getpairs.php b/test/model/program/getpairs.php new file mode 100755 index 0000000000..eec299649c --- /dev/null +++ b/test/model/program/getpairs.php @@ -0,0 +1,41 @@ +#!/usr/bin/env php +program = $tester->loadModel('program'); + } + + public function getPairs() + { + $programs = $this->program->getPairs(); + if(!$programs) return 0; + return $programs; + } + + public function getCount() + { + return count($this->program->getPairs()); + } +} + +$t = new Tester('admin'); + +/** + +title=测试 programModel::getPairs(); +cid=1 +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('11') && e(''); // 获取不存在的项目集id/name 的关联数组 diff --git a/test/model/program/getpairsbylist.php b/test/model/program/getpairsbylist.php new file mode 100755 index 0000000000..e7b3fbf075 --- /dev/null +++ b/test/model/program/getpairsbylist.php @@ -0,0 +1,45 @@ +#!/usr/bin/env php +program = $tester->loadModel('program'); + } + + public function getPairsByList($programIDList = '') + { + if(empty($this->program->getPairsByList($programIDList))) + { + return array('code' => 'fail', 'message' => 'Not Found'); + } + else + { + return $this->program->getPairsByList($programIDList); + } + } +} + +$t = new Tester('admin'); + +/** + +title=测试 programModel::getPairsByList(); +cid=1 +pid=1 + +*/ + +r($t->getPairsByList('1')) && p('1') && e('项目集1'); // 通过字符串'1'获取项目集名称 +r($t->getPairsByList('1,2,3')) && p('1,2,3') && e('项目集1,项目集2,项目集3'); // 通过字符串'1,2,3'获取项目集名称 +r($t->getPairsByList(array(1))) && p('1') && e('项目集1');//通过数组array(1)获取项目集名称 +r($t->getPairsByList(array(1,2,3))) && p('1,2,3') && e('项目集1,项目集2,项目集3');//通过数组array(1,2,3)获取项目集名称 +r($t->getPairsByList()) && p('message') && e('Not Found');// 通过id为空获取项目集名称 +r($t->getPairsByList('0')) && p('message') && e('Not Found');// 通过id=0获取项目集名称 +r($t->getPairsByList('11')) && p('message') && e('Not Found');// 通过id=11获取项目集名称 + diff --git a/test/model/program/getparentpairs.php b/test/model/program/getparentpairs.php new file mode 100755 index 0000000000..ffed1828fe --- /dev/null +++ b/test/model/program/getparentpairs.php @@ -0,0 +1,16 @@ +#!/usr/bin/env php +loadModel('program'); +r($program->getParentPairs()) && p('1') && e(''); // 获取父项目集 diff --git a/test/model/program/getparentpm.php b/test/model/program/getparentpm.php new file mode 100755 index 0000000000..9f087b9dab --- /dev/null +++ b/test/model/program/getparentpm.php @@ -0,0 +1,16 @@ +#!/usr/bin/env php +loadModel('program'); +r($program->getParentPM()) && p() && e(''); // diff --git a/test/model/program/getproductpairs.php b/test/model/program/getproductpairs.php new file mode 100755 index 0000000000..f61aba40e5 --- /dev/null +++ b/test/model/program/getproductpairs.php @@ -0,0 +1,15 @@ +#!/usr/bin/env php +loadModel('program'); +r($program->getProductPairs('1', 'assign', 'all')) && p() && e(''); // diff --git a/test/model/program/getprogresslist.php b/test/model/program/getprogresslist.php new file mode 100755 index 0000000000..40d7267e79 --- /dev/null +++ b/test/model/program/getprogresslist.php @@ -0,0 +1,38 @@ +#!/usr/bin/env php +program = $tester->loadModel('program'); + } + + public function getProgressList() + { + return $this->program->getProgressList(); + } + + public function getCount() + { + return count($this->program->getProgressList()); + } +} + +$t = new Tester('admin'); + +/** + +title=测试 programModee::getProgressList(); +cid=1 +pid=1 + +*/ + +r($t->getCount()) && p() && e('100'); // 获取项目和项目集的个数 +r($t->getProgressList()) && p('1') && e('0'); // 获取id=1的项目的进度 +r($t->getProgressList()) && p('11') && e('0'); // 获取id=11的项目集的进度 diff --git a/test/model/program/getprojectlist.php b/test/model/program/getprojectlist.php new file mode 100755 index 0000000000..6a28baa664 --- /dev/null +++ b/test/model/program/getprojectlist.php @@ -0,0 +1,14 @@ +#!/usr/bin/env php +loadModel('program'); +r($program->getProjectList()) && p() && e(''); // 通过id字段获取存在的项目集 diff --git a/test/model/program/getprojectstats.php b/test/model/program/getprojectstats.php new file mode 100755 index 0000000000..f57b9d7561 --- /dev/null +++ b/test/model/program/getprojectstats.php @@ -0,0 +1,14 @@ +#!/usr/bin/env php +loadModel('program'); +r($program->getProjectStats()) && p() && e(''); // diff --git a/test/model/program/getstakeholders.php b/test/model/program/getstakeholders.php new file mode 100755 index 0000000000..d3769e0d36 --- /dev/null +++ b/test/model/program/getstakeholders.php @@ -0,0 +1,14 @@ +#!/usr/bin/env php +loadModel('program'); +r($program->getStakeholders()) && p() && e(''); // 通过id字段获取存在的项目集 diff --git a/test/model/program/getstakeholdersbyprograms.php b/test/model/program/getstakeholdersbyprograms.php new file mode 100755 index 0000000000..fed499aaab --- /dev/null +++ b/test/model/program/getstakeholdersbyprograms.php @@ -0,0 +1,14 @@ +#!/usr/bin/env php +loadModel('program'); +r($program->getStakeholdersByPrograms()) && p() && e(''); // diff --git a/test/model/program/getteammemberpairs.php b/test/model/program/getteammemberpairs.php new file mode 100755 index 0000000000..0f5c18017c --- /dev/null +++ b/test/model/program/getteammemberpairs.php @@ -0,0 +1,14 @@ +#!/usr/bin/env php +loadModel('program'); +r($program->getTeamMemberPairs()) && p() && e(''); // diff --git a/test/model/program/gettopbyid.php b/test/model/program/gettopbyid.php new file mode 100755 index 0000000000..95dbd61729 --- /dev/null +++ b/test/model/program/gettopbyid.php @@ -0,0 +1,15 @@ +#!/usr/bin/env php +loadModel('program'); +a($program->getTopByID(1)); +r($program->getTopByID(1)) && p() && e(''); // diff --git a/test/model/program/gettoppairs.php b/test/model/program/gettoppairs.php new file mode 100755 index 0000000000..5ad547588d --- /dev/null +++ b/test/model/program/gettoppairs.php @@ -0,0 +1,15 @@ +#!/usr/bin/env php +loadModel('program'); +a($program->getTopPairs()); +r($program->getTopPairs()) && p() && e(''); // diff --git a/test/model/program/hasunfinished.php b/test/model/program/hasunfinished.php new file mode 100755 index 0000000000..0a8e5cc6ff --- /dev/null +++ b/test/model/program/hasunfinished.php @@ -0,0 +1,15 @@ +#!/usr/bin/env php +loadModel('program'); +$programInfo = $program->getById(1); +r($program->hasUnfinished($programInfo)) && p() && e(''); // 通过id字段获取存在的项目集 diff --git a/test/model/program/processnode.php b/test/model/program/processnode.php new file mode 100755 index 0000000000..5e60023d1c --- /dev/null +++ b/test/model/program/processnode.php @@ -0,0 +1,14 @@ +#!/usr/bin/env php +loadModel('program'); +r($program->processNode(1, 0, 1, 1)) && p() && e(''); // diff --git a/test/model/program/settreepath.php b/test/model/program/settreepath.php new file mode 100755 index 0000000000..6bb94d500f --- /dev/null +++ b/test/model/program/settreepath.php @@ -0,0 +1,15 @@ +#!/usr/bin/env php +loadModel('program'); +r($program->setTreePath(11)) && p() && e('1'); // 设置id=11的项目集的path +r($program->getById(11)) && p('path') && e('11,'); // 查找id=11的项目集的path diff --git a/test/model/program/update.php b/test/model/program/update.php new file mode 100755 index 0000000000..173f0978f2 --- /dev/null +++ b/test/model/program/update.php @@ -0,0 +1,68 @@ +#!/usr/bin/env php +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) + { + case '1': // 项目集名称已经存在时 + $data['name'] = '项目集1'; + break; + case '2': // 当计划开始为空时更新项目集信息 + $data['begin'] = ''; + break; + case '3': // 当计划完成为空时更新项目集信息 + $data['end'] = ''; + break; + case '4': // 当计划完成小于计划开始时 + $data['end'] = '2020-01-01'; + break; + case '5': // 项目集开始时间小于父项目集时 + $data['parent'] = '9'; + $data['begin'] = '2019-01-01'; + break; + default: // 更新id为10的项目集信息 + } + + return update($programID, $data); +} + +/** + +title=测试 programModel::update($programID); +cid=1 +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,完成日期不能大于父项目集的完成日期');// 项目集开始时间小于父项目集时