/** * @param Request $request * @return \React\Promise\Promise|\React\Promise\PromiseInterface */ public function sendRequest(Request $request) { $result = new Deferred(); $this->deferred[$request->getId()] = $result; $this->sendData($request->write()); return $result->promise(); }
public function testRequest() { $id = 909; $method = 'service.help'; $params = ['a', 'b', 'c']; $request = new Request($id, $method, $params); $this->assertEquals($id, $request->getId()); $this->assertEquals($method, $request->getMethod()); $this->assertEquals($params, $request->getParams()); $written = json_encode(["json-rpc" => "2.0", "id" => $id, "method" => $method, "params" => $params]) . "\n"; $this->assertEquals($written, $request->write()); }
public function testRequest() { $expected = new Request(null, 'test.method', [123]); $serialized = new Deferred(); $serialized->promise()->then(function (Request $request) use($expected) { $this->assertEquals($expected->getMethod(), $request->getMethod()); $this->assertEquals($expected->getParams(), $request->getParams()); $this->assertEquals($expected->write(), func_get_args()[0]); }, function ($e) { $this->fail($e); }); $stream = $this->getMockStream(); $stream->expects($this->once())->method('write')->willReturnCallback(function () use(&$serialized) { $args = func_get_args(); if (isset($args[0])) { $serialized->resolve($args[0]); } else { $serialized->reject(); } }); $factory = new RequestFactory(); $connection = new Connection($stream, $factory); $connection->request('test.method', [123]); }