diff --git a/module/task/test/tao/removecreaterequiredfields.php b/module/task/test/tao/removecreaterequiredfields.php new file mode 100755 index 0000000000..0fc2d4fb32 --- /dev/null +++ b/module/task/test/tao/removecreaterequiredfields.php @@ -0,0 +1,67 @@ +#!/usr/bin/env php +config('project_removecreaterequiredfields')->gen(9); + +$tasks = array(); +for($i = 0; $i < 18; $i ++) +{ + $tasks[$i] = new stdclass(); + $tasks[$i]->execution = ($i + 1) % 9; + if(empty($tasks[$i]->execution)) $tasks[$i]->execution = 9; + if($i < 9) $tasks[$i]->type = 'dev'; + if($i >= 9) $tasks[$i]->type = 'test'; +} +global $tester; + +/** + +title=taskModel->removeCreateRequiredFields(); +timeout=0 +cid=1 + +*/ + + +$selectTestStoryList = array(false, true); + +$task = new taskTest(); + +r($task->removeCreateRequiredFieldsTest($tasks[0], $selectTestStoryList[0])) && p() && e('name,type,execution,story,estimate,estStarted,deadline,module'); // 测试任务执行为短期执行 阶段类型为mix 任务类型为dev 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[0], $selectTestStoryList[1])) && p() && e('name,type,execution,story,estimate,estStarted,deadline,module'); // 测试任务执行为短期执行 阶段类型为mix 任务类型为dev 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[1], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为短期执行 阶段类型为request 任务类型为dev 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[1], $selectTestStoryList[1])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为短期执行 阶段类型为request 任务类型为dev 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[2], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为短期执行 阶段类型为review 任务类型为dev 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[2], $selectTestStoryList[1])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为短期执行 阶段类型为review 任务类型为dev 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[3], $selectTestStoryList[0])) && p() && e('name,type,execution,story,estimate,estStarted,deadline,module'); // 测试任务执行为长期执行 阶段类型为mix 任务类型为dev 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[3], $selectTestStoryList[1])) && p() && e('name,type,execution,story,estimate,estStarted,deadline,module'); // 测试任务执行为长期执行 阶段类型为mix 任务类型为dev 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[4], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为长期执行 阶段类型为request 任务类型为dev 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[4], $selectTestStoryList[1])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为长期执行 阶段类型为request 任务类型为dev 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[5], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为长期执行 阶段类型为review 任务类型为dev 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[5], $selectTestStoryList[1])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为长期执行 阶段类型为review 任务类型为dev 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[6], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为运维执行 阶段类型为mix 任务类型为dev 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[6], $selectTestStoryList[1])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为运维执行 阶段类型为mix 任务类型为dev 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[7], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为运维执行 阶段类型为request 任务类型为dev 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[7], $selectTestStoryList[1])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为运维执行 阶段类型为request 任务类型为dev 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[8], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为运维执行 阶段类型为review 任务类型为dev 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[8], $selectTestStoryList[1])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为运维执行 阶段类型为review 任务类型为dev 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[9], $selectTestStoryList[0])) && p() && e('name,type,execution,story,estimate,estStarted,deadline,module'); // 测试任务执行为短期执行 阶段类型为mix 任务类型为test 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[9], $selectTestStoryList[1])) && p() && e('name,type,execution'); // 测试任务执行为短期执行 阶段类型为mix 任务类型为test 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[10], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为短期执行 阶段类型为request 任务类型为test 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[10], $selectTestStoryList[1])) && p() && e('name,type,execution'); // 测试任务执行为短期执行 阶段类型为request 任务类型为test 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[11], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为短期执行 阶段类型为review 任务类型为test 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[11], $selectTestStoryList[1])) && p() && e('name,type,execution'); // 测试任务执行为短期执行 阶段类型为review 任务类型为test 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[12], $selectTestStoryList[0])) && p() && e('name,type,execution,story,estimate,estStarted,deadline,module'); // 测试任务执行为长期执行 阶段类型为mix 任务类型为test 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[12], $selectTestStoryList[1])) && p() && e('name,type,execution'); // 测试任务执行为长期执行 阶段类型为mix 任务类型为test 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[13], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为长期执行 阶段类型为request 任务类型为test 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[13], $selectTestStoryList[1])) && p() && e('name,type,execution'); // 测试任务执行为长期执行 阶段类型为request 任务类型为test 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[14], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为长期执行 阶段类型为review 任务类型为test 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[14], $selectTestStoryList[1])) && p() && e('name,type,execution'); // 测试任务执行为长期执行 阶段类型为review 任务类型为test 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[15], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为运维执行 阶段类型为mix 任务类型为test 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[15], $selectTestStoryList[1])) && p() && e('name,type,execution'); // 测试任务执行为运维执行 阶段类型为mix 任务类型为test 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[16], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为运维执行 阶段类型为request 任务类型为test 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[16], $selectTestStoryList[1])) && p() && e('name,type,execution'); // 测试任务执行为运维执行 阶段类型为request 任务类型为test 有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[17], $selectTestStoryList[0])) && p() && e('name,type,execution,estimate,estStarted,deadline,module'); // 测试任务执行为运维执行 阶段类型为review 任务类型为test 没有选择需求时候的必填项 +r($task->removeCreateRequiredFieldsTest($tasks[17], $selectTestStoryList[1])) && p() && e('name,type,execution'); // 测试任务执行为运维执行 阶段类型为review 任务类型为test 有选择需求时候的必填项 diff --git a/module/task/test/tao/yaml/removecreaterequiredfields/project_removecreaterequiredfields.yaml b/module/task/test/tao/yaml/removecreaterequiredfields/project_removecreaterequiredfields.yaml new file mode 100644 index 0000000000..0fd01d38bc --- /dev/null +++ b/module/task/test/tao/yaml/removecreaterequiredfields/project_removecreaterequiredfields.yaml @@ -0,0 +1,13 @@ +--- +title: zt_project +author: auto_removecreaterequiredfields +version: "1.0" +fields: +- field: id + range: 1-9 +- field: lifetime + range: short{3},long{3},ops{3} +- field: attribute + range: mix,request,review +... + diff --git a/module/task/test/task.class.php b/module/task/test/task.class.php index 76e0026874..850464c377 100644 --- a/module/task/test/task.class.php +++ b/module/task/test/task.class.php @@ -1605,4 +1605,27 @@ class taskTest return $task; } } + + /** + * Test remove required fields for creating tasks based on conditions. + * + * @param object $task + * @param bool $selectTestStory + * @access public + * @return string + */ + public function removeCreateRequiredFieldsTest(object $task, bool $selectTestStory): string + { + global $tester; + $tester->config->task->create->requiredFields = 'name,type,execution,story,estimate,estStarted,deadline,module'; + $this->objectModel->removeCreateRequiredFields($task, $selectTestStory); + if(dao::isError()) + { + return dao::getError(); + } + else + { + return $tester->config->task->create->requiredFields; + } + } }