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

33 lines
1.2 KiB
PHP

<?php
declare(strict_types = 1);
namespace LanguageServer\Tests;
use PHPUnit\Framework\TestCase;
use LanguageServer\{LanguageServer, ProtocolStreamReader, ProtocolStreamWriter};
use LanguageServer\Message;
use AdvancedJsonRpc\{Request as RequestBody, Response as ResponseBody};
use Sabre\Event\Loop;
class ProtocolStreamReaderTest extends TestCase
{
public function testParsingWorksAndListenerIsCalled()
{
$tmpfile = tempnam('', '');
$writeHandle = fopen($tmpfile, 'w');
$reader = new ProtocolStreamReader(fopen($tmpfile, 'r'));
$msg = null;
$reader->on('message', function (Message $message) use (&$msg) {
$msg = $message;
});
$ret = fwrite($writeHandle, (string)new Message(new RequestBody(1, 'aMethod', ['arg' => 'Hello World'])));
Loop\tick();
$this->assertNotNull($msg);
$this->assertInstanceOf(Message::class, $msg);
$this->assertInstanceOf(RequestBody::class, $msg->body);
$this->assertEquals(1, $msg->body->id);
$this->assertEquals('aMethod', $msg->body->method);
$this->assertEquals((object)['arg' => 'Hello World'], $msg->body->params);
}
}