Skip to content
This repository has been archived by the owner on Dec 17, 2018. It is now read-only.

Commit

Permalink
fixed test
Browse files Browse the repository at this point in the history
  • Loading branch information
Cas Leentfaar committed Feb 8, 2015
1 parent a930035 commit e30f718
Showing 1 changed file with 32 additions and 11 deletions.
43 changes: 32 additions & 11 deletions src/CL/Slack/Tests/Transport/ApiClientTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@

use CL\Slack\Exception\SlackException;
use CL\Slack\Payload\PayloadInterface;
use CL\Slack\Payload\PayloadResponseInterface;
use CL\Slack\Tests\AbstractTestCase;
use CL\Slack\Transport\ApiClient;
use CL\Slack\Transport\Events\RequestEvent;
use CL\Slack\Transport\Events\ResponseEvent;
use CL\Slack\Util\PayloadSerializer;
use GuzzleHttp\Client;
use GuzzleHttp\Subscriber\History;
use GuzzleHttp\Subscriber\Mock;
Expand Down Expand Up @@ -56,12 +58,8 @@ public function testSend()
'foo' => 'bar',
];

$self = $this;
$mockPayloadResponse = $this->getMock('CL\Slack\Payload\PayloadResponseInterface');

$payloadSerializer = $this->getMock('CL\Slack\Util\PayloadSerializer');
$payloadSerializer->expects($this->once())->method('serializePayload')->willReturn($mockRequestData);
$payloadSerializer->expects($this->once())->method('deserializePayloadResponse')->willReturn($mockPayloadResponse);
$self = $this;
$payloadSerializer = $this->createPayloadSerializerMock($mockRequestData);

/** @var PayloadInterface|\PHPUnit_Framework_MockObject_MockObject $mockPayload */
$mockPayload = $this->getMock('CL\Slack\Payload\AbstractPayload');
Expand Down Expand Up @@ -91,8 +89,8 @@ public function testSend()

$apiClient->send($mockPayload);

$lastRequest = $history->getLastRequest();
$expectedUrl = ApiClient::API_BASE_URL . 'mock';
$lastRequest = $history->getLastRequest();
$expectedUrl = ApiClient::API_BASE_URL . 'mock';
parse_str((string) $lastRequest->getBody(), $lastRequestContent);
$lastResponseContent = json_decode($history->getLastResponse()->getBody(), true);

Expand All @@ -106,8 +104,9 @@ public function testSend()

public function testSendWithoutAnyToken()
{
$mockPayload = $this->getMock('CL\Slack\Payload\PayloadInterface');
$apiClient = new ApiClient();
$mockPayload = $this->getMock('CL\Slack\Payload\PayloadInterface');
$payloadSerializer = $this->createPayloadSerializerMock([], false);
$apiClient = new ApiClient(null, $payloadSerializer);
try {
$apiClient->send($mockPayload);
} catch (SlackException $e) {
Expand All @@ -130,8 +129,30 @@ public function testSendWithoutAnyToken()
*/
public function testAddListenerForUnknownEvent()
{
$apiClient = new ApiClient();
$payloadSerializer = $this->createPayloadSerializerMock([], false);
$apiClient = new ApiClient(null, $payloadSerializer);

$apiClient->addListener('unknown-event', function () {
return;
});
}

/**
* @param array $mockRequestData
* @param bool $mockReturns
*
* @return PayloadSerializer|\PHPUnit_Framework_MockObject_MockObject
*/
private function createPayloadSerializerMock(array $mockRequestData, $mockReturns = true)
{
$mockPayloadResponse = $this->getMock('CL\Slack\Payload\PayloadResponseInterface');
$payloadSerializer = $this->getMock('CL\Slack\Util\PayloadSerializer');

if ($mockReturns) {
$payloadSerializer->expects($this->once())->method('serializePayload')->willReturn($mockRequestData);
$payloadSerializer->expects($this->once())->method('deserializePayloadResponse')->willReturn($mockPayloadResponse);
}

return $payloadSerializer;
}
}

0 comments on commit e30f718

Please sign in to comment.