Skip to content

Commit 4fa4645

Browse files
committed
polish Project related class
1 parent 86ffc10 commit 4fa4645

File tree

3 files changed

+131
-72
lines changed

3 files changed

+131
-72
lines changed

src/Project/Project.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace JiraRestApi\Project;
44

5+
use JiraRestApi\AssigneeTypeEnum;
56
use JiraRestApi\ClassSerialize;
67
use JiraRestApi\JiraException;
78

@@ -228,7 +229,6 @@ public function setCategoryId(int $categoryId): static
228229
/**
229230
* $assigneeType value available for "PROJECT_LEAD" and "UNASSIGNED".
230231
*
231-
* @throws JiraException
232232
*/
233233
public function setAssigneeType(?string $assigneeType): static
234234
{
@@ -240,4 +240,11 @@ public function setAssigneeType(?string $assigneeType): static
240240

241241
return $this;
242242
}
243+
244+
public function setAssigneeTypeAsEnum(AssigneeTypeEnum $assigneeType): static
245+
{
246+
$this->assigneeType = $assigneeType->type();
247+
248+
return $this;
249+
}
243250
}

src/Project/ProjectService.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -258,13 +258,8 @@ public function getVersionsPagenated($projectIdOrKey, $queryParam = [])
258258
/**
259259
* get specified's project versions.
260260
*
261-
* @param string|int $projectIdOrKey
262-
*
263-
* @throws \JiraRestApi\JiraException
264-
*
265-
* @return Version[] array of version
266261
*/
267-
public function getVersions($projectIdOrKey)
262+
public function getVersions(string $projectIdOrKey) : \ArrayObject
268263
{
269264
$ret = $this->exec($this->uri."/$projectIdOrKey/versions");
270265

tests/ProjectTest.php

Lines changed: 122 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace JiraRestApi\Test;
44

5+
use JiraRestApi\Dumper;
6+
use JiraRestApi\Issue\Version;
57
use JiraRestApi\JiraException;
68
use JiraRestApi\Project\Project;
79
use JiraRestApi\Project\ProjectType;
@@ -10,102 +12,157 @@
1012

1113
class ProjectTest extends TestCase
1214
{
13-
public function testGetProject()
15+
/**
16+
* @test
17+
*
18+
*/
19+
public function get_project_info() : void
1420
{
15-
$proj = new ProjectService();
21+
try {
22+
$proj = new ProjectService();
1623

17-
$p = $proj->get('TEST');
24+
$p = $proj->get('TEST');
1825

19-
$this->assertTrue($p instanceof Project);
20-
$this->assertTrue(strlen($p->key) > 0);
21-
$this->assertTrue(!empty($p->id));
22-
$this->assertTrue(strlen($p->name) > 0);
23-
// $this->assertTrue(strlen($p->projectCategory['name']) > 0);
24-
}
25-
26-
public function testGetProjectLists()
27-
{
28-
$proj = new ProjectService();
29-
30-
$prjs = $proj->getAllProjects();
31-
32-
foreach ($prjs as $p) {
3326
$this->assertTrue($p instanceof Project);
3427
$this->assertTrue(strlen($p->key) > 0);
3528
$this->assertTrue(!empty($p->id));
3629
$this->assertTrue(strlen($p->name) > 0);
3730
// $this->assertTrue(strlen($p->projectCategory['name']) > 0);
31+
} catch (\Exception $e) {
32+
$this->fail('get_project_info ' . $e->getMessage());
3833
}
3934
}
4035

41-
public function testGetProjectTypes()
36+
/**
37+
* @test
38+
* @depends get_project_info
39+
*
40+
*/
41+
public function get_project_lists() : void
4242
{
43-
$proj = new ProjectService();
44-
45-
$prjtyps = $proj->getProjectTypes();
46-
47-
foreach ($prjtyps as $pt) {
48-
$this->assertTrue($pt instanceof ProjectType);
49-
$this->assertTrue(strlen($pt->key) > 0);
50-
$this->assertTrue(strlen($pt->formattedKey) > 0);
51-
$this->assertTrue(strlen($pt->descriptionI18nKey) > 0);
52-
$this->assertTrue(strlen($pt->color) > 0);
53-
$this->assertTrue(strlen($pt->icon) > 0);
43+
try {
44+
$proj = new ProjectService();
45+
46+
$prjs = $proj->getAllProjects();
47+
48+
foreach ($prjs as $p) {
49+
$this->assertTrue($p instanceof Project);
50+
$this->assertTrue(strlen($p->key) > 0);
51+
$this->assertTrue(!empty($p->id));
52+
$this->assertTrue(strlen($p->name) > 0);
53+
// $this->assertTrue(strlen($p->projectCategory['name']) > 0);
54+
}
55+
} catch (\Exception $e) {
56+
$this->fail('get_project_lists ' . $e->getMessage());
5457
}
5558
}
5659

57-
public function testGetProjectType()
60+
/**
61+
* @test
62+
* @depends get_project_lists
63+
*/
64+
public function get_project_types() : void
5865
{
59-
$proj = new ProjectService();
60-
61-
$prjtyp = $proj->getProjectType('software');
62-
63-
$this->assertTrue($prjtyp instanceof ProjectType);
64-
$this->assertTrue(strlen($prjtyp->key) > 0);
65-
$this->assertTrue(strlen($prjtyp->formattedKey) > 0);
66-
$this->assertTrue(strlen($prjtyp->descriptionI18nKey) > 0);
67-
$this->assertTrue(strlen($prjtyp->color) > 0);
68-
$this->assertTrue(strlen($prjtyp->icon) > 0);
66+
try {
67+
$proj = new ProjectService();
68+
69+
$prjtyps = $proj->getProjectTypes();
70+
71+
foreach ($prjtyps as $pt) {
72+
$this->assertTrue($pt instanceof ProjectType);
73+
$this->assertTrue(strlen($pt->key) > 0);
74+
$this->assertTrue(strlen($pt->formattedKey) > 0);
75+
$this->assertTrue(strlen($pt->descriptionI18nKey) > 0);
76+
$this->assertTrue(strlen($pt->color) > 0);
77+
$this->assertTrue(strlen($pt->icon) > 0);
78+
}
79+
} catch (\Exception $e) {
80+
$this->fail('get_project_types ' . $e->getMessage());
81+
}
6982
}
7083

71-
public function testGetProjectTypeException()
84+
/**
85+
* @test
86+
* @depends get_project_types
87+
*
88+
*/
89+
public function get_project_type() : void
7290
{
73-
$proj = new ProjectService();
74-
75-
$this->expectException(JiraException::class);
76-
77-
$prjtyp = $proj->getProjectType('foobar');
91+
try {
92+
$proj = new ProjectService();
93+
94+
$prjtyp = $proj->getProjectType('software');
95+
96+
$this->assertTrue($prjtyp instanceof ProjectType);
97+
$this->assertTrue(strlen($prjtyp->key) > 0);
98+
$this->assertTrue(strlen($prjtyp->formattedKey) > 0);
99+
$this->assertTrue(strlen($prjtyp->descriptionI18nKey) > 0);
100+
$this->assertTrue(strlen($prjtyp->color) > 0);
101+
$this->assertTrue(strlen($prjtyp->icon) > 0);
102+
} catch (\Exception $e) {
103+
$this->fail('get_project_type ' . $e->getMessage());
104+
}
78105
}
79106

80-
public function testGetProjectAccessible()
81-
{
82-
$proj = new ProjectService();
83-
84-
$prjtyp = $proj->getAccessibleProjectType('business');
85107

86-
$this->assertTrue($prjtyp instanceof ProjectType);
87-
$this->assertTrue(strlen($prjtyp->key) > 0);
88-
$this->assertTrue(strlen($prjtyp->formattedKey) > 0);
89-
$this->assertTrue(strlen($prjtyp->descriptionI18nKey) > 0);
90-
$this->assertTrue(strlen($prjtyp->color) > 0);
91-
$this->assertTrue(strlen($prjtyp->icon) > 0);
108+
/**
109+
* @test
110+
* @depends get_project_types
111+
*
112+
*/
113+
public function get_project_accessible() : void
114+
{
115+
try {
116+
$proj = new ProjectService();
117+
118+
$prjtyp = $proj->getAccessibleProjectType('business');
119+
120+
$this->assertTrue($prjtyp instanceof ProjectType);
121+
$this->assertTrue(strlen($prjtyp->key) > 0);
122+
$this->assertTrue(strlen($prjtyp->formattedKey) > 0);
123+
$this->assertTrue(strlen($prjtyp->descriptionI18nKey) > 0);
124+
$this->assertTrue(strlen($prjtyp->color) > 0);
125+
$this->assertTrue(strlen($prjtyp->icon) > 0);
126+
} catch (\Exception $e) {
127+
$this->fail('get_project_accessible ' . $e->getMessage());
128+
}
92129
}
93130

94-
public function testGetProjectAccessibleException()
131+
/**
132+
* @test
133+
* @depends get_project_accessible
134+
*/
135+
public function get_project_version() : void
95136
{
96-
$proj = new ProjectService();
137+
try {
138+
$proj = new ProjectService();
139+
140+
$prjs = $proj->getVersions('TEST');
97141

98-
$this->expectException(JiraException::class);
142+
$this->assertNull($prjs);
143+
$this->assertTrue($prjs instanceof \ArrayObject);
144+
$this->assertLessThan($prjs->count(), 2);
99145

100-
$prjtyp = $proj->getAccessibleProjectType('foobar');
146+
} catch (\Exception $e) {
147+
$this->fail('get_project_version ' . $e->getMessage());
148+
}
101149
}
102150

103-
public function testGetProjectVersion()
151+
/**
152+
* @test
153+
* @depends get_project_accessible
154+
*
155+
*/
156+
public function get_unknown_project_type_expect_to_JiraException() : void
104157
{
105-
$proj = new ProjectService();
158+
try {
159+
$proj = new ProjectService();
106160

107-
$prjs = $proj->getVersions('TEST');
161+
$this->expectException(JiraException::class);
108162

109-
var_dump($prjs);
163+
$prjtyp = $proj->getProjectType('foobar');
164+
} catch (\Exception $e) {
165+
$this->fail('get_project_type ' . $e->getMessage());
166+
}
110167
}
111168
}

0 commit comments

Comments
 (0)