znt/module/convert/test/tao/createtask.php

154 lines
4.7 KiB
PHP
Raw Permalink Normal View History

#!/usr/bin/env php
<?php
/**
title=测试 convertTao::createTask();
timeout=0
cid=0
- 步骤1正常创建任务 @1
- 步骤2创建包含时间估算的任务 @1
- 步骤3创建包含截止日期和指派人的任务 @1
- 步骤4创建包含resolution字段的任务 @1
- 步骤5创建最小化字段的任务 @1
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/tao.class.php';
// 创建测试所需的临时表
global $tester;
$sql = <<<EOT
CREATE TABLE IF NOT EXISTS `jiratmprelation`(
`id` int(8) NOT NULL AUTO_INCREMENT,
`AType` char(30) NOT NULL,
`AID` char(100) NOT NULL,
`BType` char(30) NOT NULL,
`BID` char(100) NOT NULL,
`extra` char(100) NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `relation` (`AType`,`BType`,`AID`,`BID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
EOT;
try {
$tester->dbh->exec($sql);
$tester->dbh->exec('TRUNCATE TABLE jiratmprelation');
} catch (Exception $e) {
}
if(!defined('JIRA_TMPRELATION')) define('JIRA_TMPRELATION', '`jiratmprelation`');
// 准备项目数据
$project = zenData('project');
$project->id->range('1-5');
$project->name->range('项目1,项目2,项目3,项目4,项目5');
$project->code->range('PRJ001,PRJ002,PRJ003,PRJ004,PRJ005');
$project->status->range('doing{5}');
$project->type->range('project{5}');
$project->deleted->range('0{5}');
$project->gen(5);
// 准备执行数据
$execution = zenData('project');
$execution->id->range('11-15');
$execution->name->range('执行11,执行12,执行13,执行14,执行15');
$execution->code->range('EXE011,EXE012,EXE013,EXE014,EXE015');
$execution->status->range('doing{5}');
$execution->type->range('sprint{5}');
$execution->parent->range('1-5');
$execution->project->range('1-5');
$execution->deleted->range('0{5}');
$execution->gen(5, false);
// 准备用户数据
$user = zenData('user');
$user->account->range('admin,user1,user2,testuser');
$user->realname->range('管理员,用户1,用户2,测试用户');
$user->deleted->range('0{4}');
$user->gen(4);
zenData('action')->gen(0);
su('admin');
$convertTest = new convertTaoTest();
// 准备测试数据1正常创建任务包含完整必需字段
$data1 = new stdclass();
$data1->id = 1001;
$data1->summary = '测试任务1';
$data1->issuetype = 'Task';
$data1->issuestatus = 'Open';
$data1->priority = 2;
$data1->description = '这是测试任务的描述';
$data1->creator = 'admin';
$data1->created = '2023-01-01 10:00:00';
$data1->assignee = 'user1';
$data1->resolution = '';
$relations1 = array();
// 准备测试数据2包含时间估算的任务
$data2 = new stdclass();
$data2->id = 1002;
$data2->summary = '测试任务2';
$data2->issuetype = 'Task';
$data2->issuestatus = 'Open';
$data2->priority = 3;
$data2->description = '带时间估算的任务';
$data2->creator = 'admin';
$data2->created = '2023-01-02 10:00:00';
$data2->assignee = 'user1';
$data2->resolution = '';
$relations2 = array();
// 准备测试数据3包含截止日期和指派人的任务
$data3 = new stdclass();
$data3->id = 1003;
$data3->summary = '测试任务3';
$data3->issuetype = 'Task';
$data3->issuestatus = 'Open';
$data3->priority = 1;
$data3->description = '带截止日期的任务';
$data3->creator = 'admin';
$data3->created = '2023-01-03 10:00:00';
$data3->assignee = 'user2';
$data3->duedate = '2023-12-31 23:59:59';
$data3->resolution = '';
$relations3 = array();
// 准备测试数据4包含resolution字段的任务
$data4 = new stdclass();
$data4->id = 1004;
$data4->summary = '测试任务4';
$data4->issuetype = 'Task';
$data4->issuestatus = 'Closed';
$data4->priority = 3;
$data4->description = '已关闭的任务';
$data4->creator = 'admin';
$data4->created = '2023-01-04 10:00:00';
$data4->assignee = 'user1';
$data4->resolution = 'done';
$relations4 = array('zentaoReasonTask' => array('done' => 'done', 'cancel' => 'cancel'));
// 准备测试数据5最小化字段的任务
$data5 = new stdclass();
$data5->id = 1005;
$data5->summary = '测试任务5';
$data5->issuetype = 'Task';
$data5->issuestatus = 'Open';
$data5->priority = 0; // 测试默认优先级
$data5->creator = '';
$data5->created = '';
$data5->assignee = '';
$data5->resolution = '';
$relations5 = array();
r($convertTest->createTaskTest(1, 11, $data1, $relations1)) && p() && e('1'); // 步骤1正常创建任务
r($convertTest->createTaskTest(2, 12, $data2, $relations2)) && p() && e('1'); // 步骤2创建包含时间估算的任务
r($convertTest->createTaskTest(3, 13, $data3, $relations3)) && p() && e('1'); // 步骤3创建包含截止日期和指派人的任务
r($convertTest->createTaskTest(4, 14, $data4, $relations4)) && p() && e('1'); // 步骤4创建包含resolution字段的任务
r($convertTest->createTaskTest(5, 15, $data5, $relations5)) && p() && e('1'); // 步骤5创建最小化字段的任务