diff --git a/test/class/kanban.class.php b/test/class/kanban.class.php index e3db1a9739..4127ec94be 100644 --- a/test/class/kanban.class.php +++ b/test/class/kanban.class.php @@ -926,15 +926,38 @@ class kanbanTest return $object; } + /** + * Test remove kanban cell. + * + * @param string $type + * @param int $removeCardID + * @param array $kanbanList + * @access public + * @return string + */ public function removeKanbanCellTest($type, $removeCardID, $kanbanList) { - $objects = $this->objectModel->removeKanbanCell($type, $removeCardID, $kanbanList); + $this->objectModel->removeKanbanCell($type, $removeCardID, $kanbanList); if(dao::isError()) return dao::getError(); - return $objects; + global $tester; + $objects = $tester->dao->select('*')->from(TABLE_KANBANCELL)->where('kanban')->in($kanbanList)->andWhere('type')->eq($type)->fetchAll(); + $cards = ''; + foreach($objects as $object) $cards .= $object->id . ':' . $object->cards . '; '; + $cards = trim($cards, '; '); + $cards = str_replace(':,', ':', $cards); + $cards = str_replace(':;', ';', $cards); + return $cards; } + /** + * Test create rd kanban. + * + * @param object $execution + * @access public + * @return string + */ public function createRDKanbanTest($execution) { $this->objectModel->createRDKanban($execution); @@ -1026,13 +1049,29 @@ class kanbanTest return $objects; } - public function refreshCardsTest($lane) + /** + * Test refresh column cards. + * + * @param int $laneID + * @access public + * @return string + */ + public function refreshCardsTest($laneID) { - $objects = $this->objectModel->refreshCards($lane); + $lane = $this->objectModel->getLaneByID($laneID); + $this->objectModel->refreshCards($lane); if(dao::isError()) return dao::getError(); - return $objects; + global $tester; + $objects = $tester->dao->select('*')->from(TABLE_KANBANCELL)->where('`lane`')->eq($laneID)->fetchAll(); + + $cards = ''; + foreach($objects as $object) $cards .= $object->id . ':' . $object->cards . '; '; + $cards = trim($cards, '; '); + $cards = str_replace(':,', ':', $cards); + $cards = str_replace(':;', ';', $cards); + return $cards; } public function updateLaneColumnTest($columnID, $column) @@ -1085,40 +1124,102 @@ class kanbanTest return $objects; } - public function setWIPTest($columnID) + /** + * Test set WIP. + * + * @param int $columnID + * @param int $limit + * @param int $WIPCount + * @access public + * @return object + */ + public function setWIPTest($columnID, $limit, $WIPCount) { - $objects = $this->objectModel->setWIP($columnID); + $_POST['limit'] = $limit; + if($WIPCount == '-1') $_POST['WIPCount'] = $WIPCount; + if($WIPCount == '-1') $_POST['noLimit'] = $WIPCount; + + $this->objectModel->setWIP($columnID); + + unset($_POST); if(dao::isError()) return dao::getError(); - return $objects; + $object = $this->objectModel->getColumnByID($columnID); + return $object; } - public function setLaneTest($laneID) + /** + * Test set a lane. + * + * @param int $laneID + * @access public + * @return object + */ + public function setLaneTest($laneID, $name, $color) { - $objects = $this->objectModel->setLane($laneID); + $_POST['name'] = $name; + $_POST['color'] = $color; + + $this->objectModel->setLane($laneID); + + unset($_POST); if(dao::isError()) return dao::getError(); - return $objects; + $object = $this->objectModel->getLaneByID($laneID); + return $object; } - public function setLaneHeightTest($kanbanID, $from = 'kanban') + /** + * Test set kanban lane height. + * + * @param int $kanbanID + * @param string $heightType + * @param int $displayCards + * @param string $from + * @access public + * @return object + */ + public function setLaneHeightTest($kanbanID, $heightType, $displayCards, $from = 'kanban') { - $objects = $this->objectModel->setLaneHeight($kanbanID, $from = 'kanban'); + $_POST['heightType'] = $heightType; + $_POST['displayCards'] = $displayCards; + + $this->objectModel->setLaneHeight($kanbanID, $from); + + unset($_POST); if(dao::isError()) return dao::getError(); - return $objects; + global $tester; + $table = $tester->config->objectTables[$from]; + $object = $tester->dao->select('*')->from($table)->where('id')->eq($kanbanID)->fetch(); + return $object; } - public function setColumnWidthTest($kanbanID, $from = 'kanban') + /** + * Test set column width. + * + * @param int $kanbanID + * @param string $from + * @access public + * @return object + */ + public function setColumnWidthTest($kanbanID, $fluidBoard, $from = 'kanban') { - $objects = $this->objectModel->setColumnWidth($kanbanID, $from = 'kanban'); + $_POST['fluidBoard'] = $fluidBoard; + + $this->objectModel->setColumnWidth($kanbanID, $from); + + unset($_POST); if(dao::isError()) return dao::getError(); - return $objects; + global $tester; + $table = $tester->config->objectTables[$from]; + $object = $tester->dao->select('*')->from($table)->where('id')->eq($kanbanID)->fetch(); + return $object; } public function setHeaderActionsTest($kanban) @@ -1207,13 +1308,22 @@ class kanbanTest return $object; } + /** + * Test restore a column. + * + * @param int $columnID + * @access public + * @return object + */ public function restoreColumnTest($columnID) { - $objects = $this->objectModel->restoreColumn($columnID); + $this->objectModel->restoreColumn($columnID); if(dao::isError()) return dao::getError(); - return $objects; + global $tester; + $object = $tester->dao->select('*')->from(TABLE_KANBANCOLUMN)->where('`id`')->eq($columnID)->fetch(); + return $object; } /** @@ -1232,6 +1342,13 @@ class kanbanTest return $changes; } + /** + * Test restore a card. + * + * @param int $cardID + * @access public + * @return array + */ public function restoreCardTest($cardID) { $objects = $this->objectModel->restoreCard($cardID); @@ -1241,13 +1358,21 @@ class kanbanTest return $objects; } - public function processCardsTest($column) + public function processCardsTest($columnID) { - $objects = $this->objectModel->processCards($column); + $column = $this->objectModel->getColumnByID($columnID); + $this->objectModel->processCards($column); if(dao::isError()) return dao::getError(); - return $objects; + global $tester; + $nodes = $tester->dao->select('id,id')->from(TABLE_KANBANCOLUMN)->where('`parent`')->eq($column->parent)->fetchPairs(); + $objects = $tester->dao->select('*')->from(TABLE_KANBANCELL)->where('`column`')->in(array_keys($nodes))->fetchAll(); + + $cards = ''; + foreach($objects as $object) $cards .= $object->id . ':' . $object->cards . '; '; + $cards = trim($cards, '; '); + return $cards; } /** diff --git a/test/model/kanban/movecard.php b/test/model/kanban/movecard.php index 1b5c266ff5..a36c0b1c28 100755 --- a/test/model/kanban/movecard.php +++ b/test/model/kanban/movecard.php @@ -25,3 +25,4 @@ r($kanban->moveCardTest($cardIDList[2], $columnIDList[1], $columnIDList[2], $lan r($kanban->moveCardTest($cardIDList[3], $columnIDList[1], $columnIDList[2], $laneID, $laneID, $kanbanID)) && p('cards') && e(',5,6,805,3,4,'); // 将卡片4从泳道1 列2转移到泳道1 列3 r($kanban->moveCardTest($cardIDList[4], $columnIDList[2], $columnIDList[0], $laneID, $laneID, $kanbanID)) && p('cards') && e(',801,5,'); // 将卡片5从泳道1 列3转移到泳道1 列1 r($kanban->moveCardTest($cardIDList[5], $columnIDList[2], $columnIDList[0], $laneID, $laneID, $kanbanID)) && p('cards') && e(',801,5,6,'); // 将卡片6从泳道1 列3转移到泳道1 列1 +system("./ztest init"); diff --git a/test/model/kanban/refreshcards.php b/test/model/kanban/refreshcards.php new file mode 100755 index 0000000000..707cc4f64d --- /dev/null +++ b/test/model/kanban/refreshcards.php @@ -0,0 +1,24 @@ +#!/usr/bin/env php +refreshCards(); +cid=1 +pid=1 + +*/ + +$laneIDList = array('101', '102', '103', '104', '105'); + +$kanban = new kanbanTest(); + +r($kanban->refreshCardsTest($laneIDList[0])) && p() && e('401; 402; 403; 404:244,; 405; 406; 407; 408; 409; 410; 411:'); // 刷新泳道101的卡片 +r($kanban->refreshCardsTest($laneIDList[1])) && p() && e('412; 413; 414; 415; 416; 417; 418; 419; 420:181,182,183,'); // 刷新泳道102的卡片 +r($kanban->refreshCardsTest($laneIDList[2])) && p() && e('421:781,61,; 422; 423:782,; 424:783,; 425; 426; 427:'); // 刷新泳道103的卡片 +r($kanban->refreshCardsTest($laneIDList[3])) && p() && e('428; 429; 430; 431; 432; 433; 434:246,; 435; 436:248,; 437; 438:'); // 刷新泳道104的卡片 +r($kanban->refreshCardsTest($laneIDList[4])) && p() && e('439; 440; 441; 442; 443; 444; 445; 446; 447:184,185,186,'); // 刷新泳道105的卡片 +system("./ztest init"); diff --git a/test/model/kanban/removekanbancell.php b/test/model/kanban/removekanbancell.php new file mode 100755 index 0000000000..21f9cfb42b --- /dev/null +++ b/test/model/kanban/removekanbancell.php @@ -0,0 +1,29 @@ +#!/usr/bin/env php +removeKanbanCell(); +cid=1 +pid=1 + +*/ + +$typeList = array('common', 'story', 'bug', 'task'); +$cardIDList = array(array('1'), array('3', '4'), '244', '246', '181', '182', '61', '62'); +$kanbanList = array('1' => '1', '3' => '1', '4' => '1', '244' => '161', '246' => '162', '181' => '161', '182' => '161', '61' => '161', '62' => '162'); + +$kanban = new kanbanTest(); + +r($kanban->removeKanbanCellTest($typeList[0], $cardIDList[0], $kanbanList)) && p() && e('1:2,801,; 2:3,4,803,; 3:5,6,805,; 4:7,8,807, '); // 移除common 看板1的卡片1 +r($kanban->removeKanbanCellTest($typeList[0], $cardIDList[1], $kanbanList)) && p() && e('1:2,801,; 2:803,; 3:5,6,805,; 4:7,8,807,'); // 移除common 看板2的卡片3 4 +r($kanban->removeKanbanCellTest($typeList[1], $cardIDList[2], $kanbanList)) && p() && e('401; 402; 403; 404; 405; 406; 407; 408; 409; 410; 411; 428:246,; 429; 430; 431; 432; 433; 434; 435; 436; 437; 438:'); // 移除story 看板161的卡片244 +r($kanban->removeKanbanCellTest($typeList[1], $cardIDList[3], $kanbanList)) && p() && e('401; 402; 403; 404; 405; 406; 407; 408; 409; 410; 411; 428; 429; 430; 431; 432; 433; 434; 435; 436; 437; 438:'); // 移除story 看板161的卡片246 +r($kanban->removeKanbanCellTest($typeList[2], $cardIDList[4], $kanbanList)) && p() && e('412:182,183,; 413; 414; 415; 416; 417; 418; 419; 420; 439:184,185,186,; 440; 441; 442; 443; 444; 445; 446; 447:'); // 移除bug 看板161的卡片181 +r($kanban->removeKanbanCellTest($typeList[2], $cardIDList[5], $kanbanList)) && p() && e('412:183,; 413; 414; 415; 416; 417; 418; 419; 420; 439:184,185,186,; 440; 441; 442; 443; 444; 445; 446; 447:'); // 移除bug 看板161的卡片182 +r($kanban->removeKanbanCellTest($typeList[3], $cardIDList[6], $kanbanList)) && p() && e('421; 422; 423; 424; 425; 426; 427; 448:62,; 449; 450; 451; 452; 453; 454:'); // 移除task 看板161的卡片61 +r($kanban->removeKanbanCellTest($typeList[3], $cardIDList[7], $kanbanList)) && p() && e('421; 422; 423; 424; 425; 426; 427; 448; 449; 450; 451; 452; 453; 454:'); // 移除task 看板161的卡片62 +system("./ztest init"); diff --git a/test/model/kanban/restorecard.php b/test/model/kanban/restorecard.php new file mode 100755 index 0000000000..179d043d4b --- /dev/null +++ b/test/model/kanban/restorecard.php @@ -0,0 +1,28 @@ +#!/usr/bin/env php +restoreCard(); +cid=1 +pid=1 + +*/ +$kanbanIDList = array('1', '2', '3', '4', '5'); + +$kanban = new kanbanTest(); + +$kanban->archiveCardTest($kanbanIDList[0]); +$kanban->archiveCardTest($kanbanIDList[1]); +$kanban->archiveCardTest($kanbanIDList[2]); +$kanban->archiveCardTest($kanbanIDList[3]); +$kanban->archiveCardTest($kanbanIDList[4]); + +r($kanban->restoreCardTest($kanbanIDList[0])) && p('0:field,old,new') && e('archived,1,0'); // 还原卡片1 +r($kanban->restoreCardTest($kanbanIDList[1])) && p('0:field,old,new') && e('archived,1,0'); // 还原卡片1 +r($kanban->restoreCardTest($kanbanIDList[2])) && p('0:field,old,new') && e('archived,1,0'); // 还原卡片2 +r($kanban->restoreCardTest($kanbanIDList[3])) && p('0:field,old,new') && e('archived,1,0'); // 还原卡片3 +r($kanban->restoreCardTest($kanbanIDList[4])) && p('0:field,old,new') && e('archived,1,0'); // 还原卡片4 diff --git a/test/model/kanban/restorecolumn.php b/test/model/kanban/restorecolumn.php new file mode 100755 index 0000000000..f183329f57 --- /dev/null +++ b/test/model/kanban/restorecolumn.php @@ -0,0 +1,29 @@ +#!/usr/bin/env php +restoreColumn(); +cid=1 +pid=1 + +*/ + +$columnIDList = array('1', '2', '3', '4', '5'); + +$kanban = new kanbanTest(); + +$kanban->archiveColumnTest($columnIDList[0]); +$kanban->archiveColumnTest($columnIDList[1]); +$kanban->archiveColumnTest($columnIDList[2]); +$kanban->archiveColumnTest($columnIDList[3]); +$kanban->archiveColumnTest($columnIDList[4]); + +r($kanban->restoreColumnTest($columnIDList[0])) && p('name,archived') && e('未开始,0'); // 还原卡片1 +r($kanban->restoreColumnTest($columnIDList[1])) && p('name,archived') && e('进行中,0'); // 还原卡片1 +r($kanban->restoreColumnTest($columnIDList[2])) && p('name,archived') && e('已完成,0'); // 还原卡片2 +r($kanban->restoreColumnTest($columnIDList[3])) && p('name,archived') && e('已关闭,0'); // 还原卡片3 +r($kanban->restoreColumnTest($columnIDList[4])) && p('name,archived') && e('未开始,0'); // 还原卡片4 diff --git a/test/model/kanban/setcolumnwidth.php b/test/model/kanban/setcolumnwidth.php new file mode 100755 index 0000000000..2d7b1ba364 --- /dev/null +++ b/test/model/kanban/setcolumnwidth.php @@ -0,0 +1,28 @@ +#!/usr/bin/env php +setColumnWidth(); +cid=1 +pid=1 + +*/ + +$fromExecution = 'execution'; + +$kanbanIDList = array('1', '2', '3', '101', '102', '10001'); +$fluidBoard = 1; + +$kanban = new kanbanTest(); + +r($kanban->setColumnWidthTest($kanbanIDList[0], $fluidBoard)) && p('name,fluidBoard') && e('通用看板1,1'); // 测试修改看板1的fluidBoard值 +r($kanban->setColumnWidthTest($kanbanIDList[1], $fluidBoard)) && p('name,fluidBoard') && e('通用看板2,1'); // 测试修改看板2的fluidBoard值 +r($kanban->setColumnWidthTest($kanbanIDList[2], $fluidBoard)) && p('name,fluidBoard') && e('通用看板3,1'); // 测试修改看板3的fluidBoard值 +r($kanban->setColumnWidthTest($kanbanIDList[3], $fluidBoard, $fromExecution)) && p('name,fluidBoard') && e('迭代1,1'); // 测试修改看板4的fluidBoard值 +r($kanban->setColumnWidthTest($kanbanIDList[4], $fluidBoard, $fromExecution)) && p('name,fluidBoard') && e('迭代2,1'); // 测试修改看板5的fluidBoard值 +r($kanban->setColumnWidthTest($kanbanIDList[5], $fluidBoard)) && p('name,fluidBoard') && e('0'); // 测试修改不存在的看板的fluidBoard值 +system("./ztest init"); diff --git a/test/model/kanban/setlane.php b/test/model/kanban/setlane.php new file mode 100755 index 0000000000..9108981b80 --- /dev/null +++ b/test/model/kanban/setlane.php @@ -0,0 +1,28 @@ +#!/usr/bin/env php +setLane(); +cid=1 +pid=1 + +*/ + +$idList = array('1' ,'2', '3', '4', '5'); +$nameList = array('修改泳道1', '修改泳道2', '修改泳道3', '修改泳道4', '修改泳道5', '', ' '); +$colorList = array('#333', '#2b529c'); + +$kanban = new kanbanTest(); + +r($kanban->setLaneTest($idList[0], $nameList[0], $colorList[0])) && p('name,color') && e('修改泳道1,#333'); // 测试设置泳道1 +r($kanban->setLaneTest($idList[1], $nameList[1], $colorList[1])) && p('name,color') && e('修改泳道2,#2b529c'); // 测试设置泳道2 +r($kanban->setLaneTest($idList[2], $nameList[2], $colorList[0])) && p('name,color') && e('修改泳道3,#333'); // 测试设置泳道3 +r($kanban->setLaneTest($idList[3], $nameList[3], $colorList[1])) && p('name,color') && e('修改泳道4,#2b529c'); // 测试设置泳道4 +r($kanban->setLaneTest($idList[4], $nameList[4], $colorList[0])) && p('name,color') && e('修改泳道5,#333'); // 测试设置泳道5 +r($kanban->setLaneTest($idList[4], $nameList[5], $colorList[0])) && p('name:0') && e('『泳道名称』不能为空。'); // 测试设置不填写名字 +r($kanban->setLaneTest($idList[4], $nameList[6], $colorList[0])) && p('name:0') && e('『泳道名称』不能为空。'); // 测试设置填写空格 +system("./ztest init"); diff --git a/test/model/kanban/setlaneheight.php b/test/model/kanban/setlaneheight.php new file mode 100755 index 0000000000..aa376d2b42 --- /dev/null +++ b/test/model/kanban/setlaneheight.php @@ -0,0 +1,27 @@ +#!/usr/bin/env php +setLaneHeight(); +cid=1 +pid=1 + +*/ + +$laneIDList = array('1' ,'101', '102', '4', '5'); +$heightTypeList = array('auto', 'custom'); +$displayCardsList = array('', '3', '4', '2', 'a3'); + + +$kanban = new kanbanTest(); + +r($kanban->setLaneHeightTest($laneIDList[0], $heightTypeList[0], $displayCardsList[0])) && p('name,displayCards') && e('通用看板1,0'); // 测试设置看板1的泳道高度 +r($kanban->setLaneHeightTest($laneIDList[1], $heightTypeList[1], $displayCardsList[1], 'execution')) && p('name,displayCards') && e('迭代1,3'); // 测试设置看板1的泳道高度 +r($kanban->setLaneHeightTest($laneIDList[2], $heightTypeList[1], $displayCardsList[2], 'execution')) && p('name,displayCards') && e('迭代2,4'); // 测试设置看板1的泳道高度 +r($kanban->setLaneHeightTest($laneIDList[3], $heightTypeList[1], $displayCardsList[3])) && p('displayCards') && e('卡片数量必须是大于2的正整数。'); // 测试设置看板1的泳道高度 +r($kanban->setLaneHeightTest($laneIDList[4], $heightTypeList[1], $displayCardsList[4])) && p('displayCards') && e('卡片数量必须是大于2的正整数。'); // 测试设置看板1的泳道高度 +system("./ztest init"); diff --git a/test/model/kanban/setwip.php b/test/model/kanban/setwip.php new file mode 100755 index 0000000000..8cf4f2cfa9 --- /dev/null +++ b/test/model/kanban/setwip.php @@ -0,0 +1,34 @@ +#!/usr/bin/env php +setWIP(); +cid=1 +pid=1 + +*/ + +$columnIDList = array('401', '402', '403', '404', '405', '406', '407', '408'); +$limitList = array('-1', '0', '100', '150', '220'); +$WIPCountList = array('0', '100', '150', '220'); +$noLimit = -1; + +$kanban = new kanbanTest(); + +r($kanban->setWIPTest($columnIDList[0], $limitList[0], $noLimit)) && p('name,limit') && e('Backlog,-1'); // 测试设置看板列401的在制品限制 +r($kanban->setWIPTest($columnIDList[1], $limitList[2], $WIPCountList[1])) && p('name,limit') && e('准备好,100'); // 测试设置看板列402的在制品限制 +r($kanban->setWIPTest($columnIDList[3], $limitList[2], $WIPCountList[1])) && p('name,limit') && e('进行中,100'); // 测试设置看板列404的在制品限制 +r($kanban->setWIPTest($columnIDList[4], $limitList[2], $WIPCountList[1])) && p('name,limit') && e('完成,100'); // 测试设置看板列405的在制品限制 +r($kanban->setWIPTest($columnIDList[2], $limitList[4], $WIPCountList[3])) && p('name,limit') && e('开发,220'); // 测试设置看板列403的在制品限制 +r($kanban->setWIPTest($columnIDList[5], $limitList[4], $WIPCountList[1])) && p('limit') && e('请先设置子列的在制品数量后再操作'); // 测试设置看板列406的在制品限制 子列未设置在制品数量 +r($kanban->setWIPTest($columnIDList[6], $limitList[2], $WIPCountList[1])) && p('name,limit') && e('进行中,100'); // 测试设置看板列407的在制品限制 +r($kanban->setWIPTest($columnIDList[7], $limitList[2], $WIPCountList[1])) && p('name,limit') && e('完成,100'); // 测试设置看板列408的在制品限制 +r($kanban->setWIPTest($columnIDList[5], $limitList[3], $WIPCountList[2])) && p('limit') && e('父列的在制品数量不能小于子列在制品数量之和'); // 测试设置看板列406的在制品限制 父列小于子列 +r($kanban->setWIPTest($columnIDList[5], $limitList[4], $WIPCountList[3])) && p('name,limit') && e('测试,220'); // 测试设置看板列406的在制品限制 +r($kanban->setWIPTest($columnIDList[7], $limitList[4], $WIPCountList[3])) && p('limit') && e('子列在制品数量之和不能大于父列的在制品数量'); // 测试设置看板列408的在制品限制 子列大于父列 +r($kanban->setWIPTest($columnIDList[0], $limitList[1], $WIPCountList[0])) && p('limit') && e('在制品数量必须是正整数。'); // 测试设置看板列401的在制品限制 非正整数 +system("./ztest init");