+ [misc] Add unit tests for convertTao::createBug() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-15 15:09:42 +08:00
co-authored by Claude
parent 41e05e9e2f
commit cae7272c07
7 changed files with 283 additions and 0 deletions
@@ -3373,4 +3373,28 @@ class convertTest
}
}
/**
* Test createBug method.
*
* @param int $productID
* @param int $projectID
* @param int $executionID
* @param object $data
* @param array $relations
* @access public
* @return mixed
*/
public function createBugTest($productID = 1, $projectID = 1, $executionID = 1, $data = null, $relations = array())
{
if($data === null) return false;
try {
$result = $this->objectTao->createBug($productID, $projectID, $executionID, $data, $relations);
if(dao::isError()) return dao::getError();
return $result;
} catch (Exception $e) {
return false;
}
}
}
+125
View File
@@ -0,0 +1,125 @@
#!/usr/bin/env php
<?php
/**
title=测试 convertTao::createBug();
timeout=0
cid=0
- 执行convertTest模块的createBugTest方法,参数是1, 1, 1, $data1, $relations1 @0
- 执行convertTest模块的createBugTest方法,参数是1, 1, 1, $data2, $relations1 @0
- 执行convertTest模块的createBugTest方法,参数是999, 1, 1, $data3, $relations1 @0
- 执行convertTest模块的createBugTest方法,参数是2, 2, 2, $data4, $relations4 @0
- 执行convertTest模块的createBugTest方法,参数是3, 3, 0, $data5, $relations5 @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/convert.unittest.class.php';
$product = zenData('product');
$product->id->range('1-10');
$product->name->range('产品1,产品2,产品3');
$product->code->range('product1,product2,product3');
$product->status->range('normal{10}');
$product->gen(3);
$project = zenData('project');
$project->id->range('1-10');
$project->name->range('项目1,项目2,项目3');
$project->code->range('project1,project2,project3');
$project->status->range('wait{10}');
$project->type->range('project{10}');
$project->gen(3);
$user = zenData('user');
$user->id->range('1-10');
$user->account->range('admin,user1,user2,testuser');
$user->realname->range('管理员,用户1,用户2,测试用户');
$user->gen(4);
su('admin');
$convertTest = new convertTest();
$data1 = new stdclass();
$data1->id = 100;
$data1->summary = '正常Bug标题';
$data1->priority = 2;
$data1->issuestatus = 'open';
$data1->issuetype = 'bug';
$data1->description = '正常Bug描述';
$data1->creator = 'admin';
$data1->created = '2023-01-01 10:00:00';
$data1->assignee = 'admin';
$data1->duedate = '2023-12-31';
$data1->resolution = '';
$relations1 = array();
r($convertTest->createBugTest(1, 1, 1, $data1, $relations1)) && p() && e('0');
$data2 = new stdclass();
$data2->id = 101;
$data2->summary = '';
$data2->priority = 0;
$data2->issuestatus = '';
$data2->issuetype = 'bug';
$data2->description = '';
$data2->creator = '';
$data2->created = '';
$data2->assignee = '';
$data2->duedate = '';
$data2->resolution = '';
r($convertTest->createBugTest(1, 1, 1, $data2, $relations1)) && p() && e('0');
$data3 = new stdclass();
$data3->id = 102;
$data3->summary = '无效产品Bug';
$data3->priority = 3;
$data3->issuestatus = 'open';
$data3->issuetype = 'bug';
$data3->description = '测试无效产品ID';
$data3->creator = 'testuser';
$data3->created = '2023-06-01 15:30:00';
$data3->assignee = 'user1';
$data3->duedate = '';
$data3->resolution = '';
r($convertTest->createBugTest(999, 1, 1, $data3, $relations1)) && p() && e('0');
$data4 = new stdclass();
$data4->id = 103;
$data4->summary = '带解决方案的Bug';
$data4->priority = 1;
$data4->issuestatus = 'resolved';
$data4->issuetype = 'bug';
$data4->description = '已解决的Bug';
$data4->creator = 'user2';
$data4->created = '2023-03-15 09:20:00';
$data4->assignee = 'admin';
$data4->duedate = '2023-04-15';
$data4->resolution = 'fixed';
$relations4 = array('zentaoResolutionbug' => array('fixed' => 'fixed', 'wontfix' => 'postponed'));
r($convertTest->createBugTest(2, 2, 2, $data4, $relations4)) && p() && e('0');
$data5 = new stdclass();
$data5->id = 104;
$data5->summary = '已关闭的Bug';
$data5->priority = 4;
$data5->issuestatus = 'closed';
$data5->issuetype = 'bug';
$data5->description = '关闭状态的Bug';
$data5->creator = 'admin';
$data5->created = '2023-02-20 14:45:00';
$data5->assignee = '';
$data5->duedate = '';
$data5->resolution = 'duplicate';
$relations5 = array('zentaoResolutionbug' => array('duplicate' => 'duplicate'));
r($convertTest->createBugTest(3, 3, 0, $data5, $relations5)) && p() && e('0');
@@ -0,0 +1,26 @@
title: 用于createBug方法测试的action数据
desc: 提供createBug方法测试需要的action操作记录数据
fields:
- field: id
range: 1-10
- field: objectType
range: bug{8},story{2}
- field: objectID
range: 1-5
- field: product
range: ',1,{5},2,{3},3,{2}'
- field: project
range: 1-3
- field: execution
range: 0-2
- field: actor
range: admin{4},user1{3},user2{2},testuser{1}
- field: action
range: opened{6},edited{2},resolved{1},closed{1}
- field: date
range: 2023-01-01 00:00:00-2023-12-31 23:59:59
- field: comment
range: '',创建bug,修改bug,解决bug
- field: extra
range: ''
@@ -0,0 +1,34 @@
title: 用于createBug方法测试的bug数据
desc: 提供createBug方法测试需要的基础bug数据
fields:
- field: id
range: 1-10
- field: project
range: 1-3
- field: product
range: 1-3
- field: execution
range: 0-2
- field: title
range: 测试Bug{3},修复Bug{3},功能Bug{4}
- field: pri
range: 1-4
- field: severity
range: 1-4
- field: status
range: active{5},resolved{3},closed{2}
- field: openedBy
range: admin,user1,user2,testuser
- field: openedDate
range: 2023-01-01 00:00:00-2023-12-31 23:59:59
- field: assignedTo
range: admin,user1,user2,''
- field: steps
range: 测试步骤1,测试步骤2,重现步骤,操作步骤
- field: openedBuild
range: trunk{5},v1.0{3},v2.0{2}
- field: resolution
range: fixed{4},postponed{2},duplicate{2},bydesign{1},''[1]
- field: deleted
range: '0'
@@ -0,0 +1,26 @@
title: 用于createBug方法测试的execution数据
desc: 提供createBug方法测试需要的执行基础数据
fields:
- field: id
range: 1-5
- field: name
range: 执行A,执行B,执行C,测试执行,Demo执行
- field: code
range: EXEC_A,EXEC_B,EXEC_C,TEST_EXEC,DEMO_EXEC
- field: status
range: wait{2},doing{2},closed{1}
- field: begin
range: 2023-01-01-2023-06-30
- field: end
range: 2023-07-01-2023-12-31
- field: openedBy
range: admin{3},user1{1},user2{1}
- field: openedDate
range: 2023-01-01 00:00:00-2023-06-30 23:59:59
- field: project
range: 1-3
- field: type
range: stage
- field: deleted
range: '0'
@@ -0,0 +1,22 @@
title: 用于createBug方法测试的product数据
desc: 提供createBug方法测试需要的产品基础数据
fields:
- field: id
range: 1-5
- field: name
range: 产品A,产品B,产品C,测试产品,Demo产品
- field: code
range: PROD_A,PROD_B,PROD_C,TEST_PROD,DEMO_PROD
- field: status
range: normal{4},closed{1}
- field: createdBy
range: admin{3},user1{1},user2{1}
- field: createdDate
range: 2023-01-01 00:00:00-2023-06-30 23:59:59
- field: acl
range: open{3},private{1},custom{1}
- field: type
range: normal
- field: deleted
range: '0'
@@ -0,0 +1,26 @@
title: 用于createBug方法测试的project数据
desc: 提供createBug方法测试需要的项目基础数据
fields:
- field: id
range: 1-5
- field: name
range: 项目A,项目B,项目C,测试项目,Demo项目
- field: code
range: PROJ_A,PROJ_B,PROJ_C,TEST_PROJ,DEMO_PROJ
- field: status
range: wait{2},doing{2},closed{1}
- field: begin
range: 2023-01-01-2023-06-30
- field: end
range: 2023-07-01-2023-12-31
- field: openedBy
range: admin{3},user1{1},user2{1}
- field: openedDate
range: 2023-01-01 00:00:00-2023-06-30 23:59:59
- field: acl
range: open{3},private{1},custom{1}
- field: type
range: project
- field: deleted
range: '0'