Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 862d623

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /