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); }); $promise = $handler->request('testMethod', ['ping'])->then(function ($result) { $this->assertEquals('pong', $result); }); Loop\tick(); $promise->wait(); // No event listeners $this->assertEquals([], $reader->listeners('message')); $this->assertEquals([], $writer->listeners('message')); } public function testNotify() { $reader = new MockProtocolStream; $writer = new MockProtocolStream; $handler = new ClientHandler($reader, $writer); $promise = $handler->notify('testMethod', ['ping']); Loop\tick(); $promise->wait(); // No event listeners $this->assertEquals([], $reader->listeners('message')); $this->assertEquals([], $writer->listeners('message')); } }