diff --git a/module/execution/test/tao/setkanbanmenu.php b/module/execution/test/tao/setkanbanmenu.php index d5499a2938..775cfeba84 100644 --- a/module/execution/test/tao/setkanbanmenu.php +++ b/module/execution/test/tao/setkanbanmenu.php @@ -12,7 +12,6 @@ timeout=0 cid=1 - 测试替换看板执行的二级菜单第kanban条的link属性 @看板|execution|kanban|executionID=%s -- 查看交付物菜单第deliverable条的link属性 @交付物|execution|deliverable|executionID=%s - 查看构建菜单第build条的link属性 @构建|execution|build|executionID=%s - 查看累积流图菜单第CFD条的link属性 @累积流图|execution|cfd|executionID=%s - 查看设置菜单第settings条的link属性 @设置|execution|view|executionID=%s @@ -20,8 +19,8 @@ cid=1 */ $executionTester = new executionTest(); -r($executionTester->setKanbanMenuTest()) && p('kanban:link') && e('看板|execution|kanban|executionID=%s'); // 测试替换看板执行的二级菜单 -r($executionTester->setKanbanMenuTest()) && p('deliverable:link') && e('交付物|execution|deliverable|executionID=%s'); // 查看交付物菜单 -r($executionTester->setKanbanMenuTest()) && p('build:link') && e('构建|execution|build|executionID=%s'); // 查看构建菜单 -r($executionTester->setKanbanMenuTest()) && p('CFD:link') && e('累积流图|execution|cfd|executionID=%s'); // 查看累积流图菜单 -r($executionTester->setKanbanMenuTest()) && p('settings:link') && e('设置|execution|view|executionID=%s'); // 查看设置菜单 \ No newline at end of file +$menu = $executionTester->setKanbanMenuTest(); +r($menu) && p('kanban:link') && e('看板|execution|kanban|executionID=%s'); // 测试替换看板执行的二级菜单 +r($menu) && p('build:link') && e('构建|execution|build|executionID=%s'); // 查看构建菜单 +r($menu) && p('CFD:link') && e('累积流图|execution|cfd|executionID=%s'); // 查看累积流图菜单 +r($menu) && p('settings:link') && e('设置|execution|view|executionID=%s'); // 查看设置菜单 diff --git a/module/product/test/tao/computelocate4dropmenu.php b/module/product/test/tao/computelocate4dropmenu.php index 6833bbaa73..d3a499d07d 100755 --- a/module/product/test/tao/computelocate4dropmenu.php +++ b/module/product/test/tao/computelocate4dropmenu.php @@ -43,42 +43,42 @@ include dirname(__FILE__, 5) . '/test/lib/init.php'; global $tester; $product = $tester->loadModel('product'); -$product->app->moduleName = 'product'; -$product->app->methodName = 'browse'; +$product->app->rawModule = 'product'; +$product->app->rawMethod = 'browse'; r($product->computeLocate4DropMenu()) && p('0,1') && e('product,browse'); -$product->app->moduleName = 'story'; -$product->app->methodName = 'view'; +$product->app->rawModule = 'story'; +$product->app->rawMethod = 'view'; r($product->computeLocate4DropMenu()) && p('0,1') && e('product,browse'); -$product->app->moduleName = 'story'; -$product->app->methodName = 'create'; +$product->app->rawModule = 'story'; +$product->app->rawMethod = 'create'; r($product->computeLocate4DropMenu()) && p('0,1') && e('story,create'); -$product->app->moduleName = 'story'; -$product->app->methodName = 'report'; +$product->app->rawModule = 'story'; +$product->app->rawMethod = 'report'; r($product->computeLocate4DropMenu()) && p('0,1') && e('product,browse'); -$product->app->moduleName = 'product'; -$product->app->methodName = 'report'; +$product->app->rawModule = 'product'; +$product->app->rawMethod = 'report'; r($product->computeLocate4DropMenu()) && p('0,1') && e('product,browse'); -$product->app->moduleName = 'bug'; -$product->app->methodName = 'edit'; +$product->app->rawModule = 'bug'; +$product->app->rawMethod = 'edit'; r($product->computeLocate4DropMenu()) && p('0,1') && e('bug,browse'); -$product->app->moduleName = 'bug'; -$product->app->methodName = 'view'; +$product->app->rawModule = 'bug'; +$product->app->rawMethod = 'view'; r($product->computeLocate4DropMenu()) && p('0,1') && e('bug,view'); -$product->app->moduleName = 'bug'; -$product->app->methodName = 'report'; +$product->app->rawModule = 'bug'; +$product->app->rawMethod = 'report'; r($product->computeLocate4DropMenu()) && p('0,1') && e('bug,browse'); -$product->app->moduleName = 'testcase'; -$product->app->methodName = 'edit'; +$product->app->rawModule = 'testcase'; +$product->app->rawMethod = 'edit'; r($product->computeLocate4DropMenu()) && p('0,1') && e('testcase,browse'); -$product->app->moduleName = 'testcase'; -$product->app->methodName = 'view'; +$product->app->rawModule = 'testcase'; +$product->app->rawMethod = 'view'; r($product->computeLocate4DropMenu()) && p('0,1') && e('testcase,browse'); diff --git a/module/program/test/tao/buildprogramactionsmap.php b/module/program/test/tao/buildprogramactionsmap.php index b5153a2aff..6a16b8c378 100644 --- a/module/program/test/tao/buildprogramactionsmap.php +++ b/module/program/test/tao/buildprogramactionsmap.php @@ -13,6 +13,12 @@ title=测试 programTao::buildProgramActionsMap(); timeout=0 cid=1 +- 测试生成项目集id为1的操作按钮数据。第0条的name属性 @close +- 测试生成项目集id为2的操作按钮数据。第0条的name属性 @close +- 测试生成敏捷项目的操作按钮数据。第0条的name属性 @close +- 测试生成瀑布项目的操作按钮数据。第0条的name属性 @close +- 测试生成看板项目的操作按钮数据。第0条的name属性 @close + */ $objectIdList = array(1, 2, 11, 60, 100); diff --git a/module/program/test/tao/gettaskstats.php b/module/program/test/tao/gettaskstats.php index 389a1ac47e..20cb2d08ed 100644 --- a/module/program/test/tao/gettaskstats.php +++ b/module/program/test/tao/gettaskstats.php @@ -6,6 +6,21 @@ title=测试 programTao::getTaskStats(); timeout=0 cid=1 +- 获取系统中所有项目的任务统计信息 + - 第11条的totalEstimate属性 @51 + - 第11条的totalConsumed属性 @13 + - 第11条的totalLeft属性 @44 + - 第11条的teamCount属性 @0 + - 第11条的totalLeftNotDel属性 @44 + - 第11条的totalConsumedNotDel属性 @13 +- 获取系统中项目ID=60的任务统计信息 + - 第60条的totalEstimate属性 @21 + - 第60条的totalConsumed属性 @7 + - 第60条的totalLeft属性 @18 + - 第60条的teamCount属性 @0 + - 第60条的totalLeftNotDel属性 @18 + - 第60条的totalConsumedNotDel属性 @7 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; @@ -20,5 +35,5 @@ $projectIdList[] = array(); $projectIdList[] = array(60); $programTester = new programTest(); -r($programTester->getTaskStatsTest($projectIdList[0])) && p('11:totalEstimate,totalConsumed,totalLeft,teamCount,totalLeftNotDel,totalConsumedNotDel') && e('46,13,39,0,39,13'); // 获取系统中所有项目的任务统计信息 -r($programTester->getTaskStatsTest($projectIdList[1])) && p('60:totalEstimate,totalConsumed,totalLeft,teamCount,totalLeftNotDel,totalConsumedNotDel') && e('18,7,15,0,15,7'); // 获取系统中项目ID=60的任务统计信息 +r($programTester->getTaskStatsTest($projectIdList[0])) && p('11:totalEstimate,totalConsumed,totalLeft,teamCount,totalLeftNotDel,totalConsumedNotDel') && e('51,13,44,0,44,13'); // 获取系统中所有项目的任务统计信息 +r($programTester->getTaskStatsTest($projectIdList[1])) && p('60:totalEstimate,totalConsumed,totalLeft,teamCount,totalLeftNotDel,totalConsumedNotDel') && e('21,7,18,0,18,7'); // 获取系统中项目ID=60的任务统计信息 diff --git a/module/programplan/test/tao/buildganttlinks.php b/module/programplan/test/tao/buildganttlinks.php index 6f094301c9..1d24c29971 100644 --- a/module/programplan/test/tao/buildganttlinks.php +++ b/module/programplan/test/tao/buildganttlinks.php @@ -8,29 +8,29 @@ cid=0 - 禅道版本为开源版,检查任务关系。 @0 - 检查第一条任务关系 - - 属性source @1-1 - - 属性target @1-2 + - 属性source @1 + - 属性target @2 - 属性type @0 - 检查第二条任务关系 - - 属性source @2-2 - - 属性target @2-3 + - 属性source @2 + - 属性target @3 - 属性type @2 - 检查第三条任务关系 - - 属性source @3-3 - - 属性target @3-4 + - 属性source @3 + - 属性target @4 - 属性type @1 - 检查第四条任务关系 - - 属性source @1-11 - - 属性target @1-12 - - 属性type @1 -- 检查第五条任务关系 - - 属性source @2-12 - - 属性target @2-13 + - 属性source @4 + - 属性target @5 - 属性type @3 -- 检查第六条任务关系 - - 属性source @3-13 - - 属性target @3-14 +- 检查第五条任务关系 + - 属性source @5 + - 属性target @6 - 属性type @0 +- 检查第六条任务关系 + - 属性source @6 + - 属性target @7 + - 属性type @2 */ @@ -39,7 +39,7 @@ su('admin'); $relationoftasks = zenData('relationoftasks'); $relationoftasks->id->range('1-100'); -$relationoftasks->execution->range('1-10'); +$relationoftasks->project->range('1'); $relationoftasks->pretask->range('1-100'); $relationoftasks->condition->range('end{2},begin{2}'); $relationoftasks->task->range('2-100'); @@ -49,16 +49,16 @@ $relationoftasks->gen(20); global $tester; $tester->loadModel('programplan'); -$planIdList = array(1,2,3); +$planId = 1; $tester->programplan->config->edition = 'open'; -r($tester->programplan->buildGanttLinks($planIdList)) && p() && e("0"); //禅道版本为开源版,检查任务关系。 +r($tester->programplan->buildGanttLinks($planId)) && p() && e("0"); //禅道版本为开源版,检查任务关系。 $tester->programplan->config->edition = 'max'; -$links = $tester->programplan->buildGanttLinks($planIdList); -r($links[0]) && p('source,target,type') && e('1,2,0'); //检查第一条任务关系 -r($links[1]) && p('source,target,type') && e('2,3,2'); //检查第二条任务关系 -r($links[2]) && p('source,target,type') && e('3,4,1'); //检查第三条任务关系 -r($links[3]) && p('source,target,type') && e('11,12,1'); //检查第四条任务关系 -r($links[4]) && p('source,target,type') && e('12,13,3'); //检查第五条任务关系 -r($links[5]) && p('source,target,type') && e('13,14,0'); //检查第六条任务关系 +$links = $tester->programplan->buildGanttLinks($planId); +r($links[0]) && p('source,target,type') && e('1,2,0'); //检查第一条任务关系 +r($links[1]) && p('source,target,type') && e('2,3,2'); //检查第二条任务关系 +r($links[2]) && p('source,target,type') && e('3,4,1'); //检查第三条任务关系 +r($links[3]) && p('source,target,type') && e('4,5,3'); //检查第四条任务关系 +r($links[4]) && p('source,target,type') && e('5,6,0'); //检查第五条任务关系 +r($links[5]) && p('source,target,type') && e('6,7,2'); //检查第六条任务关系 diff --git a/module/programplan/test/tao/gettaskdatelimit.php b/module/programplan/test/tao/gettaskdatelimit.php index 4355d3c62e..e684c9b390 100644 --- a/module/programplan/test/tao/gettaskdatelimit.php +++ b/module/programplan/test/tao/gettaskdatelimit.php @@ -17,13 +17,13 @@ cid=0 - 属性realBegan @`` - 属性realEnd @`` - 传入进行中的任务数据 - - 属性start @2023-10-01 - - 属性end @2023-10-01 + - 属性start @2023-09-28 + - 属性end @2023-09-29 - 属性realBegan @2023-10-01 - 属性realEnd @`` - 传入已完成的任务数据 - - 属性start @2023-10-01 - - 属性end @2023-10-02 + - 属性start @2023-09-28 + - 属性end @2023-09-29 - 属性realBegan @2023-10-01 - 属性realEnd @2023-10-02 @@ -54,8 +54,8 @@ r($tester->programplan->getTaskDateLimit($task)) && p('start,end,realBegan,re $task->realStarted = '2023-10-01'; $task->status = 'doing'; -r($tester->programplan->getTaskDateLimit($task)) && p('start,end,realBegan,realEnd') && e('2023-10-01,2023-10-01,2023-10-01,``'); //传入进行中的任务数据 +r($tester->programplan->getTaskDateLimit($task)) && p('start,end,realBegan,realEnd') && e('2023-09-28,2023-09-29,2023-10-01,``'); //传入进行中的任务数据 $task->finishedDate = '2023-10-02'; $task->status = 'done'; -r($tester->programplan->getTaskDateLimit($task)) && p('start,end,realBegan,realEnd') && e('2023-10-01,2023-10-02,2023-10-01,2023-10-02'); //传入已完成的任务数据 +r($tester->programplan->getTaskDateLimit($task)) && p('start,end,realBegan,realEnd') && e('2023-09-28,2023-09-29,2023-10-01,2023-10-02'); //传入已完成的任务数据 diff --git a/module/search/test/tao/processbuildinfields.php b/module/search/test/tao/processbuildinfields.php index 722a2e7fb6..23fefaac42 100755 --- a/module/search/test/tao/processbuildinfields.php +++ b/module/search/test/tao/processbuildinfields.php @@ -2,16 +2,36 @@ processBuildinFields() - * - * @title=测试 searchTao->processBuildinFields(); - * @timeout=0 - * @cid=1 + title=测试 searchTao->processBuildinFields(); + cid=1 + + - projectstory + - 属性module @story + - 属性fields @title,id,keywords,status,pri,module,stage,grade,plan,estimate,source,sourceNote,fromBug,category,openedBy,reviewedBy,result,assignedTo,closedBy,lastEditedBy,mailto,closedReason,version,openedDate,reviewedDate,assignedDate,closedDate,lastEditedDate,activatedDate + - 属性maxCount @500 +- bug + - 属性module @bug + - 属性fields @title,module,keywords,steps,assignedTo,resolvedBy,status,confirmed,story,project,branch,plan,id,execution,severity,pri,type,os,browser,resolution,activatedCount,toTask,toStory,openedBy,closedBy,lastEditedBy,mailto,openedBuild,resolvedBuild,openedDate,assignedDate,resolvedDate,closedDate,lastEditedDate,deadline,activatedDate + - 属性maxCount @500 +- product + - 属性module @story + - 属性fields @title,id,keywords,status,pri,module,stage,grade,plan,estimate,source,sourceNote,fromBug,category,openedBy,reviewedBy,result,assignedTo,closedBy,lastEditedBy,mailto,closedReason,version,openedDate,reviewedDate,assignedDate,closedDate,lastEditedDate,activatedDate + - 属性maxCount @500 +- testcase + - 属性module @testcase + - 属性fields @title,story,id,keywords,lastEditedBy,type,auto,openedBy,status,stage,module,pri,lib,lastRunner,lastRunResult,lastRunDate,openedDate,lastEditedDate,scene + - 属性maxCount @500 +- caselib + - 属性module @caselib + - 属性fields @title,story,id,keywords,lastEditedBy,type,auto,openedBy,status,stage,module,pri,openedDate,lastEditedDate + - 属性maxCount @500 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/lib/search.unittest.class.php'; +zenData('product')->gen(2); su('admin'); $search = new searchTest(); diff --git a/module/setting/test/lib/setting.unittest.class.php b/module/setting/test/lib/setting.unittest.class.php index af96dbf077..a414023466 100644 --- a/module/setting/test/lib/setting.unittest.class.php +++ b/module/setting/test/lib/setting.unittest.class.php @@ -219,7 +219,7 @@ class settingTest $params['section'] = 'global'; $params['key'] = 'version'; - $objects = $this->objectModel->createDAO($params)->fetchAll(); + $objects = $this->objectModel->createDAO($params)->fetchAll('', false); return $objects; } diff --git a/module/story/tao.php b/module/story/tao.php index de71aca921..f86902972c 100644 --- a/module/story/tao.php +++ b/module/story/tao.php @@ -539,7 +539,14 @@ class storyTao extends storyModel if(strpos($orderBy, 'version_') !== false) $orderBy = str_replace('version_', 't2.version_', $orderBy); $unclosedStatus = $this->getUnclosedStatusKeys(); - return $storyDAO->beginIF(!empty($productID) && (!$project->charter || ($project->charter && $project->hasProduct)))->andWhere('t1.product')->eq($productID)->fi() + $assignProduct = false; + if(!empty($productID) && !empty($project)) + { + if(empty($project->charter)) $assignProduct = true; + if(!empty($project->charter) && $project->hasProduct) $assignProduct = true; + } + + return $storyDAO->beginIF($assignProduct)->andWhere('t1.product')->eq($productID)->fi() ->beginIF($type == 'bybranch' and $branch !== '')->andWhere('t2.branch')->in("0,$branch")->fi() ->beginIF(strpos('draft|reviewing|changing|closed', $type) !== false)->andWhere('t2.status')->eq($type)->fi() ->beginIF($type == 'unclosed')->andWhere('t2.status')->in($unclosedStatus)->fi() diff --git a/module/story/test/lib/story.unittest.class.php b/module/story/test/lib/story.unittest.class.php index 3dee2773b9..ab9b593579 100644 --- a/module/story/test/lib/story.unittest.class.php +++ b/module/story/test/lib/story.unittest.class.php @@ -636,6 +636,7 @@ class storyTest unset($unclosedStatus['closed']); $storyIdList = array('1,2,3,4,5,6,7'); + $project = $this->objectModel->dao->select("*")->from(TABLE_PROJECT)->where('id')->eq($projectID)->fetch(); $storyDAO = $this->objectModel->dao->select("DISTINCT t2.*")->from(TABLE_PROJECTSTORY)->alias('t1') ->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story = t2.id') ->leftJoin(TABLE_PRODUCT)->alias('t3')->on('t2.product = t3.id') @@ -644,7 +645,7 @@ class storyTest ->andWhere('t2.deleted')->eq(0) ->andWhere('t3.deleted')->eq(0); - return $this->objectModel->fetchProjectStories($storyDAO, $productID, $type, $branch, $storyIdList, 't2.id_desc', $pager); + return $this->objectModel->fetchProjectStories($storyDAO, $productID, $type, $branch, $storyIdList, 't2.id_desc', $pager, empty($project) ? null : $project); } /** @@ -818,7 +819,7 @@ class storyTest $this->objectModel->doCreateSpec($storyID, $story, $files); if(dao::isError()) return dao::getError(); - return $this->objectModel->dao->select('*')->from(TABLE_STORYSPEC)->fetchAll(); + return $this->objectModel->dao->select('*')->from(TABLE_STORYSPEC)->fetchAll('', false); } /** diff --git a/module/story/test/tao/buildtrackitems.php b/module/story/test/tao/buildtrackitems.php index f033e30e6d..a9e023e6a0 100755 --- a/module/story/test/tao/buildtrackitems.php +++ b/module/story/test/tao/buildtrackitems.php @@ -62,7 +62,7 @@ $story->gen(11)->fixPath(); $task = zenData('task'); $task->story->range('1-5'); -$task->gen('10'); +$task->gen('10')->fixPath(); $bug = zenData('bug'); $bug->story->range('1-5'); @@ -85,7 +85,7 @@ global $tester; $tester->loadModel('story'); $allStoryIdList = array(1,2,3,4,5,6,7,8,9,10,11); -$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->orderBy('id_desc')->fetchAll('id'); +$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->orderBy('id_desc')->fetchAll('id', false); $leafNodes = $tester->story->getLeafNodes($stories); $allStories = $tester->story->dao->select('id,parent,isParent,root,path,grade,product,pri,type,status,stage,title,estimate')->from(TABLE_STORY)->where('root')->in('1,11')->andWhere('deleted')->eq(0)->orderBy('type,grade,parent')->fetchAll('id'); @@ -99,7 +99,7 @@ r((array)$epicItems['lane_4']['bug'][0]) && p('id') && e('4'); r((array)$epicItems['lane_4']['case'][0]) && p('id') && e('4'); $allStoryIdList = array(2,3,4,5,6,7,8,9,10); -$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->where('id')->in('2,3,4')->orderBy('id_desc')->fetchAll('id'); +$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->where('id')->in('2,3,4')->orderBy('id_desc')->fetchAll('id', false); $leafNodes = $tester->story->getLeafNodes($stories, 'epic'); $allStories = $tester->story->dao->select('id,parent,isParent,root,path,grade,product,pri,type,status,stage,title,estimate')->from(TABLE_STORY)->where('root')->in('1')->andWhere('deleted')->eq(0)->orderBy('type,grade,parent')->fetchAll('id'); @@ -111,7 +111,7 @@ r((array)$epicItems['lane_4']['bug'][0]) && p('id') && e('4'); r((array)$epicItems['lane_4']['case'][0]) && p('id') && e('4'); $allStoryIdList = array(5,6,7,8,9,10); -$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->where('id')->in('5,6,7,8,9,10')->orderBy('id_desc')->fetchAll('id'); +$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->where('id')->in('5,6,7,8,9,10')->orderBy('id_desc')->fetchAll('id', false); $leafNodes = $tester->story->getLeafNodes($stories, 'epic'); $allStories = $tester->story->dao->select('id,parent,isParent,root,path,grade,product,pri,type,status,stage,title,estimate')->from(TABLE_STORY)->where('root')->in('1')->andWhere('deleted')->eq(0)->orderBy('type,grade,parent')->fetchAll('id'); @@ -120,4 +120,4 @@ r((array)$epicItems['lane_10']['requirement_2'][0]) && p('id') && e('3'); r((array)$epicItems['lane_10']['project'][0]) && p('id') && e('1'); r((array)$epicItems['lane_5']['task'][0]) && p('id') && e('5'); r((array)$epicItems['lane_5']['bug'][0]) && p('id') && e('5'); -r((array)$epicItems['lane_5']['case'][0]) && p('id') && e('5'); \ No newline at end of file +r((array)$epicItems['lane_5']['case'][0]) && p('id') && e('5'); diff --git a/module/story/test/tao/fetchexecutionstories.php b/module/story/test/tao/fetchexecutionstories.php index 428f772912..5cb4ceb660 100755 --- a/module/story/test/tao/fetchexecutionstories.php +++ b/module/story/test/tao/fetchexecutionstories.php @@ -50,8 +50,8 @@ $_SESSION['executionStoryBrowseType'] = 'changing'; r(count($storyTest->fetchExecutionStoriesTest($executionID[1], $productID[1]))) && p() && e('5'); //传入产品,传入执行,设置SESSION。 $storyTest->objectModel->app->loadClass('pager', $static = true); -$storyTest->objectModel->app->moduleName = 'product'; -$storyTest->objectModel->app->methodName = 'track'; +$storyTest->objectModel->app->rawModule = 'product'; +$storyTest->objectModel->app->rawMethod = 'track'; $_SESSION['executionStoryBrowseType'] = ''; $pager = new pager(0, 5, 1); r(count($storyTest->fetchExecutionStoriesTest($executionID[1], $productID[1], $pager))) && p() && e('5'); //分页获取需求。 diff --git a/module/story/test/tao/fetchprojectstories.php b/module/story/test/tao/fetchprojectstories.php index 4301460b46..f02c1110e9 100755 --- a/module/story/test/tao/fetchprojectstories.php +++ b/module/story/test/tao/fetchprojectstories.php @@ -59,7 +59,7 @@ r(count($storyTest->fetchProjectStoriesTest($productID[1], $projectID[1], 'linke r(count($storyTest->fetchProjectStoriesTest($productID[1], $projectID[1], 'unlinkedexecution'))) && p() && e('24'); //传入项目,获取未关联执行的需求。 $storyTest->objectModel->app->loadClass('pager', $static = true); -$storyTest->objectModel->app->moduleName = 'product'; -$storyTest->objectModel->app->methodName = 'track'; +$storyTest->objectModel->app->rawModule = 'product'; +$storyTest->objectModel->app->rawMethod = 'track'; $pager = new pager(0, 5, 1); r(count($storyTest->fetchProjectStoriesTest($productID[1], $projectID[1], 'unclosed', '', $pager))) && p() && e('5'); //分页获取需求。 diff --git a/module/story/test/tao/getexecutionstoriesbysearch.php b/module/story/test/tao/getexecutionstoriesbysearch.php index b5da2eb1e1..c80fa2f225 100755 --- a/module/story/test/tao/getexecutionstoriesbysearch.php +++ b/module/story/test/tao/getexecutionstoriesbysearch.php @@ -70,8 +70,8 @@ r($storyTest->getExecutionStoriesBySearchTest($executionID[1], $queryID[0], $pro r($storyTest->getExecutionStoriesBySearchTest($executionID[1], $queryID[0], $productID[1])) && p() && e('9'); //传入执行 ID,传入产品 ID。 $storyTest->objectModel->app->loadClass('pager', $static = true); -$storyTest->objectModel->app->moduleName = 'product'; -$storyTest->objectModel->app->methodName = 'track'; +$storyTest->objectModel->app->rawModule = 'product'; +$storyTest->objectModel->app->rawMethod = 'track'; $pager = new pager(0, 5, 1); $excludeStories = array(2, 4); r($storyTest->getExecutionStoriesBySearchTest($executionID[1], $queryID[0], $productID[1], $excludeStories)) && p() && e('7'); //传入排除需求号。 diff --git a/module/story/test/tao/mergechildrenfortrack.php b/module/story/test/tao/mergechildrenfortrack.php index 6e64913608..e7bf59b4cd 100755 --- a/module/story/test/tao/mergechildrenfortrack.php +++ b/module/story/test/tao/mergechildrenfortrack.php @@ -33,7 +33,7 @@ su('admin'); global $tester; $tester->loadModel('story'); -$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->where('id')->in('1')->orderBy('id_desc')->fetchAll('id'); +$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->where('id')->in('1')->orderBy('id_desc')->fetchAll('id', false); $allStories = $tester->story->dao->select('id,parent,isParent,root,path,grade,product,pri,type,status,stage,title,estimate')->from(TABLE_STORY)->where('deleted')->eq(0)->orderBy('id_desc')->fetchAll('id'); $newStories = $tester->story->mergeChildrenForTrack(array(), array(), 'epic'); @@ -48,17 +48,17 @@ r(count($newStories)) && p() && e('0'); //stories传入空参数,检查new $newStories = $tester->story->mergeChildrenForTrack($allStories, $stories, 'epic'); r(implode(';', array_keys($newStories))) && p() && e('1;4;3;10;9;8;2;7;6;5'); //传入正常的业务需求,检查newStories。 -$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->where('id')->in('3')->orderBy('id_desc')->fetchAll('id'); +$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->where('id')->in('3')->orderBy('id_desc')->fetchAll('id', false); $allStories = $tester->story->dao->select('id,parent,isParent,root,path,grade,product,pri,type,status,stage,title,estimate')->from(TABLE_STORY)->where('deleted')->eq(0)->orderBy('id_desc')->fetchAll('id'); $newStories = $tester->story->mergeChildrenForTrack($allStories, $stories, 'requirement'); r(implode(';', array_keys($newStories))) && p() && e('3;10;9;8'); //传入正常用户需求,检查newStories。 -$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->where('id')->in('3')->orderBy('id_desc')->fetchAll('id'); +$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->where('id')->in('3')->orderBy('id_desc')->fetchAll('id', false); $allStories = $tester->story->dao->select('id,parent,isParent,root,path,grade,product,pri,type,status,stage,title,estimate')->from(TABLE_STORY)->where('deleted')->eq(0)->orderBy('id_desc')->fetchAll('id'); $newStories = $tester->story->mergeChildrenForTrack($allStories, $stories, 'story'); r(count($newStories)) && p() && e('0'); //传入错误的用户参数,检查newStories。 -$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->where('id')->in('8')->orderBy('id_desc')->fetchAll('id'); +$stories = $tester->story->dao->select('*')->from(TABLE_STORY)->where('id')->in('8')->orderBy('id_desc')->fetchAll('id', false); $allStories = $tester->story->dao->select('id,parent,isParent,root,path,grade,product,pri,type,status,stage,title,estimate')->from(TABLE_STORY)->where('deleted')->eq(0)->orderBy('id_desc')->fetchAll('id'); $newStories = $tester->story->mergeChildrenForTrack($allStories, $stories, 'story'); -r(reset($newStories)) && p('id') && e('8'); //传入正常的研发需求,检查newStories。 \ No newline at end of file +r(reset($newStories)) && p('id') && e('8'); //传入正常的研发需求,检查newStories。 diff --git a/module/task/test/tao/createautoupdatetaskaction.php b/module/task/test/tao/createautoupdatetaskaction.php index 38cc34ad28..5a797f4f67 100644 --- a/module/task/test/tao/createautoupdatetaskaction.php +++ b/module/task/test/tao/createautoupdatetaskaction.php @@ -18,7 +18,7 @@ cid=0 - 执行task模块的createAutoUpdateTaskActionTest方法,参数是$oldParentTask 属性action @activated - 执行task模块的createAutoUpdateTaskActionTest方法,参数是$oldParentTask 属性action @started - 执行task模块的createAutoUpdateTaskActionTest方法,参数是$oldParentTask 属性action @activated -- 执行task模块的createAutoUpdateTaskActionTest方法,参数是$oldParentTask 属性action @finished +- 执行task模块的createAutoUpdateTaskActionTest方法,参数是$oldParentTask @0 - 执行task模块的createAutoUpdateTaskActionTest方法,参数是$oldParentTask 属性action @finished - 执行task模块的createAutoUpdateTaskActionTest方法,参数是$oldParentTask 属性action @finished - 执行task模块的createAutoUpdateTaskActionTest方法,参数是$oldParentTask 属性action @finished @@ -41,6 +41,7 @@ cid=0 */ +zenData('action')->gen(0); zenData('user')->loadYaml('user')->gen(5); zenData('project')->loadYaml('project')->gen(3); su('user4'); @@ -77,7 +78,7 @@ r($task->createAutoUpdateTaskActionTest($oldParentTask)) && p('action') && e('ac $oldParentTask->id = 3; $oldParentTask->status = 'done'; -r($task->createAutoUpdateTaskActionTest($oldParentTask)) && p('action') && e('finished'); +r($task->createAutoUpdateTaskActionTest($oldParentTask)) && p() && e('0'); $oldParentTask->status = 'cancel'; r($task->createAutoUpdateTaskActionTest($oldParentTask)) && p('action') && e('finished'); $oldParentTask->status = 'wait'; diff --git a/module/user/test/tao/fetchexecutiontaskcount.php b/module/user/test/tao/fetchexecutiontaskcount.php index e65cf5f95a..6f6938e2cd 100644 --- a/module/user/test/tao/fetchexecutiontaskcount.php +++ b/module/user/test/tao/fetchexecutiontaskcount.php @@ -3,7 +3,27 @@ /** title=测试 userTao->fetchExecutionTaskCount(); cid=1 -pid=1 + +- 传入空数组,返回空数组。 @0 +- 用户 admin 没有参与执行,返回空数组。 @0 +- 用户 user1 参与了 5 个执行。 @5 +- 执行 1 中指派给 user1 的任务数为 3。属性1 @3 +- 执行 3 中指派给 user1 的任务数为 4。属性3 @4 +- 执行 4 中指派给 user1 的任务数为 2。属性4 @2 +- 执行 5 中指派给 user1 的任务数为 3。属性5 @3 +- 用户 user2 参与了 5 个执行。 @5 +- 执行 1 中指派给 user2 的任务数为 5。属性1 @5 +- 执行 2 中指派给 user2 的任务数为 7。属性2 @7 +- 执行 3 中指派给 user2 的任务数为 3。属性3 @3 +- 执行 4 中指派给 user2 的任务数为 5。属性4 @5 +- 执行 5 中指派给 user2 的任务数为 4。属性5 @4 +- 用户 user3 参与了 5 个执行。 @5 +- 执行 1 中指派给 user3 的任务数为 1。属性1 @1 +- 执行 2 中指派给 user3 的任务数为 1。属性2 @1 +- 执行 3 中指派给 user3 的任务数为 2。属性3 @2 +- 执行 4 中指派给 user3 的任务数为 1。属性4 @1 +- 执行 5 中指派给 user3 的任务数为 2。属性5 @2 + */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/lib/user.unittest.class.php'; @@ -25,11 +45,11 @@ r($userTest->fetchExecutionTaskCountTest('user1', array())) && p() && e r($userTest->fetchExecutionTaskCountTest('admin', $executionIdList)) && p() && e(0); // 用户 admin 没有参与执行,返回空数组。 $tasks = $userTest->fetchExecutionTaskCountTest('user1', $executionIdList); -r(count($tasks)) && p() && e(4); // 用户 user1 参与了 4 个执行。 -r($tasks) && p(1) && e(2); // 执行 1 中指派给 user1 的任务数为 2。 -r($tasks) && p(3) && e(2); // 执行 3 中指派给 user1 的任务数为 2。 -r($tasks) && p(4) && e(1); // 执行 4 中指派给 user1 的任务数为 1。 -r($tasks) && p(5) && e(1); // 执行 5 中指派给 user1 的任务数为 1。 +r(count($tasks)) && p() && e(5); // 用户 user1 参与了 5 个执行。 +r($tasks) && p(1) && e(3); // 执行 1 中指派给 user1 的任务数为 3。 +r($tasks) && p(3) && e(4); // 执行 3 中指派给 user1 的任务数为 4。 +r($tasks) && p(4) && e(2); // 执行 4 中指派给 user1 的任务数为 2。 +r($tasks) && p(5) && e(3); // 执行 5 中指派给 user1 的任务数为 3。 $tasks = $userTest->fetchExecutionTaskCountTest('user2', $executionIdList); r(count($tasks)) && p() && e(5); // 用户 user2 参与了 5 个执行。 diff --git a/module/weekly/test/model/getstaff.php b/module/weekly/test/model/getstaff.php index 233ca3f337..29a7a06213 100755 --- a/module/weekly/test/model/getstaff.php +++ b/module/weekly/test/model/getstaff.php @@ -7,17 +7,25 @@ su('admin'); /** title=测试 weeklyModel->getStaff(); -cid=1 -pid=1 +cid=0 -测试project值为0,date值为2022-05-01 >> 0 -测试project值为0,date值为空 >> 0 -测试project值为1,date值为2022-05-01 >> 0 -测试project值为1,date值为空 >> 0 -测试project值为11,date值为2022-05-01 >> 0 -测试project值为11,date值为空 >> 0 +- 测试project值为0,date值为2022-05-01 @0 +- 测试project值为0,date值为空 @0 +- 测试project值为1,date值为2022-05-01 @0 +- 测试project值为1,date值为空 @0 +- 测试project值为11,date值为2022-05-01 @0 +- 测试project值为11,date值为空 @0 */ +$date = date('Y-m-d'); +$project = zenData('project'); +$project->type->range('stage'); +$project->project->range('0,1,11'); +$project->gen(20); +$task = zenData('task'); +$task->execution->range('1-20'); +$task->deadline->range("`2022-04-25`,`2022-05-31`,`{$date}`,`0000-00-00`"); +$task->gen(50); $projectList = array(0, 1, 11); $dateList = array('2022-05-01', ''); @@ -29,4 +37,4 @@ r($weekly->getStaffTest($projectList[0], $dateList[1])) && p() && e('0'); //测 r($weekly->getStaffTest($projectList[1], $dateList[0])) && p() && e('0'); //测试project值为1,date值为2022-05-01 r($weekly->getStaffTest($projectList[1], $dateList[1])) && p() && e('0'); //测试project值为1,date值为空 r($weekly->getStaffTest($projectList[2], $dateList[0])) && p() && e('0'); //测试project值为11,date值为2022-05-01 -r($weekly->getStaffTest($projectList[2], $dateList[1])) && p() && e('0'); //测试project值为11,date值为空 \ No newline at end of file +r($weekly->getStaffTest($projectList[2], $dateList[1])) && p() && e('0'); //测试project值为11,date值为空 diff --git a/module/weekly/test/model/gettasksofnextweek.php b/module/weekly/test/model/gettasksofnextweek.php index 7e9812b864..3ca65547ec 100755 --- a/module/weekly/test/model/gettasksofnextweek.php +++ b/module/weekly/test/model/gettasksofnextweek.php @@ -8,24 +8,32 @@ su('admin'); title=测试 weeklyModel->getTasksOfNextWeek(); cid=1 -pid=1 -测试project值为0,date值为2022-07-30 >> 子任务6 -测试project值为0,date值为空 >> 0 -测试project值为1,date值为2022-07-30 >> 0 -测试project值为1,date值为空 >> 0 -测试project值为11,date值为2022-07-30 >> 开发任务371 -测试project值为11,date值为空 >> 0 +- 测试project值为0,date值为2022-07-30第48条的name属性 @开发任务58 +- 测试project值为0,date值为空 @0 +- 测试project值为1,date值为2022-07-30第48条的name属性 @开发任务58 +- 测试project值为1,date值为空 @0 +- 测试project值为11,date值为2022-07-30第32条的name属性 @开发任务42 +- 测试project值为11,date值为空 @0 */ +$date = date('Y-m-d', time() + 5 * 24 * 3600); +$project = zenData('project'); +$project->type->range('stage'); +$project->project->range('0,1,11'); +$project->gen(20); +$task = zenData('task'); +$task->execution->range('1-20'); +$task->deadline->range("`2022-07-25`,`2022-07-31`,`{$date}`,`2022-08-02`"); +$task->gen(50); $projectList = array(0, 1, 11); $dateList = array('2022-07-30', ''); $weekly = new weeklyTest(); -r($weekly->getTasksOfNextWeekTest($projectList[0], $dateList[0])) && p('906:name') && e('子任务6'); //测试project值为0,date值为2022-07-30 -r($weekly->getTasksOfNextWeekTest($projectList[0], $dateList[1])) && p() && e('0'); //测试project值为0,date值为空 -r($weekly->getTasksOfNextWeekTest($projectList[1], $dateList[0])) && p() && e('0'); //测试project值为1,date值为2022-07-30 -r($weekly->getTasksOfNextWeekTest($projectList[1], $dateList[1])) && p() && e('0'); //测试project值为1,date值为空 -r($weekly->getTasksOfNextWeekTest($projectList[2], $dateList[0])) && p('361:name') && e('开发任务371'); //测试project值为11,date值为2022-07-30 -r($weekly->getTasksOfNextWeekTest($projectList[2], $dateList[1])) && p() && e('0'); //测试project值为11,date值为空 \ No newline at end of file +r($weekly->getTasksOfNextWeekTest($projectList[0], $dateList[0])) && p('48:name') && e('开发任务58'); //测试project值为0,date值为2022-07-30 +r($weekly->getTasksOfNextWeekTest($projectList[0], $dateList[1])) && p() && e('0'); //测试project值为0,date值为空 +r($weekly->getTasksOfNextWeekTest($projectList[1], $dateList[0])) && p('48:name') && e('开发任务58'); //测试project值为1,date值为2022-07-30 +r($weekly->getTasksOfNextWeekTest($projectList[1], $dateList[1])) && p() && e('0'); //测试project值为1,date值为空 +r($weekly->getTasksOfNextWeekTest($projectList[2], $dateList[0])) && p('32:name') && e('开发任务42'); //测试project值为11,date值为2022-07-30 +r($weekly->getTasksOfNextWeekTest($projectList[2], $dateList[1])) && p() && e('0'); //测试project值为11,date值为空