+ [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:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Executable
+125
@@ -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'
|
||||
Reference in New Issue
Block a user