Skip to content

Commit 40153a0

Browse files
committed
restructure the API test suite
1 parent 9a8dda3 commit 40153a0

File tree

6 files changed

+52
-69
lines changed

6 files changed

+52
-69
lines changed

tests/Api/ActivityProfileApiClientTest.php

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,17 @@ public function testDeleteDocument()
8080
{
8181
$activityProfile = $this->createActivityProfile();
8282

83-
$this->validateDeleteDocumentCall('activities/profile', array(
84-
'activityId' => 'activity-id',
85-
'profileId' => 'profile-id',
86-
));
83+
$this->validateRequest(
84+
'delete',
85+
'activities/profile',
86+
array(
87+
'activityId' => 'activity-id',
88+
'profileId' => 'profile-id',
89+
),
90+
'',
91+
$this->createResponseMock(204, '')
92+
);
93+
$this->validateSerializer(array());
8794

8895
$this->client->deleteDocument($activityProfile);
8996
}

tests/Api/AgentProfileApiClientTest.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,17 @@ public function testDeleteDocument()
8787
{
8888
$profile = $this->createAgentProfile();
8989

90-
$this->validateDeleteDocumentCall(
90+
$this->validateRequest(
91+
'delete',
9192
'agents/profile',
9293
array(
9394
'agent' => 'agent-as-json',
9495
'profileId' => 'profile-id',
9596
),
96-
array(array('data' => $profile->getAgent(), 'result' => 'agent-as-json'))
97+
'',
98+
$this->createResponseMock(204, '')
9799
);
100+
$this->validateSerializer(array(array('data' => $profile->getAgent(), 'result' => 'agent-as-json')));
98101

99102
$this->client->deleteDocument(
100103
$profile

tests/Api/ApiClientTest.php

Lines changed: 26 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,11 @@ abstract class ApiClientTest extends \PHPUnit_Framework_TestCase
4242

4343
protected function setUp()
4444
{
45-
$this->requestHandler = $this->createRequestHandlerMock();
46-
$this->serializer = $this->createSerializerMock();
45+
$this->requestHandler = $this->getMockBuilder('\Xabbuh\XApi\Client\Request\HandlerInterface')->getMock();
46+
$this->serializer = $this->getMockBuilder('\Symfony\Component\Serializer\SerializerInterface')->getMock();
4747
$this->serializerRegistry = $this->createSerializerRegistry();
4848
}
4949

50-
protected function createRequestHandlerMock()
51-
{
52-
return $this->getMock('\Xabbuh\XApi\Client\Request\HandlerInterface');
53-
}
54-
5550
protected function createSerializerRegistry()
5651
{
5752
$registry = new SerializerRegistry();
@@ -63,76 +58,54 @@ protected function createSerializerRegistry()
6358
return $registry;
6459
}
6560

66-
protected function createSerializerMock()
67-
{
68-
return $this->getMock('\Symfony\Component\Serializer\SerializerInterface');
69-
}
70-
71-
protected function validateDeserializer($data, $type, $returnValue)
72-
{
73-
$this->serializer
74-
->expects($this->once())
75-
->method('deserialize')
76-
->with($data, 'Xabbuh\XApi\Model\\'.$type, 'json')
77-
->will($this->returnValue($returnValue));
78-
}
79-
8061
protected function validateSerializer(array $serializerMap)
8162
{
8263
$this
8364
->serializer
8465
->expects($this->any())
8566
->method('serialize')
86-
->will($this->returnCallback(function ($data) use ($serializerMap) {
67+
->willReturnCallback(function ($data) use ($serializerMap) {
8768
foreach ($serializerMap as $entry) {
8869
if ($data == $entry['data']) {
8970
return $entry['result'];
9071
}
9172
}
9273

9374
return '';
94-
}));
95-
}
96-
97-
protected function createRequestMock($response = null)
98-
{
99-
$request = $this->getMock('\Guzzle\Http\Message\RequestInterface');
100-
101-
if (null !== $response) {
102-
$request->expects($this->any())
103-
->method('send')
104-
->will($this->returnValue($response));
105-
}
106-
107-
return $request;
75+
});
10876
}
10977

11078
protected function createResponseMock($statusCode, $body)
11179
{
112-
$response = $this->getMock(
113-
'\Guzzle\Http\Message\Response',
114-
array(),
115-
array($statusCode)
116-
);
80+
$response = $this->getMockBuilder('\Guzzle\Http\Message\Response')
81+
->disableOriginalConstructor()
82+
->getMock();
11783
$response->expects($this->any())
11884
->method('getStatusCode')
119-
->will($this->returnValue($statusCode));
85+
->willReturn($statusCode);
12086
$response->expects($this->any())
12187
->method('getBody')
122-
->will($this->returnValue($body));
88+
->willReturn($body);
12389

12490
return $response;
12591
}
12692

12793
protected function validateRequest($method, $uri, array $urlParameters, $body = null, $response = null)
12894
{
129-
$request = $this->createRequestMock($response);
95+
$request = $this->getMockBuilder('\Guzzle\Http\Message\RequestInterface')->getMock();
96+
97+
if (null !== $response) {
98+
$request->expects($this->any())
99+
->method('send')
100+
->willReturn($response);
101+
}
102+
130103
$this
131104
->requestHandler
132105
->expects($this->once())
133106
->method('createRequest')
134107
->with($method, $uri, $urlParameters, $body)
135-
->will($this->returnValue($request));
108+
->willReturn($request);
136109

137110
return $request;
138111
}
@@ -149,20 +122,24 @@ protected function validateRetrieveApiCall($method, $uri, array $urlParameters,
149122
->expects($this->once())
150123
->method('executeRequest')
151124
->with($request)
152-
->will($this->throwException(new NotFoundException('Not found')));
125+
->willThrowException(new NotFoundException('Not found'));
153126
} else {
154127
$this
155128
->requestHandler
156129
->expects($this->once())
157130
->method('executeRequest')
158131
->with($request)
159-
->will($this->returnValue($response));
132+
->willReturn($response);
160133
}
161134

162135
$this->validateSerializer($serializerMap);
163136

164137
if ($statusCode < 400) {
165-
$this->validateDeserializer($rawResponse, $type, $transformedResult);
138+
$this->serializer
139+
->expects($this->once())
140+
->method('deserialize')
141+
->with($rawResponse, 'Xabbuh\XApi\Model\\'.$type, 'json')
142+
->willReturn($transformedResult);
166143
}
167144
}
168145

@@ -176,15 +153,8 @@ protected function validateStoreApiCall($method, $uri, array $urlParameters, $st
176153
->expects($this->once())
177154
->method('executeRequest')
178155
->with($request, array($statusCode))
179-
->will($this->returnValue($response));
156+
->willReturn($response);
180157
$serializerMap[] = array('data' => $object, 'result' => $rawRequest);
181158
$this->validateSerializer($serializerMap);
182159
}
183-
184-
protected function validateDeleteDocumentCall($uri, array $urlParameters, array $serializerMap = array())
185-
{
186-
$response = $this->createResponseMock(204, '');
187-
$this->validateRequest('delete', $uri, $urlParameters, '', $response);
188-
$this->validateSerializer($serializerMap);
189-
}
190160
}

tests/Api/StateApiClientTest.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,15 +88,18 @@ public function testDeleteDocument()
8888
{
8989
$state = $this->createState();
9090

91-
$this->validateDeleteDocumentCall(
91+
$this->validateRequest(
92+
'delete',
9293
'activities/state',
9394
array(
9495
'activityId' => 'activity-id',
9596
'agent' => 'agent-as-json',
9697
'stateId' => 'state-id',
9798
),
98-
array(array('data' => $state->getActor(), 'result' => 'agent-as-json'))
99+
'',
100+
$this->createResponseMock(204, '')
99101
);
102+
$this->validateSerializer(array(array('data' => $state->getActor(), 'result' => 'agent-as-json')));
100103

101104
$this->client->deleteDocument($state);
102105
}

tests/Api/StatementsApiClientTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ public function testGetStatementsWithAgentInStatementsFilter()
298298
->expects($this->once())
299299
->method('serialize')
300300
->with($agent, 'json')
301-
->will($this->returnValue($agentJson));
301+
->willReturn($agentJson);
302302
$this->validateRetrieveApiCall(
303303
'get',
304304
'statements',

tests/XApiClientTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,25 +103,25 @@ private function createSerializerRegistryMock()
103103
$serializerRegistry
104104
->expects($this->any())
105105
->method('getStatementSerializer')
106-
->will($this->returnValue($statementSerializer));
106+
->willReturn($statementSerializer);
107107

108108
$statementResultSerializer = $this->getMock('\Xabbuh\XApi\Serializer\StatementResultSerializerInterface');
109109
$serializerRegistry
110110
->expects($this->any())
111111
->method('getStatementResultSerializer')
112-
->will($this->returnValue($statementResultSerializer));
112+
->willReturn($statementResultSerializer);
113113

114114
$actorSerializer = $this->getMock('\Xabbuh\XApi\Serializer\ActorSerializerInterface');
115115
$serializerRegistry
116116
->expects($this->any())
117117
->method('getActorSerializer')
118-
->will($this->returnValue($actorSerializer));
118+
->willReturn($actorSerializer);
119119

120120
$documentDataSerializer = $this->getMock('\Xabbuh\XApi\Serializer\DocumentDataSerializerInterface');
121121
$serializerRegistry
122122
->expects($this->any())
123123
->method('getDocumentDataSerializer')
124-
->will($this->returnValue($documentDataSerializer));
124+
->willReturn($documentDataSerializer);
125125

126126
return $serializerRegistry;
127127
}

0 commit comments

Comments
 (0)