Skip to content

Commit 8873d0e

Browse files
author
Matt Humphrey
committed
Group tests
1 parent c73d823 commit 8873d0e

File tree

2 files changed

+159
-0
lines changed

2 files changed

+159
-0
lines changed

test/Gitlab/Tests/Api/GroupsTest.php

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
<?php namespace Gitlab\Tests\Api;
2+
3+
use Gitlab\Api\AbstractApi;
4+
5+
class GroupsTest extends TestCase
6+
{
7+
/**
8+
* @test
9+
*/
10+
public function shouldGetAllProjects()
11+
{
12+
$expectedArray = array(
13+
array('id' => 1, 'name' => 'A group'),
14+
array('id' => 2, 'name' => 'Another group'),
15+
);
16+
17+
$api = $this->getApiMock();
18+
$api->expects($this->once())
19+
->method('get')
20+
->with('groups', array('page' => 1, 'per_page' => 10))
21+
->will($this->returnValue($expectedArray))
22+
;
23+
24+
$this->assertEquals($expectedArray, $api->all(1, 10));
25+
}
26+
27+
/**
28+
* @test
29+
*/
30+
public function shouldNotNeedPaginationWhenGettingGroups()
31+
{
32+
$expectedArray = array(
33+
array('id' => 1, 'name' => 'A group'),
34+
array('id' => 2, 'name' => 'Another group'),
35+
);
36+
37+
$api = $this->getApiMock();
38+
$api->expects($this->once())
39+
->method('get')
40+
->with('groups', array('page' => 1, 'per_page' => AbstractApi::PER_PAGE))
41+
->will($this->returnValue($expectedArray))
42+
;
43+
44+
$this->assertEquals($expectedArray, $api->all());
45+
}
46+
47+
/**
48+
* @test
49+
*/
50+
public function shouldShowGroup()
51+
{
52+
$expectedArray = array('id' => 1, 'name' => 'A group');
53+
54+
$api = $this->getApiMock();
55+
$api->expects($this->once())
56+
->method('get')
57+
->with('groups/1')
58+
->will($this->returnValue($expectedArray))
59+
;
60+
61+
$this->assertEquals($expectedArray, $api->show(1));
62+
}
63+
64+
/**
65+
* @test
66+
*/
67+
public function shouldCreateGroup()
68+
{
69+
$expectedArray = array('id' => 1, 'name' => 'A new group');
70+
71+
$api = $this->getApiMock();
72+
$api->expects($this->once())
73+
->method('post')
74+
->with('groups', array('name' => 'A new group', 'path' => 'a-new-group'))
75+
->will($this->returnValue($expectedArray))
76+
;
77+
78+
$this->assertEquals($expectedArray, $api->create('A new group', 'a-new-group'));
79+
}
80+
81+
/**
82+
* @test
83+
*/
84+
public function shouldTransferProjectToGroup()
85+
{
86+
$expectedBool = true;
87+
88+
$api = $this->getApiMock();
89+
$api->expects($this->once())
90+
->method('post')
91+
->with('groups/1/projects/2')
92+
->will($this->returnValue($expectedBool))
93+
;
94+
95+
$this->assertEquals($expectedBool, $api->transfer(1, 2));
96+
}
97+
98+
/**
99+
* @test
100+
*/
101+
public function shouldGetMembers()
102+
{
103+
$expectedArray = array(
104+
array('id' => 1, 'name' => 'Matt'),
105+
array('id' => 2, 'name' => 'Bob')
106+
);
107+
108+
$api = $this->getApiMock();
109+
$api->expects($this->once())
110+
->method('get')
111+
->with('groups/1/members')
112+
->will($this->returnValue($expectedArray))
113+
;
114+
115+
$this->assertEquals($expectedArray, $api->members(1));
116+
}
117+
118+
/**
119+
* @test
120+
*/
121+
public function shouldAddMember()
122+
{
123+
$expectedArray = array('id' => 1, 'name' => 'Matt');
124+
125+
$api = $this->getApiMock();
126+
$api->expects($this->once())
127+
->method('post')
128+
->with('groups/1/members', array('user_id' => 2, 'access_level' => 3))
129+
->will($this->returnValue($expectedArray))
130+
;
131+
132+
$this->assertEquals($expectedArray, $api->addMember(1, 2, 3));
133+
}
134+
135+
/**
136+
* @test
137+
*/
138+
public function shouldRemoveMember()
139+
{
140+
$expectedBool = true;
141+
142+
$api = $this->getApiMock();
143+
$api->expects($this->once())
144+
->method('delete')
145+
->with('groups/1/members/2')
146+
->will($this->returnValue($expectedBool))
147+
;
148+
149+
$this->assertEquals($expectedBool, $api->removeMember(1, 2));
150+
}
151+
152+
protected function getApiClass()
153+
{
154+
return 'Gitlab\Api\Groups';
155+
}
156+
}

test/Gitlab/Tests/Api/TestCase.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase
66
{
77
abstract protected function getApiClass();
88

9+
/**
10+
* @return \PHPUnit_Framework_MockObject_MockObject|mixed
11+
*/
912
protected function getApiMock()
1013
{
1114
$httpClient = $this->getMock('Buzz\Client\Curl', array('send'));

0 commit comments

Comments
 (0)