From 82e18ab5ec114eb12d92938f6eec1092618a1ac4 Mon Sep 17 00:00:00 2001 From: zhangxuwen Date: Sat, 2 Apr 2022 11:05:40 +0800 Subject: [PATCH 1/3] auto test cron model --- test/class/caselib.class.php | 105 ++++++++++ test/class/cron.class.php | 254 ++++++++++++++++++++++++ test/model/cron/changestatus.php | 24 +++ test/model/cron/changestatusrunning.php | 24 +++ test/model/cron/checkchange.php | 17 ++ test/model/cron/checkrule.php | 46 +++++ test/model/cron/create.php | 34 ++++ test/model/cron/getbyid.php | 20 ++ test/model/cron/getconfigid.php | 18 ++ test/model/cron/getcrons.php | 21 ++ test/model/cron/getlasttime.php | 18 ++ test/model/cron/getturnon.php | 18 ++ test/model/cron/logcron.php | 23 +++ test/model/cron/markcronstatus.php | 29 +++ test/model/cron/parsecron.php | 22 ++ test/model/cron/runable.php | 37 ++++ test/model/cron/update.php | 36 ++++ test/ztest | 6 + 18 files changed, 752 insertions(+) create mode 100644 test/class/cron.class.php create mode 100644 test/model/cron/changestatus.php create mode 100644 test/model/cron/changestatusrunning.php create mode 100644 test/model/cron/checkchange.php create mode 100644 test/model/cron/checkrule.php create mode 100644 test/model/cron/create.php create mode 100644 test/model/cron/getbyid.php create mode 100644 test/model/cron/getconfigid.php create mode 100644 test/model/cron/getcrons.php create mode 100644 test/model/cron/getlasttime.php create mode 100644 test/model/cron/getturnon.php create mode 100644 test/model/cron/logcron.php create mode 100644 test/model/cron/markcronstatus.php create mode 100644 test/model/cron/parsecron.php create mode 100644 test/model/cron/runable.php create mode 100644 test/model/cron/update.php diff --git a/test/class/caselib.class.php b/test/class/caselib.class.php index 3c7ce07afc..19523316be 100644 --- a/test/class/caselib.class.php +++ b/test/class/caselib.class.php @@ -7,6 +7,14 @@ class caselibTest $this->objectModel = $tester->loadModel('caselib'); } + /** + * Set lib menu test. + * + * @param mixed $libraries + * @param mixed $libID + * @access public + * @return void + */ public function setLibMenuTest($libraries, $libID) { $objects = $this->objectModel->setLibMenu($libraries, $libID); @@ -16,6 +24,14 @@ class caselibTest return $objects; } + /** + * Save lib state test. + * + * @param int $libID + * @param array $libraries + * @access public + * @return void + */ public function saveLibStateTest($libID = 0, $libraries = array()) { $objects = $this->objectModel->saveLibState($libID, $libraries); @@ -25,6 +41,14 @@ class caselibTest return $objects; } + /** + * Get by ID test. + * + * @param mixed $libID + * @param mixed $setImgSize + * @access public + * @return void + */ public function getByIdTest($libID, $setImgSize = false) { $objects = $this->objectModel->getById($libID, $setImgSize); @@ -34,6 +58,13 @@ class caselibTest return $objects; } + /** + * Update test. + * + * @param mixed $libID + * @access public + * @return void + */ public function updateTest($libID) { $objects = $this->objectModel->update($libID); @@ -45,6 +76,14 @@ class caselibTest return $objects; } + /** + * Delete test. + * + * @param mixed $libID + * @param string $table + * @access public + * @return void + */ public function deleteTest($libID, $table = '') { $objects = $this->objectModel->delete($libID, $table); @@ -56,6 +95,12 @@ class caselibTest return $objects; } + /** + * Get libraries test. + * + * @access public + * @return void + */ public function getLibrariesTest() { $objects = $this->objectModel->getLibraries(); @@ -65,6 +110,14 @@ class caselibTest return $objects; } + /** + * Get list test. + * + * @param string $orderBy + * @param mixed $pager + * @access public + * @return void + */ public function getListTest($orderBy = 'id_desc', $pager = null) { $objects = $this->objectModel->getList($orderBy, $pager); @@ -74,6 +127,13 @@ class caselibTest return $objects; } + /** + * Create test. + * + * @param mixed $param + * @access public + * @return void + */ public function createTest($param) { foreach($param as $k => $v) $_POST[$k] = $v; @@ -87,6 +147,18 @@ class caselibTest return $objects; } + /** + * Get libcases test. + * + * @param mixed $libID + * @param mixed $browseType + * @param int $queryID + * @param int $moduleID + * @param string $sort + * @param mixed $pager + * @access public + * @return void + */ public function getLibCasesTest($libID, $browseType, $queryID = 0, $moduleID = 0, $sort = 'id_desc', $pager = null) { $objects = $this->objectModel->getLibCases($libID, $browseType, $queryID, $moduleID, $sort, $pager); @@ -96,6 +168,16 @@ class caselibTest return $objects; } + /** + * Build searchform test. + * + * @param mixed $libID + * @param mixed $libraries + * @param mixed $queryID + * @param mixed $actionURL + * @access public + * @return void + */ public function buildSearchFormTest($libID, $libraries, $queryID, $actionURL) { $objects = $this->objectModel->buildSearchForm($libID, $libraries, $queryID, $actionURL); @@ -105,6 +187,15 @@ class caselibTest return $objects; } + /** + * Get liblink test. + * + * @param mixed $module + * @param mixed $method + * @param mixed $extra + * @access public + * @return void + */ public function getLibLinkTest($module, $method, $extra) { $objects = $this->objectModel->getLibLink($module, $method, $extra); @@ -114,6 +205,13 @@ class caselibTest return $objects; } + /** + * Create from import test. + * + * @param mixed $libID + * @access public + * @return void + */ public function createFromImportTest($libID) { $objects = $this->objectModel->createFromImport($libID); @@ -123,6 +221,13 @@ class caselibTest return $objects; } + /** + * Batch create case test. + * + * @param mixed $libID + * @access public + * @return void + */ public function batchCreateCaseTest($libID) { $objects = $this->objectModel->batchCreateCase($libID); diff --git a/test/class/cron.class.php b/test/class/cron.class.php new file mode 100644 index 0000000000..ae7fefe66d --- /dev/null +++ b/test/class/cron.class.php @@ -0,0 +1,254 @@ +objectModel = $tester->loadModel('cron'); + } + + /** + * Get by id test. + * + * @param int $cronID + * @access public + * @return object + */ + public function getByIdTest($cronID) + { + $objects = $this->objectModel->getById($cronID); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Get crons test. + * + * @param string $params + * @access public + * @return array + */ + public function getCronsTest($params = '') + { + $objects = $this->objectModel->getCrons($params); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Parse crons test. + * + * @param array $crons + * @access public + * @return array + */ + public function parseCronTest($crons) + { + $objects = $this->objectModel->parseCron($crons); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Change cron status test. + * + * @param int $cronID + * @param string $status + * @param bool $changeTime + * @access public + * @return bool + */ + public function changeStatusTest($cronID, $status, $changeTime = false) + { + $objects = $this->objectModel->changeStatus($cronID, $status, $changeTime); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Change cron status to running test. + * + * @param int $cronID + * @param string $lastTime + * @access public + * @return bool|int + */ + public function changeStatusRunningTest($cronID, $lastTime) + { + $objects = $this->objectModel->changeStatusRunning($cronID, $lastTime); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Log cron test. + * + * @param string $log + * @access public + * @return void + */ + public function logCronTest($log) + { + $objects = $this->objectModel->logCron($log); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Get last execed time test. + * + * @access public + * @return string + */ + public function getLastTimeTest() + { + $objects = $this->objectModel->getLastTime(); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Runable cron test. + * + * @access public + * @return bool + */ + public function runableTest() + { + $objects = $this->objectModel->runable(); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Check change cron test. + * + * @access public + * @return bool + */ + public function checkChangeTest() + { + $objects = $this->objectModel->checkChange(); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Create cron test. + * + * @param array $param + * @access public + * @return int + */ + public function createTest($param) + { + foreach($param as $k => $v) $_POST[$k] = $v; + $cronID = $this->objectModel->create(); + unset($_POST); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getById($cronID); + return $objects; + } + + /** + * Update cron test. + * + * @param int $cronID + * @access public + * @return bool + */ + public function updateTest($cronID, $param) + { + foreach($param as $k => $v) $_POST[$k] = $v; + $objects = $this->objectModel->update($cronID); + unset($_POST); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getById($cronID); + return $objects; + } + + /** + * Check cron rule test. + * + * @param object $cron + * @access public + * @return string + */ + public function checkRuleTest($cron) + { + $objects = $this->objectModel->checkRule($cron); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Mark cron status test. + * + * @param mixed $status + * @param int $configID + * @access public + * @return void + */ + public function markCronStatusTest($status, $configID = 0) + { + $objects = $this->objectModel->markCronStatus($status, $configID); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Get config id test. + * + * @access public + * @return void + */ + public function getConfigIDTest() + { + $objects = $this->objectModel->getConfigID(); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Get current cron status test. + * + * @access public + * @return int + */ + public function getTurnonTest() + { + $objects = $this->objectModel->getTurnon(); + + if(dao::isError()) return dao::getError(); + + return $objects; + } +} diff --git a/test/model/cron/changestatus.php b/test/model/cron/changestatus.php new file mode 100644 index 0000000000..0cc56a16f4 --- /dev/null +++ b/test/model/cron/changestatus.php @@ -0,0 +1,24 @@ +#!/usr/bin/env php +changeStatus(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$cronID = 1; +$status = 'stop'; +$result = $cron->changeStatusTest($cronID,$status); +$cronInfo = $tester->cron->getById($cronID); + +r($result) && p() && e('1'); //更新定时任务状态之后查看返回值 +r($cronInfo) && p('status') && e('stop'); //更新定时任务状态之后查看状态值 + +system('./ztest init'); diff --git a/test/model/cron/changestatusrunning.php b/test/model/cron/changestatusrunning.php new file mode 100644 index 0000000000..133ef80b9a --- /dev/null +++ b/test/model/cron/changestatusrunning.php @@ -0,0 +1,24 @@ +#!/usr/bin/env php +changeStatusRunning(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$cronID = 4; +$lastTime = '0000-00-00 00:00:00'; +$result = $cron->changeStatusRunningTest($cronID, $lastTime); +$cronInfo = $tester->cron->getById($cronID); + +r($result) && p() && e('1'); // 更新之后查看返回值是否是1 +r($cronInfo) && p('status') && e('running'); // 更新之后查看状态值是否是running + +system('./ztest init'); diff --git a/test/model/cron/checkchange.php b/test/model/cron/checkchange.php new file mode 100644 index 0000000000..9307c2cf22 --- /dev/null +++ b/test/model/cron/checkchange.php @@ -0,0 +1,17 @@ +#!/usr/bin/env php +checkChange(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); + +r($cron->checkChangeTest()) && p() && e('1'); //判断是否存在时间是0000-00-00 00:00:00状态不是stop的定时任务存在 diff --git a/test/model/cron/checkrule.php b/test/model/cron/checkrule.php new file mode 100644 index 0000000000..f3b893afb0 --- /dev/null +++ b/test/model/cron/checkrule.php @@ -0,0 +1,46 @@ +#!/usr/bin/env php +checkRule(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$cron1 = new stdClass(); +$cron1->m = '55x'; +$res1 = $cron->checkRuleTest($cron1); + +$cron1->m = '55'; +$cron1->h = '23x'; +$res2 = $cron->checkRuleTest($cron1); + +$cron1->h = '23'; +$cron1->dom = '30x'; +$res3 = $cron->checkRuleTest($cron1); + +$cron1->dom = '30'; +$cron1->mon = '12x'; +$res4 = $cron->checkRuleTest($cron1); + +$cron1->mon = '12'; +$cron1->dow = '6x'; +$res5 = $cron->checkRuleTest($cron1); + +$cron1->dow = '6'; +$cron1->command = ''; +$res6 = $cron->checkRuleTest($cron1); + +r($res1) && p() && e('"分" 填写的不是合法的值'); // 定时任务'分'填写不正确情况 +r($res2) && p() && e('"小时" 填写的不是合法的值') // 定时任务'小时'填写不正确情况 +r($res3) && p() && e('"天" 填写的不是合法的值'); // 定时任务'天'填写不正确情况 +r($res4) && p() && e('"月" 填写的不是合法的值'); // 定时任务'月'填写不正确情况 +r($res5) && p() && e('"周" 填写的不是合法的值'); // 定时任务'周'填写不正确情况 +r($res6) && p() && e('『命令』不能为空。'); // 定时任务'命令'填写不正确情况 + diff --git a/test/model/cron/create.php b/test/model/cron/create.php new file mode 100644 index 0000000000..208b418dd9 --- /dev/null +++ b/test/model/cron/create.php @@ -0,0 +1,34 @@ +#!/usr/bin/env php +create(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$cron1 = new stdClass(); +$cron1->m = '55'; +$cron1->h = '23'; +$cron1->dom = '30'; +$cron1->mon = '12'; +$cron1->dow = '6'; +$cron1->remark = ''; +$cron1->type = 'zentao' ; +$cron1->command = ''; +$result1 = $cron->createTest($cron1); + +$cron1->command = 'test comand'; +$result2 = $cron->createTest($cron1); + +r($result1[0]) && p() && e('『命令』不能为空'); //命令为空时候返回值 +r($result2) && p('command,type') && e('test comand,zentao');//添加之后对比添加数据信息 +r($result2) && p('m,h,dom,mon,dow') && e('55,23,30,12,6'); //添加之后对比添加数据信息 + +system('./ztest init'); diff --git a/test/model/cron/getbyid.php b/test/model/cron/getbyid.php new file mode 100644 index 0000000000..72643ba684 --- /dev/null +++ b/test/model/cron/getbyid.php @@ -0,0 +1,20 @@ +#!/usr/bin/env php +getById(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$cronInfo1 = $cron->getByIdTest(2); +$cronInfo2 = $cron->getByIdTest(16); + +r($cronInfo1) && p('command,remark,m,h,status') && e('moduleName=execution&methodName=computeburn,更新燃尽图,30,23,normal'); //获取ID为2的定时的命令,备注,分,时 +r($cronInfo2) && p('command,remark,m,h,status') && e('moduleName=effort&methodName=remindNotRecord,提醒录入日志,30,7,stop'); //获取ID为16的定时的命令,备注,分,时 diff --git a/test/model/cron/getconfigid.php b/test/model/cron/getconfigid.php new file mode 100644 index 0000000000..3f575037df --- /dev/null +++ b/test/model/cron/getconfigid.php @@ -0,0 +1,18 @@ +#!/usr/bin/env php +getConfigID(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$id = $cron->getConfigIDTest(); + +r($id) && p() && e('19'); //查询cron的configID,目前内置的是19 diff --git a/test/model/cron/getcrons.php b/test/model/cron/getcrons.php new file mode 100644 index 0000000000..f54edad96c --- /dev/null +++ b/test/model/cron/getcrons.php @@ -0,0 +1,21 @@ +#!/usr/bin/env php +getCrons(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$list = $cron->getCronsTest(); +$noStopList = $cron->getCronsTest('nostop'); + +r(count($list)) && p() && e('19'); // 没有筛选条件时候,获取所有定时任务 +r(count($noStopList)) && p() && e('16'); // 有筛选条件时候,获取定时任务 +r($list) && p('12:remark,command') && e('同步Jenkins任务状态,moduleName=ci&methodName=checkCompileStatus'); // 获取某个定时任务的信息 diff --git a/test/model/cron/getlasttime.php b/test/model/cron/getlasttime.php new file mode 100644 index 0000000000..385076195a --- /dev/null +++ b/test/model/cron/getlasttime.php @@ -0,0 +1,18 @@ +#!/usr/bin/env php +getLastTime(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$lastTime = $cron->getLastTimeTest(); + +r($lastTime) && p() && e('2022-04-01 13:42:45'); //获取最后执行时间进行对比 diff --git a/test/model/cron/getturnon.php b/test/model/cron/getturnon.php new file mode 100644 index 0000000000..305bb6502b --- /dev/null +++ b/test/model/cron/getturnon.php @@ -0,0 +1,18 @@ +#!/usr/bin/env php +getTurnon(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$value = $cron->getTurnonTest(); + +r($value) && p() && e('1'); //查询定时任务配置是否开启 diff --git a/test/model/cron/logcron.php b/test/model/cron/logcron.php new file mode 100644 index 0000000000..0d51e9175e --- /dev/null +++ b/test/model/cron/logcron.php @@ -0,0 +1,23 @@ +#!/usr/bin/env php +logCron(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$file = $tester->app->getLogRoot() . 'cron.' . date('Ymd') . '.log.php'; +if(is_file($file)) unlink($file); + +$cron->logCronTest('cronlogtest'); +$info = file_get_contents($file); +$strExists = strpos($info,'cronlogtest'); + +r($strExists) && p() && e('14');// 调用日志方法查看日志文件该字符串位置 diff --git a/test/model/cron/markcronstatus.php b/test/model/cron/markcronstatus.php new file mode 100644 index 0000000000..050af6a8c9 --- /dev/null +++ b/test/model/cron/markcronstatus.php @@ -0,0 +1,29 @@ +#!/usr/bin/env php +markCronStatus(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$id = $tester->cron->getConfigID(); +$configID = $cron->markCronStatusTest('stop', $id); +$config1 = $tester->dao->select('*')->from(TABLE_CONFIG)->where('id')->eq($configID)->fetch(); + +$tester->dao->delete()->from(TABLE_CONFIG)->where('id')->eq($configID)->exec(); +$configID = $cron->markCronStatusTest('run'); +$config2 = $tester->dao->select('*')->from(TABLE_CONFIG)->where('id')->eq($configID)->fetch(); + +$tester->dao->update(TABLE_CONFIG)->set('id')->eq($id)->where('id')->eq($configID)->exec(); + +r($config1) && p('value') && e('stop'); //修改配置项之后查看更新信息 +r($config2) && p('value') && e('run'); //修改配置项之后查看更新信息 + +system('./ztest init'); diff --git a/test/model/cron/parsecron.php b/test/model/cron/parsecron.php new file mode 100644 index 0000000000..bfcb7151ab --- /dev/null +++ b/test/model/cron/parsecron.php @@ -0,0 +1,22 @@ +#!/usr/bin/env php +parseCron(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$crons = $tester->cron->getCrons('nostop'); +$parse = $cron->parseCronTest($crons); + +r($parse) && p('19:schema,command') && e('*/5 * * * *,moduleName=measurement&methodName=execCrontabQueue');//获取id为19的定时任务的定时信息和命令信息 +r($parse) && p('15:schema,command') && e('30 23 * * *,moduleName=execution&methodName=computeTaskEffort'); //获取id为15的定时任务的定时信息和命令信息 + +system('./ztest init'); diff --git a/test/model/cron/runable.php b/test/model/cron/runable.php new file mode 100644 index 0000000000..8e39324edf --- /dev/null +++ b/test/model/cron/runable.php @@ -0,0 +1,37 @@ +#!/usr/bin/env php +runable(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); + +$tester->config->global->cron = 0; +$res1 = $cron->runableTest(); + +$tester->config->global->cron = 1; +$res2 = $cron->runableTest(); + +$tester->config->cron->maxRunTime = PHP_INT_MAX; +unset($tester->config->cron->run->status); +$res3 = $cron->runableTest(); + +$tester->config->cron->run->status = 'stop'; +$res4 = $cron->runableTest(); + +$tester->config->cron->run->status = 'running'; +$res5 = $cron->runableTest(); + +r($res1) && p() && e('0'); //cron配置为空情况 +r($res2) && p() && e('1'); //cron配置存在,执行时间大于最大可执行时间情况 +r($res3) && p() && e('1'); //cron状态为空情况 +r($res4) && p() && e('1'); //cron状态是stop情况 +r($res5) && p() && e('0'); //cron状态存在不是stop情况 diff --git a/test/model/cron/update.php b/test/model/cron/update.php new file mode 100644 index 0000000000..f89fdfda33 --- /dev/null +++ b/test/model/cron/update.php @@ -0,0 +1,36 @@ +#!/usr/bin/env php +update(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$cronID = 1; +$cron1 = new stdClass(); +$cron1->m = '55'; +$cron1->h = '23'; +$cron1->dom = '30'; +$cron1->mon = '12'; +$cron1->dow = '6'; +$cron1->remark = ''; +$cron1->type = 'zentao' ; +$cron1->command = ''; +$result1 = $cron->updateTest($cronID, $cron1); + +$cron1->command = 'test comand'; +$result2 = $cron->updateTest($cronID, $cron1); + + +r($result1[0]) && p() && e('『命令』不能为空'); //命令为空时候返回值 +r($result2) && p('command,type') && e('test comand,zentao');//更新之后对比更新数据信息 +r($result2) && p('m,h,dom,mon,dow') && e('55,23,30,12,6'); //更新之后对比更新数据信息 + +system('./ztest init'); diff --git a/test/ztest b/test/ztest index 0eacb5393e..e2751a5993 100755 --- a/test/ztest +++ b/test/ztest @@ -58,6 +58,12 @@ switch($argv[1]) case 'kanban': ztfRun('model/kanban'); break; + case 'caselib': + ztfRun('model/caselib'); + break; + case 'cron': + ztfRun('model/cron'); + break; case 'model': ztfRun('model'); break; From c2b4f5d8b3c9a81a2316f5ec98c5111ee8a67e03 Mon Sep 17 00:00:00 2001 From: zhangxuwen Date: Sat, 2 Apr 2022 11:05:40 +0800 Subject: [PATCH 2/3] auto test cron model --- test/class/caselib.class.php | 105 ++++++++++ test/class/cron.class.php | 254 ++++++++++++++++++++++++ test/model/cron/changestatus.php | 24 +++ test/model/cron/changestatusrunning.php | 24 +++ test/model/cron/checkchange.php | 17 ++ test/model/cron/checkrule.php | 46 +++++ test/model/cron/create.php | 34 ++++ test/model/cron/getbyid.php | 20 ++ test/model/cron/getconfigid.php | 18 ++ test/model/cron/getcrons.php | 21 ++ test/model/cron/getlasttime.php | 18 ++ test/model/cron/getturnon.php | 18 ++ test/model/cron/logcron.php | 23 +++ test/model/cron/markcronstatus.php | 29 +++ test/model/cron/parsecron.php | 22 ++ test/model/cron/runable.php | 37 ++++ test/model/cron/update.php | 36 ++++ test/ztest | 6 + 18 files changed, 752 insertions(+) create mode 100644 test/class/cron.class.php create mode 100644 test/model/cron/changestatus.php create mode 100644 test/model/cron/changestatusrunning.php create mode 100644 test/model/cron/checkchange.php create mode 100644 test/model/cron/checkrule.php create mode 100644 test/model/cron/create.php create mode 100644 test/model/cron/getbyid.php create mode 100644 test/model/cron/getconfigid.php create mode 100644 test/model/cron/getcrons.php create mode 100644 test/model/cron/getlasttime.php create mode 100644 test/model/cron/getturnon.php create mode 100644 test/model/cron/logcron.php create mode 100644 test/model/cron/markcronstatus.php create mode 100644 test/model/cron/parsecron.php create mode 100644 test/model/cron/runable.php create mode 100644 test/model/cron/update.php diff --git a/test/class/caselib.class.php b/test/class/caselib.class.php index 3c7ce07afc..19523316be 100644 --- a/test/class/caselib.class.php +++ b/test/class/caselib.class.php @@ -7,6 +7,14 @@ class caselibTest $this->objectModel = $tester->loadModel('caselib'); } + /** + * Set lib menu test. + * + * @param mixed $libraries + * @param mixed $libID + * @access public + * @return void + */ public function setLibMenuTest($libraries, $libID) { $objects = $this->objectModel->setLibMenu($libraries, $libID); @@ -16,6 +24,14 @@ class caselibTest return $objects; } + /** + * Save lib state test. + * + * @param int $libID + * @param array $libraries + * @access public + * @return void + */ public function saveLibStateTest($libID = 0, $libraries = array()) { $objects = $this->objectModel->saveLibState($libID, $libraries); @@ -25,6 +41,14 @@ class caselibTest return $objects; } + /** + * Get by ID test. + * + * @param mixed $libID + * @param mixed $setImgSize + * @access public + * @return void + */ public function getByIdTest($libID, $setImgSize = false) { $objects = $this->objectModel->getById($libID, $setImgSize); @@ -34,6 +58,13 @@ class caselibTest return $objects; } + /** + * Update test. + * + * @param mixed $libID + * @access public + * @return void + */ public function updateTest($libID) { $objects = $this->objectModel->update($libID); @@ -45,6 +76,14 @@ class caselibTest return $objects; } + /** + * Delete test. + * + * @param mixed $libID + * @param string $table + * @access public + * @return void + */ public function deleteTest($libID, $table = '') { $objects = $this->objectModel->delete($libID, $table); @@ -56,6 +95,12 @@ class caselibTest return $objects; } + /** + * Get libraries test. + * + * @access public + * @return void + */ public function getLibrariesTest() { $objects = $this->objectModel->getLibraries(); @@ -65,6 +110,14 @@ class caselibTest return $objects; } + /** + * Get list test. + * + * @param string $orderBy + * @param mixed $pager + * @access public + * @return void + */ public function getListTest($orderBy = 'id_desc', $pager = null) { $objects = $this->objectModel->getList($orderBy, $pager); @@ -74,6 +127,13 @@ class caselibTest return $objects; } + /** + * Create test. + * + * @param mixed $param + * @access public + * @return void + */ public function createTest($param) { foreach($param as $k => $v) $_POST[$k] = $v; @@ -87,6 +147,18 @@ class caselibTest return $objects; } + /** + * Get libcases test. + * + * @param mixed $libID + * @param mixed $browseType + * @param int $queryID + * @param int $moduleID + * @param string $sort + * @param mixed $pager + * @access public + * @return void + */ public function getLibCasesTest($libID, $browseType, $queryID = 0, $moduleID = 0, $sort = 'id_desc', $pager = null) { $objects = $this->objectModel->getLibCases($libID, $browseType, $queryID, $moduleID, $sort, $pager); @@ -96,6 +168,16 @@ class caselibTest return $objects; } + /** + * Build searchform test. + * + * @param mixed $libID + * @param mixed $libraries + * @param mixed $queryID + * @param mixed $actionURL + * @access public + * @return void + */ public function buildSearchFormTest($libID, $libraries, $queryID, $actionURL) { $objects = $this->objectModel->buildSearchForm($libID, $libraries, $queryID, $actionURL); @@ -105,6 +187,15 @@ class caselibTest return $objects; } + /** + * Get liblink test. + * + * @param mixed $module + * @param mixed $method + * @param mixed $extra + * @access public + * @return void + */ public function getLibLinkTest($module, $method, $extra) { $objects = $this->objectModel->getLibLink($module, $method, $extra); @@ -114,6 +205,13 @@ class caselibTest return $objects; } + /** + * Create from import test. + * + * @param mixed $libID + * @access public + * @return void + */ public function createFromImportTest($libID) { $objects = $this->objectModel->createFromImport($libID); @@ -123,6 +221,13 @@ class caselibTest return $objects; } + /** + * Batch create case test. + * + * @param mixed $libID + * @access public + * @return void + */ public function batchCreateCaseTest($libID) { $objects = $this->objectModel->batchCreateCase($libID); diff --git a/test/class/cron.class.php b/test/class/cron.class.php new file mode 100644 index 0000000000..ae7fefe66d --- /dev/null +++ b/test/class/cron.class.php @@ -0,0 +1,254 @@ +objectModel = $tester->loadModel('cron'); + } + + /** + * Get by id test. + * + * @param int $cronID + * @access public + * @return object + */ + public function getByIdTest($cronID) + { + $objects = $this->objectModel->getById($cronID); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Get crons test. + * + * @param string $params + * @access public + * @return array + */ + public function getCronsTest($params = '') + { + $objects = $this->objectModel->getCrons($params); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Parse crons test. + * + * @param array $crons + * @access public + * @return array + */ + public function parseCronTest($crons) + { + $objects = $this->objectModel->parseCron($crons); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Change cron status test. + * + * @param int $cronID + * @param string $status + * @param bool $changeTime + * @access public + * @return bool + */ + public function changeStatusTest($cronID, $status, $changeTime = false) + { + $objects = $this->objectModel->changeStatus($cronID, $status, $changeTime); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Change cron status to running test. + * + * @param int $cronID + * @param string $lastTime + * @access public + * @return bool|int + */ + public function changeStatusRunningTest($cronID, $lastTime) + { + $objects = $this->objectModel->changeStatusRunning($cronID, $lastTime); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Log cron test. + * + * @param string $log + * @access public + * @return void + */ + public function logCronTest($log) + { + $objects = $this->objectModel->logCron($log); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Get last execed time test. + * + * @access public + * @return string + */ + public function getLastTimeTest() + { + $objects = $this->objectModel->getLastTime(); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Runable cron test. + * + * @access public + * @return bool + */ + public function runableTest() + { + $objects = $this->objectModel->runable(); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Check change cron test. + * + * @access public + * @return bool + */ + public function checkChangeTest() + { + $objects = $this->objectModel->checkChange(); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Create cron test. + * + * @param array $param + * @access public + * @return int + */ + public function createTest($param) + { + foreach($param as $k => $v) $_POST[$k] = $v; + $cronID = $this->objectModel->create(); + unset($_POST); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getById($cronID); + return $objects; + } + + /** + * Update cron test. + * + * @param int $cronID + * @access public + * @return bool + */ + public function updateTest($cronID, $param) + { + foreach($param as $k => $v) $_POST[$k] = $v; + $objects = $this->objectModel->update($cronID); + unset($_POST); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getById($cronID); + return $objects; + } + + /** + * Check cron rule test. + * + * @param object $cron + * @access public + * @return string + */ + public function checkRuleTest($cron) + { + $objects = $this->objectModel->checkRule($cron); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Mark cron status test. + * + * @param mixed $status + * @param int $configID + * @access public + * @return void + */ + public function markCronStatusTest($status, $configID = 0) + { + $objects = $this->objectModel->markCronStatus($status, $configID); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Get config id test. + * + * @access public + * @return void + */ + public function getConfigIDTest() + { + $objects = $this->objectModel->getConfigID(); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Get current cron status test. + * + * @access public + * @return int + */ + public function getTurnonTest() + { + $objects = $this->objectModel->getTurnon(); + + if(dao::isError()) return dao::getError(); + + return $objects; + } +} diff --git a/test/model/cron/changestatus.php b/test/model/cron/changestatus.php new file mode 100644 index 0000000000..0cc56a16f4 --- /dev/null +++ b/test/model/cron/changestatus.php @@ -0,0 +1,24 @@ +#!/usr/bin/env php +changeStatus(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$cronID = 1; +$status = 'stop'; +$result = $cron->changeStatusTest($cronID,$status); +$cronInfo = $tester->cron->getById($cronID); + +r($result) && p() && e('1'); //更新定时任务状态之后查看返回值 +r($cronInfo) && p('status') && e('stop'); //更新定时任务状态之后查看状态值 + +system('./ztest init'); diff --git a/test/model/cron/changestatusrunning.php b/test/model/cron/changestatusrunning.php new file mode 100644 index 0000000000..133ef80b9a --- /dev/null +++ b/test/model/cron/changestatusrunning.php @@ -0,0 +1,24 @@ +#!/usr/bin/env php +changeStatusRunning(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$cronID = 4; +$lastTime = '0000-00-00 00:00:00'; +$result = $cron->changeStatusRunningTest($cronID, $lastTime); +$cronInfo = $tester->cron->getById($cronID); + +r($result) && p() && e('1'); // 更新之后查看返回值是否是1 +r($cronInfo) && p('status') && e('running'); // 更新之后查看状态值是否是running + +system('./ztest init'); diff --git a/test/model/cron/checkchange.php b/test/model/cron/checkchange.php new file mode 100644 index 0000000000..9307c2cf22 --- /dev/null +++ b/test/model/cron/checkchange.php @@ -0,0 +1,17 @@ +#!/usr/bin/env php +checkChange(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); + +r($cron->checkChangeTest()) && p() && e('1'); //判断是否存在时间是0000-00-00 00:00:00状态不是stop的定时任务存在 diff --git a/test/model/cron/checkrule.php b/test/model/cron/checkrule.php new file mode 100644 index 0000000000..f3b893afb0 --- /dev/null +++ b/test/model/cron/checkrule.php @@ -0,0 +1,46 @@ +#!/usr/bin/env php +checkRule(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$cron1 = new stdClass(); +$cron1->m = '55x'; +$res1 = $cron->checkRuleTest($cron1); + +$cron1->m = '55'; +$cron1->h = '23x'; +$res2 = $cron->checkRuleTest($cron1); + +$cron1->h = '23'; +$cron1->dom = '30x'; +$res3 = $cron->checkRuleTest($cron1); + +$cron1->dom = '30'; +$cron1->mon = '12x'; +$res4 = $cron->checkRuleTest($cron1); + +$cron1->mon = '12'; +$cron1->dow = '6x'; +$res5 = $cron->checkRuleTest($cron1); + +$cron1->dow = '6'; +$cron1->command = ''; +$res6 = $cron->checkRuleTest($cron1); + +r($res1) && p() && e('"分" 填写的不是合法的值'); // 定时任务'分'填写不正确情况 +r($res2) && p() && e('"小时" 填写的不是合法的值') // 定时任务'小时'填写不正确情况 +r($res3) && p() && e('"天" 填写的不是合法的值'); // 定时任务'天'填写不正确情况 +r($res4) && p() && e('"月" 填写的不是合法的值'); // 定时任务'月'填写不正确情况 +r($res5) && p() && e('"周" 填写的不是合法的值'); // 定时任务'周'填写不正确情况 +r($res6) && p() && e('『命令』不能为空。'); // 定时任务'命令'填写不正确情况 + diff --git a/test/model/cron/create.php b/test/model/cron/create.php new file mode 100644 index 0000000000..208b418dd9 --- /dev/null +++ b/test/model/cron/create.php @@ -0,0 +1,34 @@ +#!/usr/bin/env php +create(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$cron1 = new stdClass(); +$cron1->m = '55'; +$cron1->h = '23'; +$cron1->dom = '30'; +$cron1->mon = '12'; +$cron1->dow = '6'; +$cron1->remark = ''; +$cron1->type = 'zentao' ; +$cron1->command = ''; +$result1 = $cron->createTest($cron1); + +$cron1->command = 'test comand'; +$result2 = $cron->createTest($cron1); + +r($result1[0]) && p() && e('『命令』不能为空'); //命令为空时候返回值 +r($result2) && p('command,type') && e('test comand,zentao');//添加之后对比添加数据信息 +r($result2) && p('m,h,dom,mon,dow') && e('55,23,30,12,6'); //添加之后对比添加数据信息 + +system('./ztest init'); diff --git a/test/model/cron/getbyid.php b/test/model/cron/getbyid.php new file mode 100644 index 0000000000..72643ba684 --- /dev/null +++ b/test/model/cron/getbyid.php @@ -0,0 +1,20 @@ +#!/usr/bin/env php +getById(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$cronInfo1 = $cron->getByIdTest(2); +$cronInfo2 = $cron->getByIdTest(16); + +r($cronInfo1) && p('command,remark,m,h,status') && e('moduleName=execution&methodName=computeburn,更新燃尽图,30,23,normal'); //获取ID为2的定时的命令,备注,分,时 +r($cronInfo2) && p('command,remark,m,h,status') && e('moduleName=effort&methodName=remindNotRecord,提醒录入日志,30,7,stop'); //获取ID为16的定时的命令,备注,分,时 diff --git a/test/model/cron/getconfigid.php b/test/model/cron/getconfigid.php new file mode 100644 index 0000000000..3f575037df --- /dev/null +++ b/test/model/cron/getconfigid.php @@ -0,0 +1,18 @@ +#!/usr/bin/env php +getConfigID(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$id = $cron->getConfigIDTest(); + +r($id) && p() && e('19'); //查询cron的configID,目前内置的是19 diff --git a/test/model/cron/getcrons.php b/test/model/cron/getcrons.php new file mode 100644 index 0000000000..f54edad96c --- /dev/null +++ b/test/model/cron/getcrons.php @@ -0,0 +1,21 @@ +#!/usr/bin/env php +getCrons(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$list = $cron->getCronsTest(); +$noStopList = $cron->getCronsTest('nostop'); + +r(count($list)) && p() && e('19'); // 没有筛选条件时候,获取所有定时任务 +r(count($noStopList)) && p() && e('16'); // 有筛选条件时候,获取定时任务 +r($list) && p('12:remark,command') && e('同步Jenkins任务状态,moduleName=ci&methodName=checkCompileStatus'); // 获取某个定时任务的信息 diff --git a/test/model/cron/getlasttime.php b/test/model/cron/getlasttime.php new file mode 100644 index 0000000000..385076195a --- /dev/null +++ b/test/model/cron/getlasttime.php @@ -0,0 +1,18 @@ +#!/usr/bin/env php +getLastTime(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$lastTime = $cron->getLastTimeTest(); + +r($lastTime) && p() && e('2022-04-01 13:42:45'); //获取最后执行时间进行对比 diff --git a/test/model/cron/getturnon.php b/test/model/cron/getturnon.php new file mode 100644 index 0000000000..305bb6502b --- /dev/null +++ b/test/model/cron/getturnon.php @@ -0,0 +1,18 @@ +#!/usr/bin/env php +getTurnon(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$value = $cron->getTurnonTest(); + +r($value) && p() && e('1'); //查询定时任务配置是否开启 diff --git a/test/model/cron/logcron.php b/test/model/cron/logcron.php new file mode 100644 index 0000000000..0d51e9175e --- /dev/null +++ b/test/model/cron/logcron.php @@ -0,0 +1,23 @@ +#!/usr/bin/env php +logCron(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$file = $tester->app->getLogRoot() . 'cron.' . date('Ymd') . '.log.php'; +if(is_file($file)) unlink($file); + +$cron->logCronTest('cronlogtest'); +$info = file_get_contents($file); +$strExists = strpos($info,'cronlogtest'); + +r($strExists) && p() && e('14');// 调用日志方法查看日志文件该字符串位置 diff --git a/test/model/cron/markcronstatus.php b/test/model/cron/markcronstatus.php new file mode 100644 index 0000000000..050af6a8c9 --- /dev/null +++ b/test/model/cron/markcronstatus.php @@ -0,0 +1,29 @@ +#!/usr/bin/env php +markCronStatus(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$id = $tester->cron->getConfigID(); +$configID = $cron->markCronStatusTest('stop', $id); +$config1 = $tester->dao->select('*')->from(TABLE_CONFIG)->where('id')->eq($configID)->fetch(); + +$tester->dao->delete()->from(TABLE_CONFIG)->where('id')->eq($configID)->exec(); +$configID = $cron->markCronStatusTest('run'); +$config2 = $tester->dao->select('*')->from(TABLE_CONFIG)->where('id')->eq($configID)->fetch(); + +$tester->dao->update(TABLE_CONFIG)->set('id')->eq($id)->where('id')->eq($configID)->exec(); + +r($config1) && p('value') && e('stop'); //修改配置项之后查看更新信息 +r($config2) && p('value') && e('run'); //修改配置项之后查看更新信息 + +system('./ztest init'); diff --git a/test/model/cron/parsecron.php b/test/model/cron/parsecron.php new file mode 100644 index 0000000000..bfcb7151ab --- /dev/null +++ b/test/model/cron/parsecron.php @@ -0,0 +1,22 @@ +#!/usr/bin/env php +parseCron(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$crons = $tester->cron->getCrons('nostop'); +$parse = $cron->parseCronTest($crons); + +r($parse) && p('19:schema,command') && e('*/5 * * * *,moduleName=measurement&methodName=execCrontabQueue');//获取id为19的定时任务的定时信息和命令信息 +r($parse) && p('15:schema,command') && e('30 23 * * *,moduleName=execution&methodName=computeTaskEffort'); //获取id为15的定时任务的定时信息和命令信息 + +system('./ztest init'); diff --git a/test/model/cron/runable.php b/test/model/cron/runable.php new file mode 100644 index 0000000000..8e39324edf --- /dev/null +++ b/test/model/cron/runable.php @@ -0,0 +1,37 @@ +#!/usr/bin/env php +runable(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); + +$tester->config->global->cron = 0; +$res1 = $cron->runableTest(); + +$tester->config->global->cron = 1; +$res2 = $cron->runableTest(); + +$tester->config->cron->maxRunTime = PHP_INT_MAX; +unset($tester->config->cron->run->status); +$res3 = $cron->runableTest(); + +$tester->config->cron->run->status = 'stop'; +$res4 = $cron->runableTest(); + +$tester->config->cron->run->status = 'running'; +$res5 = $cron->runableTest(); + +r($res1) && p() && e('0'); //cron配置为空情况 +r($res2) && p() && e('1'); //cron配置存在,执行时间大于最大可执行时间情况 +r($res3) && p() && e('1'); //cron状态为空情况 +r($res4) && p() && e('1'); //cron状态是stop情况 +r($res5) && p() && e('0'); //cron状态存在不是stop情况 diff --git a/test/model/cron/update.php b/test/model/cron/update.php new file mode 100644 index 0000000000..f89fdfda33 --- /dev/null +++ b/test/model/cron/update.php @@ -0,0 +1,36 @@ +#!/usr/bin/env php +update(); +cid=1 +pid=1 + +*/ + +$cron = new cronTest(); +$cronID = 1; +$cron1 = new stdClass(); +$cron1->m = '55'; +$cron1->h = '23'; +$cron1->dom = '30'; +$cron1->mon = '12'; +$cron1->dow = '6'; +$cron1->remark = ''; +$cron1->type = 'zentao' ; +$cron1->command = ''; +$result1 = $cron->updateTest($cronID, $cron1); + +$cron1->command = 'test comand'; +$result2 = $cron->updateTest($cronID, $cron1); + + +r($result1[0]) && p() && e('『命令』不能为空'); //命令为空时候返回值 +r($result2) && p('command,type') && e('test comand,zentao');//更新之后对比更新数据信息 +r($result2) && p('m,h,dom,mon,dow') && e('55,23,30,12,6'); //更新之后对比更新数据信息 + +system('./ztest init'); diff --git a/test/ztest b/test/ztest index e2b1377185..9acae923fd 100755 --- a/test/ztest +++ b/test/ztest @@ -61,6 +61,12 @@ switch($argv[1]) case 'my': ztfRun('model/my'); break; + case 'caselib': + ztfRun('model/caselib'); + break; + case 'cron': + ztfRun('model/cron'); + break; case 'model': ztfRun('model'); break; From e40adde8cb619256c69e2ddd8b9a545d71d94e3e Mon Sep 17 00:00:00 2001 From: yinjinzhu Date: Sat, 2 Apr 2022 17:42:47 +0800 Subject: [PATCH 3/3] auto test release model --- test/class/release.class.php | 352 +++++++++++++++++++++++ test/model/release/batchunlinkbug.php | 31 ++ test/model/release/batchunlinkstory.php | 26 ++ test/model/release/changestatus.php | 24 ++ test/model/release/create.php | 43 +++ test/model/release/getbyid.php | 26 ++ test/model/release/getlast.php | 25 ++ test/model/release/getlist.php | 65 +++++ test/model/release/getnotifypersons.php | 38 +++ test/model/release/getreleasedbuilds.php | 33 +++ test/model/release/gettoandcclist.php | 21 ++ test/model/release/linkbug.php | 30 ++ test/model/release/linkstory.php | 26 ++ test/model/release/sendmail.php | 19 ++ test/model/release/sendmail2feedback.php | 19 ++ test/model/release/unlinkbug.php | 29 ++ test/model/release/unlinkstory.php | 26 ++ test/model/release/update.php | 33 +++ 18 files changed, 866 insertions(+) create mode 100644 test/class/release.class.php create mode 100755 test/model/release/batchunlinkbug.php create mode 100755 test/model/release/batchunlinkstory.php create mode 100755 test/model/release/changestatus.php create mode 100755 test/model/release/create.php create mode 100755 test/model/release/getbyid.php create mode 100755 test/model/release/getlast.php create mode 100755 test/model/release/getlist.php create mode 100755 test/model/release/getnotifypersons.php create mode 100755 test/model/release/getreleasedbuilds.php create mode 100755 test/model/release/gettoandcclist.php create mode 100755 test/model/release/linkbug.php create mode 100755 test/model/release/linkstory.php create mode 100755 test/model/release/sendmail.php create mode 100755 test/model/release/sendmail2feedback.php create mode 100755 test/model/release/unlinkbug.php create mode 100755 test/model/release/unlinkstory.php create mode 100755 test/model/release/update.php diff --git a/test/class/release.class.php b/test/class/release.class.php new file mode 100644 index 0000000000..1efce48bdf --- /dev/null +++ b/test/class/release.class.php @@ -0,0 +1,352 @@ +objectModel = $tester->loadModel('release'); + } + + /** + * function getByIDTest by release + * + * @param string $releaseID + * @param beel $setImgSize + * @access public + * @return array + */ + public function getByIDTest($releaseID, $setImgSize = false) + { + $objects = $this->objectModel->getByID($releaseID, $setImgSize); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * function getListTest by release + * + * @param string $productID + * @param string $branch + * @param string $type + * @access public + * @return array + */ + + public function getListTest($productID, $branch = 'all', $type = 'all', $orderBy = 't1.date_desc', $pager = null) + { + $objects = $this->objectModel->getList($productID, $branch, $type, $orderBy, $pager); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * function getLastTest by release + * + * @param string $productID + * @param string $branch + * @access public + * @return array + */ + public function getLastTest($productID, $branch = 0) + { + $objects = $this->objectModel->getLast($productID, $branch); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Get released test builds from product . + * + * @param int $productID + * @param string|int $branch + * @access public + * @return void + */ + public function getReleasedBuildsTest($productID, $branch = 'all') + { + $objects = $this->objectModel->getReleasedBuilds($productID, $branch); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Create a release. + * + * @param int $productID + * @param int $branch + * @param int $projectID + * @access public + * @return array + */ + + public function createTest($productID = 0, $branch = 0, $projectID = 0, $param = array()) + { + + $date = date('Y-m-d'); + $labels = array(); + $files = array(); + $mailto = array(); + + $createFields = array('name' => '','marker' => '1', 'build' => '', 'date' => $date, 'desc' => '', 'mailto' => $mailto , 'labels' => $labels, 'files' => $files); + + foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue; + foreach($param as $key => $value) $_POST[$key] = $value; + + $objectsID = $this->objectModel->create($productID, $branch, $projectID); + + unset($_POST); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getByID($objectsID); + + return $objects; + } + /** + * Update a release. + * + * @param int $releaseID + * @access public + * @return array + */ + + public function updateTest($releaseID, $param = array()) + { + $date = date('Y-m-d'); + $labels = array(); + $files = array(); + $mailto = array(); + + $createFields = array('name' => '','marker' => '1', 'build' => '', 'date' => $date, 'desc' => '', 'mailto' => $mailto , 'labels' => $labels, 'files' => $files); + + foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue; + foreach($param as $key => $value) $_POST[$key] = $value; + $this->objectModel->update($releaseID); + unset($_POST); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getByID($releaseID); + return $objects; + } + + /** + * Get notify persons. + * + * @param string $notfiyList + * @param int $productID + * @param int $buildID + * @param int $releaseID + * @access public + * @return array + */ + + public function getNotifyPersonsTest($notifyList = '', $productID = 0, $buildID = 0, $releaseID = 0) + { + $objects = $this->objectModel->getNotifyPersons($notifyList, $productID, $buildID, $releaseID); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Link stories + * + * @param int $releaseID + * @access public + * @return array + */ + + public function linkStoryTest($releaseID, $stories) + { + $_POST['stories'] = $stories; + $this->objectModel->linkStory($releaseID); + unset($_POST); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getByID($releaseID); + return $objects; + } + + /** + * Unlink story + * + * @param int $releaseID + * @param int $storyID + * @access public + * @return array + */ + public function unlinkStoryTest($releaseID, $storyID) + { + $_POST['stories'] = $storyID; + $this->objectModel->linkStory($releaseID); + unset($_POST); + + $this->objectModel->unlinkStory($releaseID, $storyID[0]); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getByID($releaseID); + return $objects; + } + + /** + * Batch unlink story. + * + * @param int $releaseID + * @access public + * @return array + */ + + public function batchUnlinkStoryTest($releaseID, $stories) + { + $_POST['stories'] = $stories; + $this->objectModel->linkStory($releaseID); + unset($_POST); + + $_POST['storyIdList'] = $stories; + $this->objectModel->batchUnlinkStory($releaseID); + unset($_POST); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getByID($releaseID); + + return $objects; + } + + /** + * Link bugs. + * + * @param int $releaseID + * @param string $type + * @access public + * @return array + */ + + public function linkBugTest($releaseID, $type = 'bug', $bugs) + { + $_POST['bugs'] = $bugs; + $this->objectModel->linkBug($releaseID, $type); + unset($_POST); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getByID($releaseID); + return $objects; + } + + /** + * Unlink bug. + * + * @param int $releaseID + * @param int $bugID + * @param string $type + * @access public + * @return void + */ + + public function unlinkBugTest($releaseID, $bugID, $type = 'bug') + { + $_POST['bugs'] = $bugID; + $this->objectModel->linkBug($releaseID); + unset($_POST); + + $this->objectModel->unlinkBug($releaseID, $bugID[0], $type); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getByID($releaseID); + return $objects; + } + + /** + * Batch unlink bug. + * + * @param int $releaseID + * @param string $type + * @access public + * @return array + */ + public function batchUnlinkBugTest($releaseID, $type = 'bug', $bugs) + { + $_POST['bugs'] = $bugs; + $this->objectModel->linkBug($releaseID); + unset($_POST); + + $_POST['unlinkBugs'] = $bugs; + $this->objectModel->batchUnlinkBug($releaseID, $type); + unset($_POST); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getByID($releaseID); + return $objects; + } + + /** + * Change status. + * + * @param int $releaseID + * @param string $status + * @access public + * @return bool + */ + + public function changeStatusTest($releaseID, $status) + { + $this->objectModel->changeStatus($releaseID, $status); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getByID($releaseID); + return $objects; + } + + public function sendmailTest($releaseID) + { + $objects = $this->objectModel->sendmail($releaseID); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + + /** + * Get toList and ccList. + * + * @param object $release + * @access public + * @return bool|array + */ + public function getToAndCcListTest($releaseID) + { + $release = $this->objectModel->getByID($releaseID); + + $objects = $this->objectModel->getToAndCcList($release); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + public function sendMail2FeedbackTest($release, $subject) + { + $objects = $this->objectModel->sendMail2Feedback($release, $subject); + + if(dao::isError()) return dao::getError(); + + return $objects; + } +} diff --git a/test/model/release/batchunlinkbug.php b/test/model/release/batchunlinkbug.php new file mode 100755 index 0000000000..57c1242492 --- /dev/null +++ b/test/model/release/batchunlinkbug.php @@ -0,0 +1,31 @@ +#!/usr/bin/env php +batchUnlinkBug(); +cid=1 +pid=1 + +正常任务批量移除解决的Bug >> 1, +正常任务批量移除遗留的Bug >> 1, +停止维护任务批量移除解决的Bug >> 6, +停止维护任务批量移除遗留的Bug >> 6, + +*/ + +$releaseID = array('1','6'); +$bugs = array('314','315'); +$type = array('bug', 'leftBug'); + +$release = new releaseTest(); + +r($release->batchUnlinkBugTest($releaseID[0], $bugs ,$type[0])) && p('id,bugs,leftBugs') && e('1,'); //正常任务批量移除解决的Bug +r($release->batchUnlinkBugTest($releaseID[0], $bugs ,$type[1])) && p('id,bugs,leftBugs') && e('1,'); //正常任务批量移除遗留的Bug +r($release->batchUnlinkBugTest($releaseID[1], $bugs ,$type[0])) && p('id,bugs,leftBugs') && e('6,'); //停止维护任务批量移除解决的Bug +r($release->batchUnlinkBugTest($releaseID[1], $bugs ,$type[1])) && p('id,bugs,leftBugs') && e('6,'); //停止维护任务批量移除遗留的Bug + +system("./ztest init"); \ No newline at end of file diff --git a/test/model/release/batchunlinkstory.php b/test/model/release/batchunlinkstory.php new file mode 100755 index 0000000000..54dd63243e --- /dev/null +++ b/test/model/release/batchunlinkstory.php @@ -0,0 +1,26 @@ +#!/usr/bin/env php +batchUnlinkStory(); +cid=1 +pid=1 + +正常任务批量移除关联需求 >> 1, +停止维护任务批量移除关联需求 >> 6, + +*/ + +$releaseID = array('1','6'); +$stories = array('2','4'); + +$release = new releaseTest(); + +r($release->batchUnlinkStoryTest($releaseID[0],$stories)) && p('id,stories') && e('1,'); //正常任务批量移除关联需求 +r($release->batchUnlinkStoryTest($releaseID[1],$stories)) && p('id,stories') && e('6,'); //停止维护任务批量移除关联需求 + +system("./ztest init"); \ No newline at end of file diff --git a/test/model/release/changestatus.php b/test/model/release/changestatus.php new file mode 100755 index 0000000000..cc38adba04 --- /dev/null +++ b/test/model/release/changestatus.php @@ -0,0 +1,24 @@ +#!/usr/bin/env php +changeStatus(); +cid=1 +pid=1 + +正常任务批量移除遗留的Bug >> 1,terminate +停止维护任务批量移除解决的Bug >> 6,normal + +*/ + +$releaseID = array('1','6'); +$status = array('normal','terminate'); + +$release = new releaseTest(); + +r($release->changeStatusTest($releaseID[0], $status[1])) && p('id,status') && e('1,terminate'); //正常任务批量移除遗留的Bug +r($release->changeStatusTest($releaseID[1], $status[0])) && p('id,status') && e('6,normal'); //停止维护任务批量移除解决的Bug \ No newline at end of file diff --git a/test/model/release/create.php b/test/model/release/create.php new file mode 100755 index 0000000000..2b92dc57b4 --- /dev/null +++ b/test/model/release/create.php @@ -0,0 +1,43 @@ +#!/usr/bin/env php +create(); +cid=1 +pid=1 + +执行版本新增发布 >> 11,新增执行版本发布,13 +项目版本新增发布 >> 12,新增项目版本发布,3 +创建里程碑发布 >> 13,新增里程碑发布,13 +创建将版本中完成的研发需求和已解决的Bug关联的发布 >> 14,新增关联发布,13 +创建将版本中完成的研发需求和已解决的Bug不关联的发布 >> 15,新增不关联发布,13 +名称为空测试 >> 『发布名称』不能为空。 +名称重复测试 >> 『发布名称』已经有『新增执行版本发布』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。 + +*/ + +$productID = 3; +$branch = 'all'; +$projectID = '0'; + +$release = new releaseTest(); + +$executionRelease = array('name' => '新增执行版本发布', 'marker' => '0', 'build' => '13', 'desc' => '', 'sync' => true); +$projectRelease = array('name' => '新增项目版本发布', 'marker' => '0', 'build' => '3', 'desc' => '', 'sync' => true); +$markerRelease = array('name' => '新增里程碑发布', 'marker' => '1', 'build' => '13', 'desc' => '', 'sync' => true); +$syncRelease = array('name' => '新增关联发布', 'marker' => '0', 'build' => '13', 'desc' => '', 'sync' => true); +$noSyncnormalRelease = array('name' => '新增不关联发布', 'marker' => '0', 'build' => '13', 'desc' => '', 'sync' => false); +$noNameRelease = array('name' => '', 'marker' => '0', 'build' => '13', 'desc' => '', 'sync' => true); + +r($release->createTest($projectID, $branch, $projectID, $executionRelease)) && p('id,name,build') && e('11,新增执行版本发布,13'); //执行版本新增发布 +r($release->createTest($projectID, $branch, $projectID, $projectRelease)) && p('id,name,build') && e('12,新增项目版本发布,3'); //项目版本新增发布 +r($release->createTest($projectID, $branch, $projectID, $markerRelease)) && p('id,name,build') && e('13,新增里程碑发布,13'); //创建里程碑发布 +r($release->createTest($projectID, $branch, $projectID, $syncRelease)) && p('id,name,build') && e('14,新增关联发布,13'); //创建将版本中完成的研发需求和已解决的Bug关联的发布 +r($release->createTest($projectID, $branch, $projectID, $noSyncnormalRelease)) && p('id,name,build') && e('15,新增不关联发布,13'); //创建将版本中完成的研发需求和已解决的Bug不关联的发布 +r($release->createTest($projectID, $branch, $projectID, $noNameRelease)) && p('name:0') && e('『发布名称』不能为空。'); //名称为空测试 +r($release->createTest($projectID, $branch, $projectID, $executionRelease)) && p('name:0') && e('『发布名称』已经有『新增执行版本发布』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。'); //名称重复测试 +system("./ztest init"); \ No newline at end of file diff --git a/test/model/release/getbyid.php b/test/model/release/getbyid.php new file mode 100755 index 0000000000..67b5ba8414 --- /dev/null +++ b/test/model/release/getbyid.php @@ -0,0 +1,26 @@ +#!/usr/bin/env php +getByID(); +cid=1 +pid=1 + +正常发布查询 >> 产品正常的正常的发布1,normal +停止维护查询 >> 项目停止维护的停止维护的里程碑发布6,terminate +无ID查询 >> 0 +图片字段传字符串测试 >> 产品正常的正常的发布1,normal + +*/ +$releaseID = array('1', '6'); + +$release = new releaseTest(); + +r($release->getByIDTest($releaseID[0],true)) && p('name,status') && e('产品正常的正常的发布1,normal'); //正常发布查询 +r($release->getByIDTest($releaseID[1],false)) && p('name,status') && e('项目停止维护的停止维护的里程碑发布6,terminate');//停止维护查询 +r($release->getByIDTest('',true)) && p('') && e('0'); //无ID查询 +r($release->getByIDTest($releaseID[0],'true')) && p('name,status') && e('产品正常的正常的发布1,normal'); //图片字段传字符串测试 \ No newline at end of file diff --git a/test/model/release/getlast.php b/test/model/release/getlast.php new file mode 100755 index 0000000000..d837de0b7f --- /dev/null +++ b/test/model/release/getlast.php @@ -0,0 +1,25 @@ +#!/usr/bin/env php +getLast(); +cid=1 +pid=1 + +产品ID正常查询 >> 1,产品正常的正常的发布1 +产品ID为空查询 >> 0 +产品ID不存在查询 >> 0 + +*/ + +$productID = array('1', '10000'); + +$release = new releaseTest(); + +r($release->getLastTest($productID[0])) && p('id,name') && e('1,产品正常的正常的发布1'); //产品ID正常查询 +r($release->getLastTest('')) && p('') && e('0'); //产品ID为空查询 +r($release->getLastTest($productID[1])) && p('') && e('0'); //产品ID不存在查询 \ No newline at end of file diff --git a/test/model/release/getlist.php b/test/model/release/getlist.php new file mode 100755 index 0000000000..530ee0a0b6 --- /dev/null +++ b/test/model/release/getlist.php @@ -0,0 +1,65 @@ +#!/usr/bin/env php +getList(); +cid=1 +pid=1 + +branch为'all'并且type为'all'时数据查询 >> 1,产品正常的正常的发布1 +branch为'all'并且type为'normal'时数据查询 >> 3,产品正常的正常的发布3 +branch为'all'并且type为'terminate'时数据查询 >> 6,项目停止维护的停止维护的里程碑发布6 +branch为'all'并且type为空时数据查询 >> 0 +branch为0并且type为'all'时数据查询 >> 1,产品正常的正常的发布1 +branch为0并且type为'normal'时数据查询 >> 1,产品正常的正常的发布1 +branch为0并且type为'terminate'时数据查询 >> 6,项目停止维护的停止维护的里程碑发布6 +branch为0并且type为空时数据查询 >> 0 +branch为1并且type为'all'时数据查询 >> 0 +branch为1并且type为'normal'时数据查询 >> 0 +branch为1并且type为'terminate'时数据查询 >> 0 +branch为1并且type为空时数据查询 >> 0 +branch为2并且type为'all'时数据查询 >> 0 +branch为2并且type为'normal'时数据查询 >> 0 +branch为2并且type为'terminate'时数据查询 >> 0 +branch为2并且type为空时数据查询 >> 0 +branch为空并且type为'all'时数据查询 >> 1,产品正常的正常的发布1 +branch为空并且type为'normal'时数据查询 >> 1,产品正常的正常的发布1 +branch为空并且type为'terminate'时数据查询 >> 6,项目停止维护的停止维护的里程碑发布6 +branch为空并且type为空时数据查询 >> 0 +产品ID为空数据查询 >> 1,产品正常的正常的发布1 +产品ID不存在数据查询 >> 0 + +*/ + +$productID = ['','1','10000']; +$branchArray = ['all','0','1','2','']; +$typeArray = ['all','normal','terminate','']; + +$release = new releaseTest(); + +r($release->getListTest($productID[1], $branchArray[0], $typeArray[0])) && p('0:id,name') && e('1,产品正常的正常的发布1'); //branch为'all'并且type为'all'时数据查询 +r($release->getListTest($productID[1], $branchArray[0], $typeArray[1])) && p('1:id,name') && e('3,产品正常的正常的发布3'); //branch为'all'并且type为'normal'时数据查询 +r($release->getListTest($productID[1], $branchArray[0], $typeArray[2])) && p('0:id,name') && e('6,项目停止维护的停止维护的里程碑发布6'); //branch为'all'并且type为'terminate'时数据查询 +r($release->getListTest($productID[1], $branchArray[0], $typeArray[3])) && p() && e('0'); //branch为'all'并且type为空时数据查询 +r($release->getListTest($productID[1], $branchArray[1], $typeArray[0])) && p('0:id,name') && e('1,产品正常的正常的发布1'); //branch为0并且type为'all'时数据查询 +r($release->getListTest($productID[1], $branchArray[1], $typeArray[1])) && p('0:id,name') && e('1,产品正常的正常的发布1'); //branch为0并且type为'normal'时数据查询 +r($release->getListTest($productID[1], $branchArray[1], $typeArray[2])) && p('0:id,name') && e('6,项目停止维护的停止维护的里程碑发布6'); //branch为0并且type为'terminate'时数据查询 +r($release->getListTest($productID[1], $branchArray[1], $typeArray[3])) && p() && e('0'); //branch为0并且type为空时数据查询 +r($release->getListTest($productID[1], $branchArray[2], $typeArray[0])) && p() && e('0'); //branch为1并且type为'all'时数据查询 +r($release->getListTest($productID[1], $branchArray[2], $typeArray[1])) && p() && e('0'); //branch为1并且type为'normal'时数据查询 +r($release->getListTest($productID[1], $branchArray[2], $typeArray[2])) && p() && e('0'); //branch为1并且type为'terminate'时数据查询 +r($release->getListTest($productID[1], $branchArray[2], $typeArray[3])) && p() && e('0'); //branch为1并且type为空时数据查询 +r($release->getListTest($productID[1], $branchArray[3], $typeArray[0])) && p() && e('0'); //branch为2并且type为'all'时数据查询 +r($release->getListTest($productID[1], $branchArray[3], $typeArray[1])) && p() && e('0'); //branch为2并且type为'normal'时数据查询 +r($release->getListTest($productID[1], $branchArray[3], $typeArray[2])) && p() && e('0'); //branch为2并且type为'terminate'时数据查询 +r($release->getListTest($productID[1], $branchArray[3], $typeArray[3])) && p() && e('0'); //branch为2并且type为空时数据查询 +r($release->getListTest($productID[1], $branchArray[4], $typeArray[0])) && p('0:id,name') && e('1,产品正常的正常的发布1'); //branch为空并且type为'all'时数据查询 +r($release->getListTest($productID[1], $branchArray[4], $typeArray[1])) && p('0:id,name') && e('1,产品正常的正常的发布1'); //branch为空并且type为'normal'时数据查询 +r($release->getListTest($productID[1], $branchArray[4], $typeArray[2])) && p('0:id,name') && e('6,项目停止维护的停止维护的里程碑发布6'); //branch为空并且type为'terminate'时数据查询 +r($release->getListTest($productID[1], $branchArray[4], $typeArray[3])) && p() && e('0'); //branch为空并且type为空时数据查询 +r($release->getListTest($productID[0], $branchArray[0], $typeArray[0])) && p('0:id,name') && e('1,产品正常的正常的发布1'); //产品ID为空数据查询 +r($release->getListTest($productID[2], $branchArray[0], $typeArray[0])) && p() && e('0'); //产品ID不存在数据查询 \ No newline at end of file diff --git a/test/model/release/getnotifypersons.php b/test/model/release/getnotifypersons.php new file mode 100755 index 0000000000..5d5da0f8ee --- /dev/null +++ b/test/model/release/getnotifypersons.php @@ -0,0 +1,38 @@ +#!/usr/bin/env php +getNotifyPersons(); +cid=1 +pid=1 + +项目版本正常发布数据查询 >> po1 +项目版本停止维护数据查询 >> po1 +执行版本正常发布数据查询 >> po1 +执行版本停止发布数据查询 >> po1 +buildID为空查询 >> po1 +releaseID为空查询 >> po1 +buildID不存在查询 >> po1 +releaseID不存在查询 >> po1 + +*/ + +$notifyList = 'PO, QD, feedback, SC, ET, PT'; +$productID = 1; +$buildID = array('1','10','30',''); +$releaseID = array('1','6','20',''); + +$release = new releaseTest(); + +r($release->getNotifyPersonsTest($notifyList, $productID, $buildID[0], $releaseID[0])) && p('po1') && e('po1');//项目版本正常发布数据查询 +r($release->getNotifyPersonsTest($notifyList, $productID, $buildID[0], $releaseID[1])) && p('po1') && e('po1');//项目版本停止维护数据查询 +r($release->getNotifyPersonsTest($notifyList, $productID, $buildID[1], $releaseID[0])) && p('po1') && e('po1');//执行版本正常发布数据查询 +r($release->getNotifyPersonsTest($notifyList, $productID, $buildID[1], $releaseID[1])) && p('po1') && e('po1');//执行版本停止发布数据查询 +r($release->getNotifyPersonsTest($notifyList, $productID, $buildID[3], $releaseID[1])) && p('po1') && e('po1');//buildID为空查询 +r($release->getNotifyPersonsTest($notifyList, $productID, $buildID[1], $releaseID[3])) && p('po1') && e('po1');//releaseID为空查询 +r($release->getNotifyPersonsTest($notifyList, $productID, $buildID[2], $releaseID[0])) && p('po1') && e('po1');//buildID不存在查询 +r($release->getNotifyPersonsTest($notifyList, $productID, $buildID[0], $releaseID[2])) && p('po1') && e('po1');//releaseID不存在查询 \ No newline at end of file diff --git a/test/model/release/getreleasedbuilds.php b/test/model/release/getreleasedbuilds.php new file mode 100755 index 0000000000..d9b68b3cbf --- /dev/null +++ b/test/model/release/getreleasedbuilds.php @@ -0,0 +1,33 @@ +#!/usr/bin/env php +getReleasedBuilds(); +cid=1 +pid=1 + +branch为'all'时数据查询查询 >> 1,3 +branch为'0'时数据查询查询 >> 1,3 +branch为'1'时数据查询查询 >> 0 +branch为'2'时数据查询查询 >> 0 +branch为''时数据查询查询 >> 1,3 +产品ID为空查询 >> 0 +产品ID不存在查询 >> 0 + +*/ + +$productID = array('','1','10000'); +$brachArray = array('all','0','1','2',''); + +$release = new releaseTest(); +r($release->getReleasedBuildsTest($productID[1], $brachArray[0])) && p('0,1') && e('1,3'); //branch为'all'时数据查询查询 +r($release->getReleasedBuildsTest($productID[1], $brachArray[1])) && p('0,1') && e('1,3'); //branch为'0'时数据查询查询 +r($release->getReleasedBuildsTest($productID[1], $brachArray[2])) && p() && e('0'); //branch为'1'时数据查询查询 +r($release->getReleasedBuildsTest($productID[1], $brachArray[3])) && p() && e('0'); //branch为'2'时数据查询查询 +r($release->getReleasedBuildsTest($productID[1], $brachArray[4])) && p('0,1') && e('1,3'); //branch为''时数据查询查询 +r($release->getReleasedBuildsTest($productID[0], $brachArray[0])) && p() && e('0'); //产品ID为空查询 +r($release->getReleasedBuildsTest($productID[2], $brachArray[0])) && p() && e('0'); //产品ID不存在查询 \ No newline at end of file diff --git a/test/model/release/gettoandcclist.php b/test/model/release/gettoandcclist.php new file mode 100755 index 0000000000..25f992ea2a --- /dev/null +++ b/test/model/release/gettoandcclist.php @@ -0,0 +1,21 @@ +#!/usr/bin/env php +getToAndCcList(); +cid=1 +pid=1 + +正常发布发信列表 >> admin; +停止维护发布发信列表 >> admin; + +*/ +$releaseID = array('1','6'); + +$release = new releaseTest(); +r($release->getToAndCcListTest($releaseID[0])) && p('0;1') && e('admin;'); //正常发布发信列表 +r($release->getToAndCcListTest($releaseID[1])) && p('0;1') && e('admin;'); //停止维护发布发信列表 \ No newline at end of file diff --git a/test/model/release/linkbug.php b/test/model/release/linkbug.php new file mode 100755 index 0000000000..17ac1dd2fa --- /dev/null +++ b/test/model/release/linkbug.php @@ -0,0 +1,30 @@ +#!/usr/bin/env php +linkBug(); +cid=1 +pid=1 + +正常任务关联解决Bug >> 1,,311,312 +正常任务关联遗留Bug >> 1,,311,312,,311,312 +停止维护任务关联解决Bug >> 6,,311,312 +停止维护任务关联遗留Bug >> 6,,311,312,,311,312 + +*/ +$releaseID = array('1', '6'); +$bugs = array('311', '312'); +$type = array('bug', 'leftBug'); + +$release = new releaseTest(); + +r($release->linkBugTest($releaseID[0], $type[0], $bugs)) && p('id,bugs,leftBugs') && e('1,,311,312'); //正常任务关联解决Bug +r($release->linkBugTest($releaseID[0], $type[1], $bugs)) && p('id,bugs,leftBugs') && e('1,,311,312,,311,312'); //正常任务关联遗留Bug +r($release->linkBugTest($releaseID[1], $type[0], $bugs)) && p('id,bugs,leftBugs') && e('6,,311,312'); //停止维护任务关联解决Bug +r($release->linkBugTest($releaseID[1], $type[1], $bugs)) && p('id,bugs,leftBugs') && e('6,,311,312,,311,312'); //停止维护任务关联遗留Bug + +system("./ztest init"); \ No newline at end of file diff --git a/test/model/release/linkstory.php b/test/model/release/linkstory.php new file mode 100755 index 0000000000..79d2faa72f --- /dev/null +++ b/test/model/release/linkstory.php @@ -0,0 +1,26 @@ +#!/usr/bin/env php +linkStory(); +cid=1 +pid=1 + +正常任务关联需求 >> 1,,2,4 +停止维护任务关联需求 >> 6,,2,4 + +*/ + +$releaseID = array('1','6'); +$stories = array('2','4'); + +$release = new releaseTest(); + +r($release->linkStoryTest($releaseID[0],$stories)) && p('id,stories') && e('1,,2,4'); //正常任务关联需求 +r($release->linkStoryTest($releaseID[1],$stories)) && p('id,stories') && e('6,,2,4'); //停止维护任务关联需求 + +system("./ztest init"); \ No newline at end of file diff --git a/test/model/release/sendmail.php b/test/model/release/sendmail.php new file mode 100755 index 0000000000..f69846e0f9 --- /dev/null +++ b/test/model/release/sendmail.php @@ -0,0 +1,19 @@ +#!/usr/bin/env php +sendmail(); +cid=1 +pid=1 + + + +*/ + +$release = new releaseTest(); + +r($release->sendmailTest()) && p() && e(); \ No newline at end of file diff --git a/test/model/release/sendmail2feedback.php b/test/model/release/sendmail2feedback.php new file mode 100755 index 0000000000..f355b14729 --- /dev/null +++ b/test/model/release/sendmail2feedback.php @@ -0,0 +1,19 @@ +#!/usr/bin/env php +sendMail2Feedback(); +cid=1 +pid=1 + + + +*/ + +$release = new releaseTest(); + +r($release->sendMail2FeedbackTest()) && p() && e(); \ No newline at end of file diff --git a/test/model/release/unlinkbug.php b/test/model/release/unlinkbug.php new file mode 100755 index 0000000000..b553f926ea --- /dev/null +++ b/test/model/release/unlinkbug.php @@ -0,0 +1,29 @@ +#!/usr/bin/env php +unlinkBug(); +cid=1 +pid=1 + +正常发布批量移除解决的Bug >> 1, +正常发布批量移除遗留的Bug >> 1, +停止维护发布批量移除解决的Bug >> 6, +停止维护发布批量移除遗留的Bug >> 6, + +*/ +$releaseID = array('1','6'); +$bugs = array('314'); +$type = array('bug', 'leftBug'); + +$release = new releaseTest(); + +r($release->unlinkBugTest($releaseID[0], $bugs ,$type[0])) && p('id,bugs,leftBugs') && e('1,'); //正常发布批量移除解决的Bug +r($release->unlinkBugTest($releaseID[0], $bugs ,$type[1])) && p('id,bugs,leftBugs') && e('1,'); //正常发布批量移除遗留的Bug +r($release->unlinkBugTest($releaseID[1], $bugs ,$type[0])) && p('id,bugs,leftBugs') && e('6,'); //停止维护发布批量移除解决的Bug +r($release->unlinkBugTest($releaseID[1], $bugs ,$type[1])) && p('id,bugs,leftBugs') && e('6,'); //停止维护发布批量移除遗留的Bug +system("./ztest init"); \ No newline at end of file diff --git a/test/model/release/unlinkstory.php b/test/model/release/unlinkstory.php new file mode 100755 index 0000000000..53037a4b19 --- /dev/null +++ b/test/model/release/unlinkstory.php @@ -0,0 +1,26 @@ +#!/usr/bin/env php +unlinkStory(); +cid=1 +pid=1 + +正常任务移除关联需求 >> 1, +停止维护任务移除关联需求 >> 6, + +*/ + +$releaseID = array('1','6'); +$stories = array('2'); + +$release = new releaseTest(); + +r($release->unlinkStoryTest($releaseID[0],$stories)) && p('id,stories') && e('1,'); //正常任务移除关联需求 +r($release->unlinkStoryTest($releaseID[1],$stories)) && p('id,stories') && e('6,'); //停止维护任务移除关联需求 + +system("./ztest init"); \ No newline at end of file diff --git a/test/model/release/update.php b/test/model/release/update.php new file mode 100755 index 0000000000..8b580d612a --- /dev/null +++ b/test/model/release/update.php @@ -0,0 +1,33 @@ +#!/usr/bin/env php +update(); +cid=1 +pid=1 + +修改正常发布 >> 1,修改正常发布,1 +修改停止维护发布 >> 6,修改停止维护发布,11 +任务ID为空测试 >> 0 +名称为空测试 >> 『发布名称』不能为空。 + +*/ +$releaseID = array('1', '6', ''); + +$release = new releaseTest(); + +$normalRelease = array('name' => '修改正常发布', 'marker' => '0', 'build' => '1', 'status' => 'normal', 'product' => '1' ); +$terminateRelease = array('name' => '修改停止维护发布', 'marker' => '1', 'build' => '11', 'status' => 'terminate', 'product' => '1' ); +$noReleaseID = array('name' => '测试任务ID为空', 'marker' => '0', 'build' => '1', 'status' => 'normal', 'product' => '1' ); +$noName = array('name' => '', 'marker' => '0', 'build' => '1', 'status' => 'normal', 'product' => '1' ); + +r($release->updateTest($releaseID[0], $normalRelease)) && p('id,name,build') && e('1,修改正常发布,1'); //修改正常发布 +r($release->updateTest($releaseID[1], $terminateRelease)) && p('id,name,build') && e('6,修改停止维护发布,11'); //修改停止维护发布 +r($release->updateTest($releaseID[2], $noReleaseID)) && p() && e('0'); //任务ID为空测试 +r($release->updateTest($releaseID[0], $noName)) && p('name:0') && e('『发布名称』不能为空。'); //名称为空测试 + +system("./ztest init"); \ No newline at end of file