Skip to content

Commit 862d623

Browse files
committed
feat: #13 project setting get issue types
1 parent 17575f7 commit 862d623

File tree

3 files changed

+94
-0
lines changed

3 files changed

+94
-0
lines changed

src/ProjectSetting.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
namespace Coding;
4+
5+
class ProjectSetting extends Base
6+
{
7+
public function getIssueTypes(array $data)
8+
{
9+
$this->validate($data, [
10+
'ProjectName' => 'string|required',
11+
]);
12+
$response = $this->core->request('DescribeProjectIssueTypeList', $data);
13+
return $response['IssueTypes'];
14+
}
15+
}

tests/ProjectSettingTest.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace Coding\Tests;
4+
5+
use Coding\ProjectSetting;
6+
7+
class ProjectSettingTest extends TestCase
8+
{
9+
public function testGetIssueTypes()
10+
{
11+
$response = json_decode(
12+
file_get_contents($this->dataPath('DescribeProjectIssueTypeListResponse.json')),
13+
true
14+
)['Response'];
15+
$data = [
16+
'ProjectName' => $this->projectName,
17+
];
18+
$this->coreMock->shouldReceive('request')->times(1)->withArgs([
19+
'DescribeProjectIssueTypeList',
20+
$data
21+
])->andReturn($response);
22+
23+
$projectSetting = new ProjectSetting($this->token, $this->coreMock);
24+
$result = $projectSetting->getIssueTypes($data);
25+
$this->assertEquals($response['IssueTypes'], $result);
26+
}
27+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
{
2+
"Response" : {
3+
"IssueTypes" : [
4+
{
5+
"Description" : "史诗是一个较大的功能或特性,可以分解为多个较小的需求或任务。通常其需要分多次迭代才可完成。",
6+
"Id" : 213217,
7+
"IsSystem" : true,
8+
"IssueType" : "EPIC",
9+
"Name" : "史诗",
10+
"SplitTargetIssueTypeId" : [],
11+
"SplitType" : "UNSPLITTABLE"
12+
},
13+
{
14+
"Description" : "用户故事是敏捷框架中最小的工作单元,是从用户角度描述软件如何为其带来特定的价值。",
15+
"Id" : 213218,
16+
"IsSystem" : true,
17+
"IssueType" : "REQUIREMENT",
18+
"Name" : "用户故事",
19+
"SplitTargetIssueTypeId" : [],
20+
"SplitType" : "ALL_REQUIREMENT"
21+
},
22+
{
23+
"Description" : "任务是指为实现某个目标或需求所进行的具体活动。",
24+
"Id" : 213220,
25+
"IsSystem" : true,
26+
"IssueType" : "MISSION",
27+
"Name" : "任务",
28+
"SplitTargetIssueTypeId" : [],
29+
"SplitType" : "UNSPLITTABLE"
30+
},
31+
{
32+
"Description" : "缺陷是指软件不符合最初定义的业务需求的现象,缺陷管理用于跟踪这些问题和错误。",
33+
"Id" : 213221,
34+
"IsSystem" : true,
35+
"IssueType" : "DEFECT",
36+
"Name" : "缺陷",
37+
"SplitTargetIssueTypeId" : [],
38+
"SplitType" : "UNSPLITTABLE"
39+
},
40+
{
41+
"Description" : "在敏捷模式下,将一个事项拆分成更小的块。",
42+
"Id" : 213222,
43+
"IsSystem" : true,
44+
"IssueType" : "SUB_TASK",
45+
"Name" : "子工作项",
46+
"SplitTargetIssueTypeId" : [],
47+
"SplitType" : "UNSPLITTABLE"
48+
}
49+
],
50+
"RequestId" : "9f7e8405-943d-fb02-96bf-3ee3c63e0fe6"
51+
}
52+
}

0 commit comments

Comments
 (0)