From 40770178ffe8d0a802249b87f5a734effee7601d Mon Sep 17 00:00:00 2001 From: liumengyi Date: Thu, 23 Feb 2023 09:11:13 +0000 Subject: [PATCH] * Add uni test. --- test/class/programplan.class.php | 49 ++++++++ test/class/stage.class.php | 14 ++- test/model/programplan/checkcodeunique.php | 41 +++++++ test/model/programplan/checknameunique.php | 34 ++++++ .../programplan/getparentchildrentypes.php | 54 +++++++++ test/model/stage/batchcreate.php | 63 ++++++++--- test/model/stage/create.php | 105 ++++++++++++++---- 7 files changed, 317 insertions(+), 43 deletions(-) create mode 100644 test/model/programplan/checkcodeunique.php create mode 100644 test/model/programplan/checknameunique.php create mode 100755 test/model/programplan/getparentchildrentypes.php diff --git a/test/class/programplan.class.php b/test/class/programplan.class.php index 71cf840caa..ef4cb9c0f3 100644 --- a/test/class/programplan.class.php +++ b/test/class/programplan.class.php @@ -336,4 +336,53 @@ class programplanTest return implode(',', $objects); } + + /** + * Test get parent stage's children types. + * + * @param int $parentID + * @access public + * @return string + */ + public function getParentChildrenTypesTest($parentID) + { + $objects = $this->objectModel->getParentChildrenTypes($parentID); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Test check code unique. + * + * @param array $codes + * @param array $planIDList + * @access public + * @return string + */ + public function checkCodeUniqueTest($codes, $planIDList = array()) + { + $objects = $this->objectModel->checkCodeUnique($codes, $planIDList); + + if(dao::isError()) return dao::getError(); + + return $objects; + } + + /** + * Test check name unique. + * + * @param array $names + * @access public + * @return string + */ + public function checkNameUniqueTest($names) + { + $objects = $this->objectModel->checkNameUnique($names); + + if(dao::isError()) return dao::getError(); + + return $objects; + } } diff --git a/test/class/stage.class.php b/test/class/stage.class.php index 55d04a9e87..3654754195 100644 --- a/test/class/stage.class.php +++ b/test/class/stage.class.php @@ -11,20 +11,21 @@ class stageTest * Test create a stage. * * @param object $stage + * @param string $type * @access public * @return object */ - public function createTest($stage) + public function createTest($stage, $type = 'waterfall') { foreach($stage as $key => $value) $_POST[$key] = $value; - $objectID = $this->objectModel->create(); + $objectID = $this->objectModel->create($type); unset($_POST); if(dao::isError()) return dao::getError(); - $object = $this->objectModel->getByID($objectID); + $object = $this->objectModel->getByID($objectID, $type); return $object; } @@ -32,20 +33,21 @@ class stageTest * Test batch create stages. * * @param array $param + * @param string $type * @access public * @return int */ - public function batchCreateTest($param) + public function batchCreateTest($param ,$type = 'waterfall') { foreach($param as $key => $value) $_POST[$key] = $value; - $this->objectModel->batchCreate(); + $this->objectModel->batchCreate($type); unset($_POST); if(dao::isError()) return dao::getError(); - $objects = $this->objectModel->getStages(); + $objects = $this->objectModel->getStages('id_desc', 0, $type); return count($objects); } diff --git a/test/model/programplan/checkcodeunique.php b/test/model/programplan/checkcodeunique.php new file mode 100644 index 0000000000..a8f5a878bc --- /dev/null +++ b/test/model/programplan/checkcodeunique.php @@ -0,0 +1,41 @@ +#!/usr/bin/env php +id->range('10-15'); +$programplan->code->range('1-5')->prefix('code'); +$programplan->deleted->range('0-1'); +$programplan->gen(5); + +/** + +title=测试 programplanModel->checkCodeUnique(); +cid=1 +pid=1 + +检查'code1', 'code2', 'code3', 'code4', 'code5' 在未删除的数据内编号是否唯一 code1 >> code1 +检查'code1', 'code2', 'code3', 'code4', 'code5' 在未删除的数据内编号是否唯一 code3 >> code3 +检查'code1', 'code2', 'code3', 'code4', 'code5' 在未删除的数据内编号是否唯一 code5 >> code5 +检查'code1', 'code2', 'code3', 'code4', 'code5' 在除了id为'10', '11', '12', '13', '14'外的未删除数据编号是否唯一 >> 1 +检查'code6', 'code7' 在未删除的数据内编号是否唯一 >> 1 +检查'code2', 'code4' 在未删除的数据内编号是否唯一 >> 1 + +*/ + +$codes = array(); +$codes[] = array('code1', 'code2', 'code3', 'code4', 'code5'); +$codes[] = array('code6', 'code7'); +$codes[] = array('code2', 'code4'); +$exclude = array('10', '11', '12', '13', '14'); + +$programplan = new programplanTest(); + +r($programplan->checkCodeUniqueTest($codes[0])) && p('code1') && e('code1'); // 检查'code1', 'code2', 'code3', 'code4', 'code5' 在未删除的数据内编号是否唯一 code1 +r($programplan->checkCodeUniqueTest($codes[0])) && p('code3') && e('code3'); // 检查'code1', 'code2', 'code3', 'code4', 'code5' 在未删除的数据内编号是否唯一 code3 +r($programplan->checkCodeUniqueTest($codes[0])) && p('code5') && e('code5'); // 检查'code1', 'code2', 'code3', 'code4', 'code5' 在未删除的数据内编号是否唯一 code5 +r($programplan->checkCodeUniqueTest($codes[0], $exclude)) && p() && e('1'); // 检查'code1', 'code2', 'code3', 'code4', 'code5' 在除了id为'10', '11', '12', '13', '14'外的未删除数据编号是否唯一 +r($programplan->checkCodeUniqueTest($codes[1])) && p() && e('1'); // 检查'code6', 'code7' 在未删除的数据内编号是否唯一 +r($programplan->checkCodeUniqueTest($codes[2])) && p() && e('1'); // 检查'code2', 'code4' 在未删除的数据内编号是否唯一 diff --git a/test/model/programplan/checknameunique.php b/test/model/programplan/checknameunique.php new file mode 100644 index 0000000000..e67402b25b --- /dev/null +++ b/test/model/programplan/checknameunique.php @@ -0,0 +1,34 @@ +#!/usr/bin/env php +id->range('10-15'); +$programplan->name->range('1-5')->prefix('name'); +$programplan->deleted->range('0-1'); +$programplan->gen(5); + +/** + +title=测试 programplanModel->checkNameUnique(); +cid=1 +pid=1 + +检查'name1', 'name2', 'name1', 'name3', 'name5' 数组的值是否唯一 >> 0 +检查'name6', 'name7' 数组的值是否唯一 >> 1 +检查'name2', 'name2' 数组的值是否唯一 >> 0 + +*/ + +$names = array(); +$names[] = array('name1', 'name2', 'name1', 'name3', 'name5'); +$names[] = array('name6', 'name7'); +$names[] = array('name2', 'name2'); + +$programplan = new programplanTest(); + +r($programplan->checkNameUniqueTest($names[0])) && p() && e('0'); // 检查'name1', 'name2', 'name1', 'name3', 'name5' 数组的值是否唯一 +r($programplan->checkNameUniqueTest($names[1])) && p() && e('1'); // 检查'name6', 'name7' 数组的值是否唯一 +r($programplan->checkNameUniqueTest($names[2])) && p() && e('0'); // 检查'name2', 'name2' 数组的值是否唯一 diff --git a/test/model/programplan/getparentchildrentypes.php b/test/model/programplan/getparentchildrentypes.php new file mode 100755 index 0000000000..cb922b36c0 --- /dev/null +++ b/test/model/programplan/getparentchildrentypes.php @@ -0,0 +1,54 @@ +#!/usr/bin/env php +id->range('10-20'); +$programplan->parent->range('1-3'); +$programplan->type->range('stage{3},sprint{2},kanban{2},stage{1},sprint{2}'); +$programplan->deleted->range('0-1'); +$programplan->gen(10); + +/** + +title=测试 programplanModel->getParentChildrenTypes(); +cid=1 +pid=1 + +查找父ID为 1 未删除的阶段类型 stage >> stage +查找父ID为 1 未删除的阶段类型 kanban >> kanban +查找父ID为 1 未删除的阶段类型数量 >> 2 +查找父ID为 2 未删除的阶段类型 sprint >> sprint +查找父ID为 2 未删除的阶段类型数量 >> 1 +查找父ID为 3 未删除的阶段类型 stage >> stage +查找父ID为 3 未删除的阶段类型 sprint >> sprint +查找父ID为 3 未删除的阶段类型数量 >> 2 +查找父ID为 1 未删除的阶段类型 stage >> 0 +查找父ID为 1 未删除的阶段类型 sprint >> 0 +查找父ID为 1 未删除的阶段类型 kanban >> 0 +查找父ID为 1 未删除的阶段类型数量 >> 0 + +*/ + +$parentIDList = array(1, 2, 3, 4); + +$programplan = new programplanTest(); + +r($programplan->getParentChildrenTypesTest($parentIDList[0])) && p('stage') && e('stage'); // 查找父ID为 1 未删除的阶段类型 stage +r($programplan->getParentChildrenTypesTest($parentIDList[0])) && p('sprint') && e(''); // 查找父ID为 1 未删除的阶段类型 sprint +r($programplan->getParentChildrenTypesTest($parentIDList[0])) && p('kanban') && e('kanban'); // 查找父ID为 1 未删除的阶段类型 kanban +r(count($programplan->getParentChildrenTypesTest($parentIDList[0]))) && p() && e('2'); // 查找父ID为 1 未删除的阶段类型数量 +r($programplan->getParentChildrenTypesTest($parentIDList[1])) && p('stage') && e(''); // 查找父ID为 2 未删除的阶段类型 stage +r($programplan->getParentChildrenTypesTest($parentIDList[1])) && p('sprint') && e('sprint'); // 查找父ID为 2 未删除的阶段类型 sprint +r($programplan->getParentChildrenTypesTest($parentIDList[1])) && p('kanban') && e(''); // 查找父ID为 2 未删除的阶段类型 kanban +r(count($programplan->getParentChildrenTypesTest($parentIDList[1]))) && p() && e('1'); // 查找父ID为 2 未删除的阶段类型数量 +r($programplan->getParentChildrenTypesTest($parentIDList[2])) && p('stage') && e('stage'); // 查找父ID为 3 未删除的阶段类型 stage +r($programplan->getParentChildrenTypesTest($parentIDList[2])) && p('sprint') && e('sprint'); // 查找父ID为 3 未删除的阶段类型 sprint +r($programplan->getParentChildrenTypesTest($parentIDList[2])) && p('kanban') && e(''); // 查找父ID为 3 未删除的阶段类型 kanban +r(count($programplan->getParentChildrenTypesTest($parentIDList[2]))) && p() && e('2'); // 查找父ID为 3 未删除的阶段类型数量 +r($programplan->getParentChildrenTypesTest($parentIDList[3])) && p('stage') && e('0'); // 查找父ID为 1 未删除的阶段类型 stage +r($programplan->getParentChildrenTypesTest($parentIDList[3])) && p('sprint') && e('0'); // 查找父ID为 1 未删除的阶段类型 sprint +r($programplan->getParentChildrenTypesTest($parentIDList[3])) && p('kanban') && e('0'); // 查找父ID为 1 未删除的阶段类型 kanban +r(count($programplan->getParentChildrenTypesTest($parentIDList[3]))) && p() && e('0'); // 查找父ID为 1 未删除的阶段类型数量 diff --git a/test/model/stage/batchcreate.php b/test/model/stage/batchcreate.php index e235895fcd..f73307da4f 100755 --- a/test/model/stage/batchcreate.php +++ b/test/model/stage/batchcreate.php @@ -2,7 +2,6 @@ switchDB(); su('admin'); /** @@ -11,12 +10,26 @@ title=测试 stageModel->batchCreate(); cid=1 pid=1 -测试批量创建阶段 1 >> 8 -测试批量创建阶段 2 >> 10 -测试批量创建阶段 3 >> 12 -测试批量创建阶段 4 >> 13 +测试批量创建瀑布项目的阶段 1 >> 2 +测试批量创建瀑布项目的阶段 2 >> 4 +测试批量创建瀑布项目的阶段 3 >> 6 +测试批量创建瀑布项目的阶段 4 >> 7 +测试批量创建瀑布项目的百分比为空的阶段 >> 『工作量占比』不能为空。 +测试批量创建瀑布项目的类型为空的阶段 >> 『阶段类型』不能为空。 +测试批量创建瀑布项目的百分比非法的阶段 >> 工作量占比应当是数字,可以是小数。 +测试批量创建瀑布项目的百分比超出100的阶段 >> 工作量占比累计不应当超过100% +测试批量创建融合瀑布项目的阶段 1 >> 2 +测试批量创建融合瀑布项目的阶段 2 >> 4 +测试批量创建融合瀑布项目的阶段 3 >> 6 +测试批量创建融合瀑布项目的阶段 4 >> 7 +测试批量创建融合瀑布项目的百分比为空的阶段 >> 『工作量占比』不能为空。 +测试批量创建融合瀑布项目的类型为空的阶段 >> 『阶段类型』不能为空。 +测试批量创建融合瀑布项目的百分比非法的阶段 >> 工作量占比应当是数字,可以是小数。 +测试批量创建融合瀑布项目的百分比超出100的阶段 >> 工作量占比累计不应当超过100% */ +zdTable('stage')->gen(0); + $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' => ''); @@ -33,15 +46,37 @@ $name4 = array('1' => '', '2' => '批量创建的其他', '3' => '', '4' => ' $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); +$emptyPercent = array('1' => '', '2' => '','3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); +$emptyType = array('1' => '', '2' => '','3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); +$IllegalPercent = array('1' => 'a', '2' => 'b','3' => '', '4' => '', '5' => '', '6' => '', '7' => '', '8' => '', '9' => '', '10' => ''); +$percentOver = array('1' => '111', '2' => '2','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); +$param5 = array('name' => $name1, 'percent' => $emptyPercent, 'type' => $type1); +$param6 = array('name' => $name1, 'percent' => $percent1, 'type' => $emptyType); +$param7 = array('name' => $name1, 'percent' => $IllegalPercent, 'type' => $type1); +$param8 = array('name' => $name1, 'percent' => $percentOver, 'type' => $type1); + $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 -$db->restoreDB(); \ No newline at end of file +r($stage->batchCreateTest($param1)) && p() && e('2'); // 测试批量创建瀑布项目的阶段 1 +r($stage->batchCreateTest($param2)) && p() && e('4'); // 测试批量创建瀑布项目的阶段 2 +r($stage->batchCreateTest($param3)) && p() && e('6'); // 测试批量创建瀑布项目的阶段 3 +r($stage->batchCreateTest($param4)) && p() && e('7'); // 测试批量创建瀑布项目的阶段 4 +r($stage->batchCreateTest($param5)) && p('percent:0') && e('『工作量占比』不能为空。'); // 测试批量创建瀑布项目的百分比为空的阶段 +r($stage->batchCreateTest($param6)) && p('type:0') && e('『阶段类型』不能为空。'); // 测试批量创建瀑布项目的类型为空的阶段 +r($stage->batchCreateTest($param7)) && p('percent:0') && e('工作量占比应当是数字,可以是小数。'); // 测试批量创建瀑布项目的百分比非法的阶段 +r($stage->batchCreateTest($param8)) && p('message:0') && e('工作量占比累计不应当超过100%'); // 测试批量创建瀑布项目的百分比超出100的阶段 +r($stage->batchCreateTest($param1, 'waterfallplus')) && p() && e('2'); // 测试批量创建融合瀑布项目的阶段 1 +r($stage->batchCreateTest($param2, 'waterfallplus')) && p() && e('4'); // 测试批量创建融合瀑布项目的阶段 2 +r($stage->batchCreateTest($param3, 'waterfallplus')) && p() && e('6'); // 测试批量创建融合瀑布项目的阶段 3 +r($stage->batchCreateTest($param4, 'waterfallplus')) && p() && e('7'); // 测试批量创建融合瀑布项目的阶段 4 +r($stage->batchCreateTest($param5, 'waterfallplus')) && p('percent:0') && e('『工作量占比』不能为空。'); // 测试批量创建融合瀑布项目的百分比为空的阶段 +r($stage->batchCreateTest($param6, 'waterfallplus')) && p('type:0') && e('『阶段类型』不能为空。'); // 测试批量创建融合瀑布项目的类型为空的阶段 +r($stage->batchCreateTest($param7, 'waterfallplus')) && p('percent:0') && e('工作量占比应当是数字,可以是小数。'); // 测试批量创建融合瀑布项目的百分比非法的阶段 +r($stage->batchCreateTest($param8, 'waterfallplus')) && p('message:0') && e('工作量占比累计不应当超过100%'); // 测试批量创建融合瀑布项目的百分比超出100的阶段 diff --git a/test/model/stage/create.php b/test/model/stage/create.php index 507cdea273..5ec9c59127 100755 --- a/test/model/stage/create.php +++ b/test/model/stage/create.php @@ -2,7 +2,6 @@ switchDB(); su('admin'); /** @@ -11,58 +10,118 @@ title=测试 stageModel->create(); cid=1 pid=1 -测试新建一个需求阶段 >> 新建的需求,1,request -测试新建一个设计阶段 >> 新建的设计,2,design -测试新建一个开发阶段 >> 新建的开发,3,dev -测试新建一个测试阶段 >> 新建的测试,4,qa -测试新建一个发布阶段 >> 新建的发布,5,release -测试新建一个总结评审阶段 >> 新建的总结评审,6,review -测试新建一个其他阶段 >> 新建的其他,7,other +测试新建瀑布项目一个需求阶段 >> 新建的需求,1,request +测试新建瀑布项目一个设计阶段 >> 新建的设计,2,design +测试新建瀑布项目一个开发阶段 >> 新建的开发,3,dev +测试新建瀑布项目一个测试阶段 >> 新建的测试,4,qa +测试新建瀑布项目一个发布阶段 >> 新建的发布,5,release +测试新建瀑布项目一个总结评审阶段 >> 新建的总结评审,6,review +测试新建瀑布项目一个其他阶段 >> 新建的其他,7,other +测试新建瀑布项目名称为空 >> 『阶段名称』不能为空。 +测试新建瀑布项目类型为空 >> 『工作量占比』不能为空。 +测试新建瀑布项目百分比为空 >> 『阶段类型』不能为空。 +测试新建瀑布项目非数字的百分比 >> 工作量占比应当是数字 +测试新建瀑布项目总百分比超过100 >> 工作量占比累计不应当超过100% +测试新建融合瀑布项目一个需求阶段 >> 新建的需求,1,request +测试新建融合瀑布项目一个设计阶段 >> 新建的设计,2,design +测试新建融合瀑布项目一个开发阶段 >> 新建的开发,3,dev +测试新建融合瀑布项目一个测试阶段 >> 新建的测试,4,qa +测试新建融合瀑布项目一个发布阶段 >> 新建的发布,5,release +测试新建融合瀑布项目一个总结评审阶段 >> 新建的总结评审,6,review +测试新建融合瀑布项目一个其他阶段 >> 新建的其他,7,other +测试新建融合瀑布项目名称为空 >> 『阶段名称』不能为空。 +测试新建融合瀑布项目类型为空 >> 『工作量占比』不能为空。 +测试新建融合瀑布项目百分比为空 >> 『阶段类型』不能为空。 +测试新建融合瀑布项目非数字的百分比 >> 工作量占比应当是数字 +测试新建融合瀑布项目总百分比超过100 >> 工作量占比累计不应当超过100% */ +zdTable('stage')->gen(0); + $stage1 = new stdclass(); -$stage1->name = '新建的需求'; +$stage1->name = '新建的需求'; $stage1->percent = 1; $stage1->type = 'request'; $stage2 = new stdclass(); -$stage2->name = '新建的设计'; +$stage2->name = '新建的设计'; $stage2->percent = 2; $stage2->type = 'design'; $stage3 = new stdclass(); -$stage3->name = '新建的开发'; +$stage3->name = '新建的开发'; $stage3->percent = 3; $stage3->type = 'dev'; $stage4 = new stdclass(); -$stage4->name = '新建的测试'; +$stage4->name = '新建的测试'; $stage4->percent = 4; $stage4->type = 'qa'; $stage5 = new stdclass(); -$stage5->name = '新建的发布'; +$stage5->name = '新建的发布'; $stage5->percent = 5; $stage5->type = 'release'; $stage6 = new stdclass(); -$stage6->name = '新建的总结评审'; +$stage6->name = '新建的总结评审'; $stage6->percent = 6; $stage6->type = 'review'; $stage7 = new stdclass(); -$stage7->name = '新建的其他'; +$stage7->name = '新建的其他'; $stage7->percent = 7; $stage7->type = 'other'; +$emptyName = new stdclass(); +$emptyName->name = ''; +$emptyName->percent = 7; +$emptyName->type = 'other'; + +$emptyPercent = new stdclass(); +$emptyPercent->name = '1'; +$emptyPercent->percent = 0; +$emptyPercent->type = 'other'; + +$emptyType = new stdclass(); +$emptyType->name = '1'; +$emptyType->percent = 7; +$emptyType->type = ''; + +$IllegalPercent = new stdclass(); +$IllegalPercent->name = '一个名称'; +$IllegalPercent->percent = 'a'; +$IllegalPercent->type = 'other'; + +$percentOver = new stdclass(); +$percentOver->name = '一个名称'; +$percentOver->percent = 101; +$percentOver->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'); // 测试新建一个其他阶段 -$db->restoreDB(); \ No newline at end of file +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'); // 测试新建瀑布项目一个其他阶段 +r($stage->createTest($emptyName)) && p('name:0') && e('『阶段名称』不能为空。'); // 测试新建瀑布项目名称为空 +r($stage->createTest($emptyPercent)) && p('percent:0') && e('『工作量占比』不能为空。'); // 测试新建瀑布项目类型为空 +r($stage->createTest($emptyType)) && p('type:0') && e('『阶段类型』不能为空。'); // 测试新建瀑布项目百分比为空 +r($stage->createTest($IllegalPercent)) && p('message:0') && e('工作量占比应当是数字'); // 测试新建瀑布项目非数字的百分比 +r($stage->createTest($percentOver)) && p('message:0') && e('工作量占比累计不应当超过100%'); // 测试新建瀑布项目总百分比超过100 +r($stage->createTest($stage1, 'waterfallplus')) && p('name,percent,type') && e('新建的需求,1,request'); // 测试新建融合瀑布项目一个需求阶段 +r($stage->createTest($stage2, 'waterfallplus')) && p('name,percent,type') && e('新建的设计,2,design'); // 测试新建融合瀑布项目一个设计阶段 +r($stage->createTest($stage3, 'waterfallplus')) && p('name,percent,type') && e('新建的开发,3,dev'); // 测试新建融合瀑布项目一个开发阶段 +r($stage->createTest($stage4, 'waterfallplus')) && p('name,percent,type') && e('新建的测试,4,qa'); // 测试新建融合瀑布项目一个测试阶段 +r($stage->createTest($stage5, 'waterfallplus')) && p('name,percent,type') && e('新建的发布,5,release'); // 测试新建融合瀑布项目一个发布阶段 +r($stage->createTest($stage6, 'waterfallplus')) && p('name,percent,type') && e('新建的总结评审,6,review'); // 测试新建融合瀑布项目一个总结评审阶段 +r($stage->createTest($stage7, 'waterfallplus')) && p('name,percent,type') && e('新建的其他,7,other'); // 测试新建融合瀑布项目一个其他阶段 +r($stage->createTest($emptyName, 'waterfallplus')) && p('name:0') && e('『阶段名称』不能为空。'); // 测试新建融合瀑布项目名称为空 +r($stage->createTest($emptyPercent, 'waterfallplus')) && p('percent:0') && e('『工作量占比』不能为空。'); // 测试新建融合瀑布项目类型为空 +r($stage->createTest($emptyType, 'waterfallplus')) && p('type:0') && e('『阶段类型』不能为空。'); // 测试新建融合瀑布项目百分比为空 +r($stage->createTest($IllegalPercent, 'waterfallplus')) && p('message:0') && e('工作量占比应当是数字'); // 测试新建融合瀑布项目非数字的百分比 +r($stage->createTest($percentOver, 'waterfallplus')) && p('message:0') && e('工作量占比累计不应当超过100%'); // 测试新建融合瀑布项目总百分比超过100