1
0
Fork 0
php-language-server/tests/ClientHandlerTest.php

47 lines
1.5 KiB
PHP
Raw Normal View History

2016-10-31 10:47:21 +00:00
<?php
2018-11-27 16:51:40 +00:00
declare(strict_types=1);
2016-10-31 10:47:21 +00:00
namespace LanguageServer\Tests;
use PHPUnit\Framework\TestCase;
use LanguageServer\ClientHandler;
use LanguageServer\Message;
2016-10-31 10:47:21 +00:00
use AdvancedJsonRpc;
use Sabre\Event\Loop;
class ClientHandlerTest extends TestCase
{
public function testRequest()
{
2018-11-27 16:51:40 +00:00
$reader = new MockProtocolStream();
$writer = new MockProtocolStream();
2016-10-31 10:47:21 +00:00
$handler = new ClientHandler($reader, $writer);
$writer->once('message', function (Message $msg) use ($reader) {
// Respond to request
Loop\setTimeout(function () use ($reader, $msg) {
$reader->write(new Message(new AdvancedJsonRpc\SuccessResponse($msg->body->id, 'pong')));
}, 0);
});
2018-11-27 16:51:40 +00:00
$handler
->request('testMethod', ['ping'])
->then(function ($result) {
$this->assertEquals('pong', $result);
})
->wait();
2016-10-31 10:47:21 +00:00
// No event listeners
$this->assertEquals([], $reader->listeners('message'));
$this->assertEquals([], $writer->listeners('message'));
}
public function testNotify()
{
2018-11-27 16:51:40 +00:00
$reader = new MockProtocolStream();
$writer = new MockProtocolStream();
2016-10-31 10:47:21 +00:00
$handler = new ClientHandler($reader, $writer);
$handler->notify('testMethod', ['ping'])->wait();
// No event listeners
$this->assertEquals([], $reader->listeners('message'));
$this->assertEquals([], $writer->listeners('message'));
}
}