znt/module/task/test/zen/buildtasksforbatchedit.php

226 lines
6.6 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
/**
title=测试 taskZen::buildTasksForBatchEdit();
timeout=0
cid=18915
- 步骤1正常批量编辑任务数据名称变化导致version递增
- 第1条的name属性 @任务1修改
- 第1条的version属性 @2
- 步骤2任务状态变为closed时处理assignedTo第2条的assignedTo属性 @closed
- 步骤3任务story变化时更新storyVersion第3条的storyVersion属性 @1
- 步骤4任务指派人为空时的处理第4条的assignedTo属性 @~~
- 步骤5任务consumed为负数时的处理保持负数第5条的consumed属性 @-1
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/taskzen.unittest.class.php';
// 2. zendata数据准备根据需要配置
zenData('user')->gen(5);
zenData('story')->gen(5);
// 3. 用户登录(选择合适角色)
su('admin');
// 4. 创建测试实例(变量名与模块名一致)
$taskTest = new taskZenTest();
// 准备测试数据
// 创建旧任务数据
$oldTask1 = new stdClass();
$oldTask1->id = 1;
$oldTask1->project = 1;
$oldTask1->execution = 1;
$oldTask1->parent = 0;
$oldTask1->isParent = false;
$oldTask1->name = '任务1';
$oldTask1->assignedTo = 'admin';
$oldTask1->assignedDate = '2023-01-01 00:00:00';
$oldTask1->version = 1;
$oldTask1->consumed = 0;
$oldTask1->story = 0;
$oldTask1->storyVersion = 1;
$oldTask1->estStarted = '2023-01-01';
$oldTask1->deadline = '2023-01-10';
$oldTask1->status = 'wait';
$oldTask1->mode = '';
$oldTask1->estimate = 5;
$oldTask1->left = 5;
$oldTask2 = new stdClass();
$oldTask2->id = 2;
$oldTask2->project = 1;
$oldTask2->execution = 1;
$oldTask2->parent = 0;
$oldTask2->isParent = false;
$oldTask2->name = '任务2';
$oldTask2->assignedTo = 'user1';
$oldTask2->assignedDate = '2023-01-01 00:00:00';
$oldTask2->version = 1;
$oldTask2->consumed = 2;
$oldTask2->story = 1;
$oldTask2->storyVersion = 1;
$oldTask2->estStarted = '2023-01-01';
$oldTask2->deadline = '2023-01-10';
$oldTask2->status = 'doing';
$oldTask2->mode = '';
$oldTask2->estimate = 5;
$oldTask2->left = 3;
$oldTask3 = new stdClass();
$oldTask3->id = 3;
$oldTask3->project = 1;
$oldTask3->execution = 1;
$oldTask3->parent = 0;
$oldTask3->isParent = false;
$oldTask3->name = '任务3';
$oldTask3->assignedTo = 'user2';
$oldTask3->assignedDate = '2023-01-01 00:00:00';
$oldTask3->version = 1;
$oldTask3->consumed = 4;
$oldTask3->story = 2;
$oldTask3->storyVersion = 1;
$oldTask3->estStarted = '2023-01-01';
$oldTask3->deadline = '2023-01-10';
$oldTask3->status = 'done';
$oldTask3->mode = '';
$oldTask3->estimate = 5;
$oldTask3->left = 1;
$oldTask4 = new stdClass();
$oldTask4->id = 4;
$oldTask4->project = 1;
$oldTask4->execution = 1;
$oldTask4->parent = 0;
$oldTask4->isParent = false;
$oldTask4->name = '任务4';
$oldTask4->assignedTo = 'admin';
$oldTask4->assignedDate = '2023-01-01 00:00:00';
$oldTask4->version = 1;
$oldTask4->consumed = 1;
$oldTask4->story = 0;
$oldTask4->storyVersion = 1;
$oldTask4->estStarted = '2023-01-01';
$oldTask4->deadline = '2023-01-10';
$oldTask4->status = 'doing';
$oldTask4->mode = '';
$oldTask4->estimate = 5;
$oldTask4->left = 4;
$oldTask5 = new stdClass();
$oldTask5->id = 5;
$oldTask5->project = 1;
$oldTask5->execution = 1;
$oldTask5->parent = 0;
$oldTask5->isParent = false;
$oldTask5->name = '任务5';
$oldTask5->assignedTo = 'user1';
$oldTask5->assignedDate = '2023-01-01 00:00:00';
$oldTask5->version = 1;
$oldTask5->consumed = 3;
$oldTask5->story = 3;
$oldTask5->storyVersion = 1;
$oldTask5->estStarted = '2023-01-01';
$oldTask5->deadline = '2023-01-10';
$oldTask5->status = 'wait';
$oldTask5->mode = '';
$oldTask5->estimate = 5;
$oldTask5->left = 2;
$oldTasks = array(
1 => $oldTask1,
2 => $oldTask2,
3 => $oldTask3,
4 => $oldTask4,
5 => $oldTask5
);
// 创建新任务数据(批量编辑后的数据)
$newTask1 = new stdClass();
$newTask1->id = 1;
$newTask1->name = '任务1修改';
$newTask1->assignedTo = 'user1';
$newTask1->status = 'doing';
$newTask1->consumed = 2;
$newTask1->story = 0;
$newTask1->estStarted = '2023-01-02';
$newTask1->deadline = '2023-01-12';
$newTask1->estimate = 5;
$newTask1->left = 3;
$newTask1->parent = 0;
$newTask1->closedReason = '';
$newTask2 = new stdClass();
$newTask2->id = 2;
$newTask2->name = '任务2';
$newTask2->assignedTo = 'user1';
$newTask2->status = 'closed';
$newTask2->consumed = 1;
$newTask2->story = 1;
$newTask2->estStarted = '2023-01-01';
$newTask2->deadline = '2023-01-10';
$newTask2->estimate = 5;
$newTask2->left = 0;
$newTask2->parent = 0;
$newTask2->closedReason = '';
$newTask3 = new stdClass();
$newTask3->id = 3;
$newTask3->name = '任务3';
$newTask3->assignedTo = 'user2';
$newTask3->status = 'closed';
$newTask3->consumed = 2;
$newTask3->story = 4;
$newTask3->estStarted = '2023-01-01';
$newTask3->deadline = '2023-01-10';
$newTask3->estimate = 5;
$newTask3->left = 0;
$newTask3->parent = 0;
$newTask3->closedReason = '';
$newTask4 = new stdClass();
$newTask4->id = 4;
$newTask4->name = '任务4';
$newTask4->assignedTo = '';
$newTask4->status = 'wait';
$newTask4->consumed = 0;
$newTask4->story = 0;
$newTask4->estStarted = '2023-01-01';
$newTask4->deadline = '2023-01-10';
$newTask4->estimate = 5;
$newTask4->left = 5;
$newTask4->parent = 0;
$newTask4->closedReason = '';
$newTask5 = new stdClass();
$newTask5->id = 5;
$newTask5->name = '任务5';
$newTask5->assignedTo = 'user1';
$newTask5->status = 'doing';
$newTask5->consumed = -1;
$newTask5->story = 3;
$newTask5->estStarted = '2023-01-01';
$newTask5->deadline = '2023-01-10';
$newTask5->estimate = 5;
$newTask5->left = 3;
$newTask5->parent = 0;
$newTask5->closedReason = '';
$taskData1 = array(1 => $newTask1);
$taskData2 = array(2 => $newTask2);
$taskData3 = array(3 => $newTask3);
$taskData4 = array(4 => $newTask4);
$taskData5 = array(5 => $newTask5);
// 5. 强制要求必须包含至少5个测试步骤
r($taskTest->buildTasksForBatchEditTest($taskData1, $oldTasks)) && p('1:name,version') && e('任务1修改,2'); // 步骤1正常批量编辑任务数据名称变化导致version递增
r($taskTest->buildTasksForBatchEditTest($taskData2, $oldTasks)) && p('2:assignedTo') && e('closed'); // 步骤2任务状态变为closed时处理assignedTo
r($taskTest->buildTasksForBatchEditTest($taskData3, $oldTasks)) && p('3:storyVersion') && e('1'); // 步骤3任务story变化时更新storyVersion
r($taskTest->buildTasksForBatchEditTest($taskData4, $oldTasks)) && p('4:assignedTo') && e('~~'); // 步骤4任务指派人为空时的处理
r($taskTest->buildTasksForBatchEditTest($taskData5, $oldTasks)) && p('5:consumed') && e('-1'); // 步骤5任务consumed为负数时的处理保持负数