addOneTimeListener('message', function (MessageEvent $messageEvent) use ($reader) { $msg = $messageEvent->getMessage(); // Respond to request Loop::defer(function () use ($reader, $msg) { yield from $reader->write(new Message(new AdvancedJsonRpc\SuccessResponse($msg->body->id, 'pong'))); }); }); $result = yield from $handler->request('testMethod', ['ping']); $this->assertEquals('pong', $result); // No event listeners $this->assertEquals([], $reader->getListeners('message')); $this->assertEquals([], $writer->getListeners('message')); }); } public function testNotify() { Loop::run(function () { $reader = new MockProtocolStream; $writer = new MockProtocolStream; $handler = new ClientHandler($reader, $writer); yield from $handler->notify('testMethod', ['ping']); // No event listeners $this->assertEquals([], $reader->getListeners('message')); $this->assertEquals([], $writer->getListeners('message')); }); } }