39 lines
796 B
PHP
39 lines
796 B
PHP
<?php
|
|
declare(strict_types = 1);
|
|
|
|
namespace LanguageServer\Tests;
|
|
|
|
use LanguageServer\{ProtocolReader, ProtocolWriter};
|
|
use LanguageServer\Protocol\Message;
|
|
|
|
/**
|
|
* A fake duplex protocol stream
|
|
*/
|
|
class MockProtocolStream implements ProtocolReader, ProtocolWriter
|
|
{
|
|
private $listener;
|
|
|
|
/**
|
|
* Sends a Message to the client
|
|
*
|
|
* @param Message $msg
|
|
* @return void
|
|
*/
|
|
public function write(Message $msg)
|
|
{
|
|
if (isset($this->listener)) {
|
|
$listener = $this->listener;
|
|
$listener(Message::parse((string)$msg));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param callable $listener Is called with a Message object
|
|
* @return void
|
|
*/
|
|
public function onMessage(callable $listener)
|
|
{
|
|
$this->listener = $listener;
|
|
}
|
|
}
|