From 0c39c8d7500fa5c381038ef721a667fc8e20b16c Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 12 Apr 2022 15:51:06 +0800 Subject: [PATCH 1/2] * Add unit test of stage. --- test/class/stage.class.php | 98 ++++++++++++++++++++++++++++++++ test/model/stage/batchcreate.php | 41 +++++++++++++ test/model/stage/create.php | 59 +++++++++++++++++++ test/model/stage/getbyid.php | 24 ++++++++ test/model/stage/getpairs.php | 22 +++++++ test/model/stage/getstages.php | 22 +++++++ test/model/stage/update.php | 27 +++++++++ test/ztest | 3 + 8 files changed, 296 insertions(+) create mode 100644 test/class/stage.class.php create mode 100755 test/model/stage/batchcreate.php create mode 100755 test/model/stage/create.php create mode 100755 test/model/stage/getbyid.php create mode 100755 test/model/stage/getpairs.php create mode 100755 test/model/stage/getstages.php create mode 100755 test/model/stage/update.php diff --git a/test/class/stage.class.php b/test/class/stage.class.php new file mode 100644 index 0000000000..2e15e06386 --- /dev/null +++ b/test/class/stage.class.php @@ -0,0 +1,98 @@ +objectModel = $tester->loadModel('stage'); + } + + /** + * Test create a stage. + * + * @param object $stage + * @access public + * @return object + */ + public function createTest($stage) + { + foreach($stage as $key => $value) $_POST[$key] = $value; + + $objectID = $this->objectModel->create(); + + unset($_POST); + + if(dao::isError()) return dao::getError(); + + $object = $this->objectModel->getByID($objectID); + return $object; + } + + /** + * Test batch create stages. + * + * @param array $param + * @access public + * @return int + */ + public function batchCreateTest($param) + { + foreach($param as $key => $value) $_POST[$key] = $value; + + $this->objectModel->batchCreate(); + + unset($_POST); + + if(dao::isError()) return dao::getError(); + + $objects = $this->objectModel->getStages(); + return count($objects); + } + + public function updateTest($stageID, $param) + { + foreach($param as $key => $value) $_POST[$key] = $value; + + $objects = $this->objectModel->update($stageID); + + unset($_POST); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + public function getStagesTest($orderBy = 'id_desc') + { + $objects = $this->objectModel->getStages($orderBy = 'id_desc'); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + public function getPairsTest() + { + $objects = $this->objectModel->getPairs(); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Test get a stage by id. + * + * @param int $stageID + * @access public + * @return object + */ + public function getByIDTest($stageID) + { + $object = $this->objectModel->getByID($stageID); + + if(dao::isError()) return dao::getError(); + + return $object; + } +} diff --git a/test/model/stage/batchcreate.php b/test/model/stage/batchcreate.php new file mode 100755 index 0000000000..cfe58e2b5f --- /dev/null +++ b/test/model/stage/batchcreate.php @@ -0,0 +1,41 @@ +#!/usr/bin/env php +batchCreate(); +cid=1 +pid=1 + +*/ +$name1 = array('1' => '批量创建的需求', '2' => '批量创建的设计', '3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); +$percent1 = array('1' => '1', '2' => '2', '3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); +$type1 = array('1' => 'request', '2' => 'design', '3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); + +$name2 = array('1' => '批量创建的开发', '2' => '批量创建的测试', '3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); +$percent2 = array('1' => '3', '2' => '4', '3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); +$type2 = array('1' => 'dev', '2' => 'qa', '3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); + +$name3 = array('1' => '批量创建的发布', '2' => '批量创建的总结评审', '3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); +$percent3 = array('1' => '5', '2' => '6', '3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); +$type3 = array('1' => 'release', '2' => 'review', '3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); + +$name4 = array('1' => '', '2' => '批量创建的其他', '3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); +$percent4 = array('1' => '1', '2' => '7', '3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); +$type4 = array('1' => 'request', '2' => 'other', '3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); + +$param1 = array('name' => $name1, 'percent' => $percent1, 'type' => $type1); +$param2 = array('name' => $name2, 'percent' => $percent2, 'type' => $type2); +$param3 = array('name' => $name3, 'percent' => $percent3, 'type' => $type3); +$param4 = array('name' => $name4, 'percent' => $percent4, 'type' => $type4); + +$stage = new stageTest(); + +r($stage->batchCreateTest($param1)) && p() && e('8'); // 测试批量创建阶段 1 +r($stage->batchCreateTest($param2)) && p() && e('10'); // 测试批量创建阶段 2 +r($stage->batchCreateTest($param3)) && p() && e('12'); // 测试批量创建阶段 3 +r($stage->batchCreateTest($param4)) && p() && e('13'); // 测试批量创建阶段 4 +system("./ztest init"); diff --git a/test/model/stage/create.php b/test/model/stage/create.php new file mode 100755 index 0000000000..f36b638153 --- /dev/null +++ b/test/model/stage/create.php @@ -0,0 +1,59 @@ +#!/usr/bin/env php +create(); +cid=1 +pid=1 + +*/ + +$stage1 = new stdclass(); +$stage1->name = '新建的需求'; +$stage1->percent = 1; +$stage1->type = 'request'; + +$stage2 = new stdclass(); +$stage2->name = '新建的设计'; +$stage2->percent = 2; +$stage2->type = 'design'; + +$stage3 = new stdclass(); +$stage3->name = '新建的开发'; +$stage3->percent = 3; +$stage3->type = 'dev'; + +$stage4 = new stdclass(); +$stage4->name = '新建的测试'; +$stage4->percent = 4; +$stage4->type = 'qa'; + +$stage5 = new stdclass(); +$stage5->name = '新建的发布'; +$stage5->percent = 5; +$stage5->type = 'release'; + +$stage6 = new stdclass(); +$stage6->name = '新建的总结评审'; +$stage6->percent = 6; +$stage6->type = 'review'; + +$stage7 = new stdclass(); +$stage7->name = '新建的其他'; +$stage7->percent = 7; +$stage7->type = 'other'; + +$stage = new stageTest(); + +r($stage->createTest($stage1)) && p('name,percent,type') && e('新建的需求,1,request'); // 测试新建一个需求阶段 +r($stage->createTest($stage2)) && p('name,percent,type') && e('新建的设计,2,design'); // 测试新建一个设计阶段 +r($stage->createTest($stage3)) && p('name,percent,type') && e('新建的开发,3,dev'); // 测试新建一个开发阶段 +r($stage->createTest($stage4)) && p('name,percent,type') && e('新建的测试,4,qa'); // 测试新建一个测试阶段 +r($stage->createTest($stage5)) && p('name,percent,type') && e('新建的发布,5,release'); // 测试新建一个发布阶段 +r($stage->createTest($stage6)) && p('name,percent,type') && e('新建的总结评审,6,review'); // 测试新建一个总结评审阶段 +r($stage->createTest($stage7)) && p('name,percent,type') && e('新建的其他,7,other'); // 测试新建一个其他阶段 +system("./ztest init"); diff --git a/test/model/stage/getbyid.php b/test/model/stage/getbyid.php new file mode 100755 index 0000000000..bf6743d703 --- /dev/null +++ b/test/model/stage/getbyid.php @@ -0,0 +1,24 @@ +#!/usr/bin/env php +getByID(); +cid=1 +pid=1 + +*/ + +$stageIDList = array(1, 2, 3, 4, 5, 6); + +$stage = new stageTest(); + +r($stage->getByIDTest($stageIDList[0])) && p('name,percent,type') && e('需求,10,request'); // 测试获取阶段 1 +r($stage->getByIDTest($stageIDList[1])) && p('name,percent,type') && e('设计,10,design'); // 测试获取阶段 2 +r($stage->getByIDTest($stageIDList[2])) && p('name,percent,type') && e('开发,50,dev'); // 测试获取阶段 3 +r($stage->getByIDTest($stageIDList[3])) && p('name,percent,type') && e('测试,15,qa'); // 测试获取阶段 4 +r($stage->getByIDTest($stageIDList[4])) && p('name,percent,type') && e('发布,10,release'); // 测试获取阶段 5 +r($stage->getByIDTest($stageIDList[5])) && p('name,percent,type') && e('总结评审,5,review'); // 测试获取阶段 6 diff --git a/test/model/stage/getpairs.php b/test/model/stage/getpairs.php new file mode 100755 index 0000000000..b1c4e34e73 --- /dev/null +++ b/test/model/stage/getpairs.php @@ -0,0 +1,22 @@ +#!/usr/bin/env php +getPairs(); +cid=1 +pid=1 + +*/ + +$stage = new stageTest(); + +r($stage->getPairsTest()) && p('1') && e('需求'); // 测试获取阶段 1 +r($stage->getPairsTest()) && p('2') && e('设计'); // 测试获取阶段 2 +r($stage->getPairsTest()) && p('3') && e('开发'); // 测试获取阶段 3 +r($stage->getPairsTest()) && p('4') && e('测试'); // 测试获取阶段 4 +r($stage->getPairsTest()) && p('5') && e('发布'); // 测试获取阶段 5 +r($stage->getPairsTest()) && p('6') && e('总结评审'); // 测试获取阶段 6 diff --git a/test/model/stage/getstages.php b/test/model/stage/getstages.php new file mode 100755 index 0000000000..d58f5146f5 --- /dev/null +++ b/test/model/stage/getstages.php @@ -0,0 +1,22 @@ +#!/usr/bin/env php +getStages(); +cid=1 +pid=1 + +*/ + +$stage = new stageTest(); + +r($stage->getStagesTest()) && p('1:name,percent,type') && e('需求,10,request'); // 测试获取阶段 1 +r($stage->getStagesTest()) && p('2:name,percent,type') && e('设计,10,design'); // 测试获取阶段 2 +r($stage->getStagesTest()) && p('3:name,percent,type') && e('开发,50,dev'); // 测试获取阶段 3 +r($stage->getStagesTest()) && p('4:name,percent,type') && e('测试,15,qa'); // 测试获取阶段 4 +r($stage->getStagesTest()) && p('5:name,percent,type') && e('发布,10,release'); // 测试获取阶段 5 +r($stage->getStagesTest()) && p('6:name,percent,type') && e('总结评审,5,review'); // 测试获取阶段 6 diff --git a/test/model/stage/update.php b/test/model/stage/update.php new file mode 100755 index 0000000000..e52ea89cb5 --- /dev/null +++ b/test/model/stage/update.php @@ -0,0 +1,27 @@ +#!/usr/bin/env php +update(); +cid=1 +pid=1 + +*/ + +$stageID = 1; + +$changeName = array('name' => '修改后的需求'); +$changePercent = array('percent' => '15'); +$changeType = array('type' => 'other'); + +$stage = new stageTest(); + +r($stage->updateTest($stageID, $changeName)) && p('0:field,old,new') && e('name,需求,修改后的需求'); // 测试修改名称 +r($stage->updateTest($stageID, $changePercent)) && p('0:field,old,new') && e('percent,10,15'); // 测试修改工作量占比 +r($stage->updateTest($stageID, $changeType)) && p('0:field,old,new') && e('type,request,other'); // 测试修改阶段分类 +system("./ztest init"); + diff --git a/test/ztest b/test/ztest index a03d2f0b42..4b11c90231 100755 --- a/test/ztest +++ b/test/ztest @@ -76,6 +76,9 @@ switch($argv[1]) case 'cron': ztfRun('model/cron'); break; + case 'stage': + ztfRun('model/stage'); + break; case 'design': ztfRun('model/design'); break; From bdb910be616499de6584c5eb1747ff173f804cab Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 12 Apr 2022 15:54:15 +0800 Subject: [PATCH 2/2] * Add unit test of stage. --- test/class/stage.class.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/test/class/stage.class.php b/test/class/stage.class.php index 2e15e06386..55d04a9e87 100644 --- a/test/class/stage.class.php +++ b/test/class/stage.class.php @@ -49,6 +49,14 @@ class stageTest return count($objects); } + /** + * Test update a stage. + * + * @param int $stageID + * @param array $param + * @access public + * @return array + */ public function updateTest($stageID, $param) { foreach($param as $key => $value) $_POST[$key] = $value; @@ -62,6 +70,13 @@ class stageTest return $objects; } + /** + * Test get stages. + * + * @param string $orderBy + * @access public + * @return array + */ public function getStagesTest($orderBy = 'id_desc') { $objects = $this->objectModel->getStages($orderBy = 'id_desc'); @@ -71,6 +86,12 @@ class stageTest return $objects; } + /** + * Test get pairs of stage. + * + * @access public + * @return array + */ public function getPairsTest() { $objects = $this->objectModel->getPairs();