Skip to content

Commit ccd0979

Browse files
committed
init
0 parents  commit ccd0979

20 files changed

+3272
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/vendor

Tests/APITest.php

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
<?php
2+
3+
use TRMS\Carousel\Server\API;
4+
use TRMS\Carousel\Exceptions\CarouselAPIException;
5+
use TRMS\Carousel\Models\User;
6+
use TRMS\Carousel\Models\Bulletin;
7+
use TRMS\Carousel\Models\Group;
8+
9+
use CarouselTests\MockData\MockResponder;
10+
11+
use GuzzleHttp\Handler\MockHandler;
12+
use GuzzleHttp\HandlerStack;
13+
use GuzzleHttp\Psr7\Response;
14+
use GuzzleHttp\Psr7\Request;
15+
use GuzzleHttp\Exception\RequestException;
16+
17+
class APITest extends PHPUnit_Framework_TestCase
18+
{
19+
20+
function test_you_can_connect_to_a_server()
21+
{
22+
$mock = new MockHandler([
23+
new Response(200),
24+
new Response(200),
25+
]);
26+
$handler = HandlerStack::create($mock);
27+
28+
$server = new API();
29+
30+
$server->connect('foo','username','password');
31+
$server->client->request('GET','',['handler'=>$handler]);
32+
$this->assertEquals('foo/carouselapi/v1/', (string) $mock->getLastRequest()->getUri());
33+
34+
$server->connect('bar','username','password');
35+
$server->client->request('GET','',['handler'=>$handler]);
36+
$this->assertEquals('bar/carouselapi/v1/', (string) $mock->getLastRequest()->getUri());
37+
}
38+
39+
40+
function test_the_server_will_throw_an_exception_if_the_endpoint_404s()
41+
{
42+
$mock = new MockHandler([
43+
new Response(404),
44+
]);
45+
$handler = HandlerStack::create($mock);
46+
47+
$server = new API();
48+
$server
49+
->addMockHandler($handler)
50+
->connect('my_server','username','password');
51+
52+
try{
53+
$server->whoAmI();
54+
} catch(CarouselAPIException $e) {
55+
return;
56+
}
57+
58+
$this->fail('the server did not throw an exception');
59+
}
60+
61+
function test_the_class_will_connect_to_a_carousel_server_and_get_the_current_user()
62+
{
63+
$mockResponder = new MockResponder;
64+
$mock = new MockHandler([
65+
new Response(200,[],$mockResponder->whoAmI()),
66+
]);
67+
$handler = HandlerStack::create($mock);
68+
69+
$server = new API();
70+
$server
71+
->addMockHandler($handler)
72+
->connect('my_server','username','password');
73+
74+
$loggedInUser = $server->whoAmI();
75+
76+
$this->assertInstanceOf(User::class, $loggedInUser);
77+
$this->assertEquals('admin', $loggedInUser->id);
78+
$this->assertArraySubset(['id'=>'admin'],$loggedInUser->toArray());
79+
}
80+
81+
function test_you_can_get_a_list_of_bulletins()
82+
{
83+
$mockResponder = new MockResponder;
84+
$mock = new MockHandler([
85+
new Response(200,[],$mockResponder->bulletins()),
86+
new Response(200,[],json_encode(['id'=>'2'])),
87+
]);
88+
$handler = HandlerStack::create($mock);
89+
90+
$server = new API();
91+
$bulletins = $server
92+
->addMockHandler($handler)
93+
->connect('my_server','username','password')
94+
->getBulletins();
95+
96+
$group = $bulletins[0]->getGroup();
97+
98+
$this->assertInstanceOf(Bulletin::class, $bulletins[0]);
99+
$this->assertEquals(1, $bulletins[0]->id);
100+
$this->assertArraySubset(['id'=>1],$bulletins[0]->toArray());
101+
$this->assertInstanceOf(Group::class, $group);
102+
}
103+
104+
function test_you_can_get_a_single_bulletin_by_id()
105+
{
106+
$mockResponder = new MockResponder;
107+
$mock = new MockHandler([
108+
new Response(200,[],$mockResponder->bulletin()),
109+
new Response(200,[],json_encode(['id'=>'2'])),
110+
]);
111+
$handler = HandlerStack::create($mock);
112+
113+
$server = new API();
114+
$bulletin = $server
115+
->addMockHandler($handler)
116+
->connect('my_server','username','password')
117+
->getBulletin('1');
118+
119+
$group = $bulletin->getGroup();
120+
121+
$this->assertInstanceOf(Bulletin::class, $bulletin);
122+
$this->assertEquals(1, $bulletin->id);
123+
$this->assertArraySubset(['id'=>1],$bulletin->toArray());
124+
$this->assertInstanceOf(Group::class, $group);
125+
}
126+
127+
function test_you_can_save_an_existing_bulletin()
128+
{
129+
$mockResponder = new MockResponder;
130+
$mock = new MockHandler([
131+
new Response(200,[],$mockResponder->bulletin()),
132+
]);
133+
$handler = HandlerStack::create($mock);
134+
135+
$bulletin = new Bulletin(['id'=>'1']);
136+
$server = new API();
137+
138+
$response = $server
139+
->addMockHandler($handler)
140+
->connect('server','username','password')
141+
->save($bulletin);
142+
143+
$this->assertEquals('server/carouselapi/v1/bulletins/1', (string) $mock->getLastRequest()->getUri());
144+
$this->assertEquals('PUT', (string) $mock->getLastRequest()->getMethod());
145+
$this->assertInstanceOf(Bulletin::class, $response);
146+
}
147+
148+
function test_you_can_save_a_new_bulletin()
149+
{
150+
$mockResponder = new MockResponder;
151+
$mock = new MockHandler([
152+
new Response(200,[],$mockResponder->bulletin()),
153+
]);
154+
$handler = HandlerStack::create($mock);
155+
156+
$bulletin = new Bulletin();
157+
$server = new API();
158+
159+
$response = $server
160+
->addMockHandler($handler)
161+
->connect('server','username','password')
162+
->save($bulletin);
163+
164+
$this->assertEquals('server/carouselapi/v1/bulletins', (string) $mock->getLastRequest()->getUri());
165+
$this->assertEquals('POST', (string) $mock->getLastRequest()->getMethod());
166+
$this->assertInstanceOf(Bulletin::class, $response);
167+
}
168+
169+
function test_you_can_get_an_individual_group()
170+
{
171+
$mockResponder = new MockResponder;
172+
$mock = new MockHandler([
173+
new Response(200,[],json_encode(['id'=>'1'])),
174+
]);
175+
$handler = HandlerStack::create($mock);
176+
177+
$server = new API();
178+
$group = $server
179+
->addMockHandler($handler)
180+
->connect('my_server','username','password')
181+
->getGroup('1');
182+
183+
$this->assertInstanceOf(Group::class, $group);
184+
$this->assertEquals(1, $group->id);
185+
$this->assertArraySubset(['id'=>1],$group->toArray());
186+
}
187+
}

Tests/BulletinRequestTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php namespace TRMS\Carousel\Tests;
2+
3+
class TestCase extends PHPUnit_Framework_TestCase
4+
{
5+
public function setUp(){
6+
7+
}
8+
9+
public function tearDown(){
10+
11+
}
12+
}

0 commit comments

Comments
 (0)