* Add the task-checkRequired4BatchCreate unit test.

This commit is contained in:
hufangzhou
2023-05-09 21:02:28 +08:00
parent 70fb03fc4d
commit deb24087a7
3 changed files with 392 additions and 0 deletions
@@ -0,0 +1,301 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/task.class.php';
su('admin');
zdTable('project')->config('project')->gen('10');
$story = zdTable('story');
$story->id->range('1');
$story->product->range('1');
$story->title->range('需求1');
$story->type->range('story');
$story->version->range('1');
$story->status->range('active');
$story->stage->range('projected');
$story->reviewedDate->range('(-1M)-(+1w):60m')->type('timestamp')->format('YY/MM/DD');
$story->lastEditedDate->range('(-1M)-(+1w):60m')->type('timestamp')->format('YY/MM/DD');
$story->gen('1');
$storyspec = zdTable('storyspec');
$storyspec->story->range('1');
$storyspec->version->range('1');
$storyspec->title->range('需求1');
$storyspec->spec->range('storyspec1');
$storyspec->gen('1');
$task = zdTable('task');
$task->id->range('1');
$task->name->range('任务1');
$task->execution->range('2');
$task->type->range('devel');
$task->status->range('wait');
$task->parent->range("`-1`");
$task->gen('1');
$taskspec = zdTable('taskspec');
$taskspec->task->range('1');
$taskspec->version->range('1');
$taskspec->name->range('任务一');
$taskspec->gen('1');
/**
title=测试taskTao->checkRequired4BatchCreate();
cid=1
pid=1
*/
$executionIdList = array(2, 3, 4, 5, 6, 7, 8 ,9 ,10);
$laneIdList = array(1, 2, 3);
$columnIdList = array(1, 2, 3);
$parent = array(0, 0, 0, 0, 1);
$module = array(1, 2, 3, 4, 5);
$story = array(1, 0);
$storyEstimate = array(1, 2, 1, 2, 1);
$storyDesc = array('storyDesc1', 'storyDesc2', 'storyDesc3', '', '');
$storyPri = array(3, 3, 1, 2, 4);
$name = array('task1', 'task2', 'task3', 'task4', '');
$color = array('', 'red', 'green', '', 'gray');
$type = array('devel', 'request', 'design', 'test', 'study', 'discuss', 'ui', 'affair', 'misc');
$assignedTo = array('admin', 'admin', 'dev1', 'dev2', 'admin');
$estimate = array('1', '2', '3', '1', '1', 's', '-1');
$estStarted = array('2022-07-01', '2023-05-08', '', '2023-09-09', '');
$deadline = array('2023-07-01', '2022-01-02', '2023-01-01', '', '');
$desc = array('', 'taskDesc', 'taskAAA', '', '');
$pri = array('1', '2', '3', '3', '1');
$withoutStoryTask = array();
$withoutStoryTask[1] = new stdclass();
$withoutStoryTask[1]->execution = $executionIdList[0];
$withoutStoryTask[1]->parent = $parent[0];
$withoutStoryTask[1]->module = $module[0];
$withoutStoryTask[1]->name = $name[0];
$withoutStoryTask[1]->type = $type[0];
$withoutStoryTask[1]->deadline = $deadline[0];
$withoutStoryTask[1]->estimate = $estimate[0];
$withoutStoryTask[1]->estStarted = $estStarted[0];
$requestStageTask = array();
$requestStageTask[1] = new stdclass();
$requestStageTask[1]->execution = $executionIdList[0];
$requestStageTask[1]->parent = $parent[0];
$requestStageTask[1]->module = $module[0];
$requestStageTask[1]->name = $name[1];
$requestStageTask[1]->type = $type[0];
$requestStageTask[1]->deadline = $deadline[0];
$requestStageTask[1]->estimate = $estimate[0];
$requestStageTask[1]->estStarted = $estStarted[0];
$reviewStageTask = array();
$reviewStageTask[1] = new stdclass();
$reviewStageTask[1]->execution = $executionIdList[0];
$reviewStageTask[1]->parent = $parent[0];
$reviewStageTask[1]->module = $module[0];
$reviewStageTask[1]->name = $name[2];
$reviewStageTask[1]->type = $type[0];
$reviewStageTask[1]->deadline = $deadline[0];
$reviewStageTask[1]->estimate = $estimate[0];
$reviewStageTask[1]->estStarted = $estStarted[0];
$devStageTask = array();
$devStageTask[1] = new stdclass();
$devStageTask[1]->execution = $executionIdList[0];
$devStageTask[1]->parent = $parent[0];
$devStageTask[1]->module = $module[0];
$devStageTask[1]->name = $name[3];
$devStageTask[1]->type = $type[0];
$devStageTask[1]->deadline = $deadline[0];
$devStageTask[1]->estimate = $estimate[0];
$devStageTask[1]->estStarted = $estStarted[0];
$conformLimitedTask = array();
$conformLimitedTask[1] = new stdclass();
$conformLimitedTask[1]->execution = $executionIdList[0];
$conformLimitedTask[1]->parent = $parent[0];
$conformLimitedTask[1]->module = $module[0];
$conformLimitedTask[1]->story = $story[0];
$conformLimitedTask[1]->name = $name[0];
$conformLimitedTask[1]->version = 1;
$conformLimitedTask[1]->type = $type[0];
$conformLimitedTask[1]->deadline = $deadline[0];
$conformLimitedTask[1]->estimate = $estimate[0];
$conformLimitedTask[1]->estStarted = $estStarted[0];
$conformLimitedTask[1]->mailto = '';
$unConformLimitedTask = array();
$unConformLimitedTask[1] = new stdclass();
$unConformLimitedTask[1]->execution = $executionIdList[0];
$unConformLimitedTask[1]->parent = $parent[0];
$unConformLimitedTask[1]->module = $module[0];
$unConformLimitedTask[1]->story = $story[0];
$unConformLimitedTask[1]->name = $name[0];
$unConformLimitedTask[1]->version = 1;
$unConformLimitedTask[1]->type = $type[0];
$unConformLimitedTask[1]->deadline = $deadline[2];
$unConformLimitedTask[1]->estimate = $estimate[0];
$unConformLimitedTask[1]->estStarted = $estStarted[0];
$unConformLimitedTask[1]->mailto = '';
$deadlineSmallTask = array();
$deadlineSmallTask[1] = new stdclass();
$deadlineSmallTask[1]->execution = $executionIdList[0];
$deadlineSmallTask[1]->parent = $parent[0];
$deadlineSmallTask[1]->module = $module[0];
$deadlineSmallTask[1]->story = $story[0];
$deadlineSmallTask[1]->name = $name[0];
$deadlineSmallTask[1]->version = 1;
$deadlineSmallTask[1]->type = $type[0];
$deadlineSmallTask[1]->estStarted = $estStarted[1];
$deadlineSmallTask[1]->deadline = $deadline[1];
$deadlineSmallTask[1]->estimate = $estimate[0];
$deadlineSmallTask[1]->mailto = '';
$estimateNumberTask = array();
$estimateNumberTask[1] = new stdclass();
$estimateNumberTask[1]->execution = $executionIdList[0];
$estimateNumberTask[1]->parent = $parent[0];
$estimateNumberTask[1]->module = $module[0];
$estimateNumberTask[1]->story = $story[0];
$estimateNumberTask[1]->name = $name[0];
$estimateNumberTask[1]->version = 1;
$estimateNumberTask[1]->type = $type[0];
$estimateNumberTask[1]->estStarted = $estStarted[0];
$estimateNumberTask[1]->deadline = $deadline[0];
$estimateNumberTask[1]->estimate = $estimate[5];
$estimateNumberTask[1]->mailto = '';
$negativeNumberTask = array();
$negativeNumberTask[1] = new stdclass();
$negativeNumberTask[1]->execution = $executionIdList[0];
$negativeNumberTask[1]->parent = $parent[0];
$negativeNumberTask[1]->module = $module[0];
$negativeNumberTask[1]->story = $story[0];
$negativeNumberTask[1]->name = $name[0];
$negativeNumberTask[1]->version = 1;
$negativeNumberTask[1]->type = $type[0];
$negativeNumberTask[1]->estStarted = $estStarted[0];
$negativeNumberTask[1]->deadline = $deadline[0];
$negativeNumberTask[1]->estimate = $estimate[6];
$negativeNumberTask[1]->mailto = '';
$normalTaskList = array();
$normalTaskList[1] = new stdclass();
$normalTaskList[1]->execution = $executionIdList[0];
$normalTaskList[1]->parent = $parent[0];
$normalTaskList[1]->module = $module[0];
$normalTaskList[1]->story = $story[0];
$normalTaskList[1]->name = $name[0];
$normalTaskList[1]->version = 1;
$normalTaskList[1]->type = $type[0];
$normalTaskList[1]->deadline = $deadline[0];
$normalTaskList[1]->estimate = $estimate[0];
$normalTaskList[1]->estStarted = $estStarted[0];
$normalTaskList[1]->mailto = '';
$normalTaskList[2] = new stdclass();
$normalTaskList[2]->execution = $executionIdList[0];
$normalTaskList[2]->parent = $parent[1];
$normalTaskList[2]->module = $module[1];
$normalTaskList[2]->story = $story[1];
$normalTaskList[2]->name = $name[1];
$normalTaskList[2]->color = $color[1];
$normalTaskList[2]->type = $type[1];
$normalTaskList[2]->version = 1;
$normalTaskList[2]->assignedTo = $assignedTo[1];
$normalTaskList[2]->estimate = $estimate[1];
$normalTaskList[2]->estStarted = $estStarted[1];
$normalTaskList[2]->deadline = $deadline[2];
$normalTaskList[2]->desc = $desc[1];
$normalTaskList[2]->pri = $pri[1];
$normalTaskList[2]->mailto = '';
$hasParentTask = array();
$hasParentTask[1] = new stdclass();
$hasParentTask[1]->execution = $executionIdList[0];
$hasParentTask[1]->parent = $parent[4];
$hasParentTask[1]->module = $module[1];
$hasParentTask[1]->story = $story[1];
$hasParentTask[1]->name = $name[1];
$hasParentTask[1]->color = $color[1];
$hasParentTask[1]->type = $type[1];
$hasParentTask[1]->version = 1;
$hasParentTask[1]->assignedTo = $assignedTo[1];
$hasParentTask[1]->estimate = $estimate[1];
$hasParentTask[1]->estStarted = $estStarted[1];
$hasParentTask[1]->deadline = $deadline[2];
$hasParentTask[1]->desc = $desc[1];
$hasParentTask[1]->pri = $pri[1];
$hasParentTask[1]->mailto = '';
$hasStoryTask = array();
$hasStoryTask[1] = new stdclass();
$hasStoryTask[1]->execution = $executionIdList[0];
$hasStoryTask[1]->parent = $parent[0];
$hasStoryTask[1]->module = $module[1];
$hasStoryTask[1]->story = $story[0];
$hasStoryTask[1]->name = $name[1];
$hasStoryTask[1]->color = $color[1];
$hasStoryTask[1]->type = $type[1];
$hasStoryTask[1]->version = 1;
$hasStoryTask[1]->assignedTo = $assignedTo[1];
$hasStoryTask[1]->estimate = $estimate[1];
$hasStoryTask[1]->estStarted = $estStarted[1];
$hasStoryTask[1]->deadline = $deadline[2];
$hasStoryTask[1]->desc = $desc[1];
$hasStoryTask[1]->pri = $pri[1];
$hasStoryTask[1]->mailto = '';
$verifyScoreTask = array();
$verifyScoreTask[1] = new stdclass();
$verifyScoreTask[1]->execution = $executionIdList[0];
$verifyScoreTask[1]->parent = $parent[4];
$verifyScoreTask[1]->module = $module[1];
$verifyScoreTask[1]->story = $story[1];
$verifyScoreTask[1]->name = $name[1];
$verifyScoreTask[1]->color = $color[1];
$verifyScoreTask[1]->type = $type[1];
$verifyScoreTask[1]->version = 1;
$verifyScoreTask[1]->assignedTo = $assignedTo[1];
$verifyScoreTask[1]->estimate = $estimate[1];
$verifyScoreTask[1]->estStarted = $estStarted[1];
$verifyScoreTask[1]->deadline = $deadline[2];
$verifyScoreTask[1]->desc = $desc[1];
$verifyScoreTask[1]->pri = $pri[1];
$verifyScoreTask[1]->mailto = '';
$kanbanTask = array();
$kanbanTask[1] = new stdclass();
$kanbanTask[1]->execution = $executionIdList[0];
$kanbanTask[1]->parent = $parent[4];
$kanbanTask[1]->module = $module[1];
$kanbanTask[1]->story = $story[1];
$kanbanTask[1]->name = $name[3];
$kanbanTask[1]->color = $color[1];
$kanbanTask[1]->type = $type[1];
$kanbanTask[1]->version = 1;
$kanbanTask[1]->assignedTo = $assignedTo[1];
$kanbanTask[1]->estimate = $estimate[1];
$kanbanTask[1]->estStarted = $estStarted[1];
$kanbanTask[1]->deadline = $deadline[2];
$kanbanTask[1]->desc = $desc[1];
$kanbanTask[1]->pri = $pri[1];
$kanbanTask[1]->mailto = '';
$task = new taskTest();
r($task->checkRequired4BatchCreateTest($executionIdList[0], $withoutStoryTask, true)) && p('message:0') && e('『相关研发需求』不能为空。'); // 测试短期项目批量创建未关联需求的任务
r($task->checkRequired4BatchCreateTest($executionIdList[3], $withoutStoryTask, true)) && p('1:name') && e('task1'); // 测试运维迭代批量创建未关联需求的任务
r($task->checkRequired4BatchCreateTest($executionIdList[4], $requestStageTask, true)) && p('1:name') && e('task2'); // 测试需求类型阶段批量创建未关联需求的任务
r($task->checkRequired4BatchCreateTest($executionIdList[5], $reviewStageTask, true)) && p('1:name') && e('task3'); // 测试总结评审类型阶段批量创建未关联需求的任务
r($task->checkRequired4BatchCreateTest($executionIdList[6], $devStageTask, true)) && p('message:0') && e('『相关研发需求』不能为空。'); // 测试开发类型阶段批量创建未关联需求的任务
r($task->checkRequired4BatchCreateTest($executionIdList[0], $conformLimitedTask, false, true)) && p('deadline:0') && e('任务截止日期应小于等于执行的结束日期:2023-02-01。'); // 测试开启起止日期限制,创建的任务截止日期大于执行的截止日期
r($task->checkRequired4BatchCreateTest($executionIdList[0], $unConformLimitedTask, false, true)) && p('1:name') && e('task1'); // 测试开启起止日期限制,创建的任务截止日期小于执行的截止日期
r($task->checkRequired4BatchCreateTest($executionIdList[0], $deadlineSmallTask)) && p('message:0') && e('"截止日期"必须大于"预计开始"'); // 测试任务截止日期小于任务的截止日期
r($task->checkRequired4BatchCreateTest($executionIdList[0], $estimateNumberTask)) && p('message:0') && e('"最初预计"必须为数字'); // 测试任务预计工时不为数字的情况
r($task->checkRequired4BatchCreateTest($executionIdList[0], $negativeNumberTask)) && p('message:0') && e('"最初预计"必须为数字'); // 测试任务预计工时为负数的情况
@@ -0,0 +1,31 @@
title: table zt_project
author: Hu Fangzhou
version: "1.0"
fields:
- field: id
range: 1-10
- field: name
note: "名称"
fields:
- field: name1
range: rnd{9},lite
- field: name2
range: 项目,迭代{4},阶段{3},看板{2}
- field: project
range: 0,1{9}
- field: type
range: project,sprint{4},stage{3},kanban{2}
- field: lifetime
range: "[],short{2},long{1},ops{1},[]{5}"
- field: attribute
range: "[]{5},request,review,dev,[]{2}"
- field: begin
range: "20220101 000000:3M"
type: timestamp
format: "YY/MM/DD"
- field: end
range: "20230101 000000:1M"
type: timestamp
format: "YY/MM/DD"
- field: vision
range: rnd{9},lite
+60
View File
@@ -2000,4 +2000,64 @@ class taskTest
return !empty($result) ? 1 : 0;
}
}
/**
* checkRequired4BatchCreateTest
*
* @param int $executionID
* @param int $data
* @param int $checkRequiredItem
* @param int $checkLimitTaskDate
* @access public
* @return void
*/
public function checkRequired4BatchCreateTest($executionID, $data, $checkRequiredItem = false, $checkLimitTaskDate = false)
{
global $tester;
$execution = $tester->loadModel('execution')->getById($executionID);
if($checkRequiredItem)
{
$originRequiredFields = $tester->config->task->create->requiredFields;
$tester->config->task->create->requiredFields .= ',story';
$result = $this->objectModel->checkRequired4BatchCreate($execution, $data);
$tester->config->task->create->requiredFields = $originRequiredFields;
if(dao::isError())
{
return dao::getError();
}
return $result;
}
elseif($checkLimitTaskDate)
{
$tester->loadModel('setting');
$this->objectModel->config->limitTaskDate = 1;
$result = $this->objectModel->checkRequired4BatchCreate($execution, $data);
$this->objectModel->config->limitTaskDate = 0;
if(dao::isError())
{
return dao::getError();
}
return $result;
}
else
{
$result = $this->objectModel->checkRequired4BatchCreate($execution, $data);
if(dao::isError())
{
return dao::getError();
}
return $result;
}
}
}