1
0
Fork 0
mirror of https://codeberg.org/demostf/api.git synced 2026-06-03 18:04:08 +02:00

fix chat listing

This commit is contained in:
Robin Appelman 2017-08-08 13:08:09 +02:00
commit 06379c2363
3 changed files with 40 additions and 4 deletions

View file

@ -4,7 +4,7 @@ declare(strict_types=1);
namespace Demostf\API\Demo; namespace Demostf\API\Demo;
class ChatMessage { class ChatMessage implements \JsonSerializable {
/** @var string */ /** @var string */
private $user; private $user;
@ -47,4 +47,12 @@ class ChatMessage {
public function getMessage(): string { public function getMessage(): string {
return $this->message; return $this->message;
} }
public function jsonSerialize() {
return [
'user' => $this->user,
'time' => $this->time,
'message' => $this->message,
];
}
} }

View file

@ -50,4 +50,12 @@ abstract class ControllerTest extends TestCase {
protected function getResponseData() { protected function getResponseData() {
return $this->responseData; return $this->responseData;
} }
protected function assertResponseData($expected) {
if (!is_string($expected)) {
$expected = json_encode($expected);
}
$this->assertEquals($expected, $this->getResponseData());
}
} }

View file

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace Demostf\API\Test\Controllers; namespace Demostf\API\Test\Controllers;
use Demostf\API\Controllers\DemoController; use Demostf\API\Controllers\DemoController;
use Demostf\API\Demo\ChatMessage;
use Demostf\API\Demo\Demo; use Demostf\API\Demo\Demo;
use Demostf\API\Demo\DemoStore; use Demostf\API\Demo\DemoStore;
use Demostf\API\Providers\ChatProvider; use Demostf\API\Providers\ChatProvider;
@ -51,7 +52,7 @@ class DemoControllerTest extends ControllerTest {
->willReturn(['dummy']); ->willReturn(['dummy']);
$controller->listDemos(); $controller->listDemos();
$this->assertEquals('["dummy"]', $this->getResponseData()); $this->assertResponseData(['dummy']);
} }
public function testGetListPageASC() { public function testGetListPageASC() {
@ -63,7 +64,7 @@ class DemoControllerTest extends ControllerTest {
->willReturn(['dummy']); ->willReturn(['dummy']);
$controller->listDemos(); $controller->listDemos();
$this->assertEquals('["dummy"]', $this->getResponseData()); $this->assertResponseData(['dummy']);
} }
public function testListFilterBackend() { public function testListFilterBackend() {
@ -75,7 +76,7 @@ class DemoControllerTest extends ControllerTest {
->willReturn(['dummy']); ->willReturn(['dummy']);
$controller->listDemos(); $controller->listDemos();
$this->assertEquals('["dummy"]', $this->getResponseData()); $this->assertResponseData(['dummy']);
} }
/** /**
@ -178,4 +179,23 @@ class DemoControllerTest extends ControllerTest {
$controller->setDemoUrl('1'); $controller->setDemoUrl('1');
} }
public function testGetChat() {
$controller = $this->getController();
$this->chatProvider->expects($this->once())
->method('getChat')
->with(1)
->willReturn([
new ChatMessage('foo', 1, 'bar'),
new ChatMessage('foo2', 2, 'bar2'),
]);
$controller->chat('1');
$this->assertResponseData([
['user' => 'foo', 'time' => 1, 'message' => 'bar'],
['user' => 'foo2', 'time' => 2, 'message' => 'bar2'],
]);
}
} }