public function test_create_withProperParams_returnsProperRpcRequestPayload() { $procedure = 'testProcedure'; $params = []; $payload = RpcRequestPayload::create($procedure, $params); $this->assertTrue($payload instanceof RpcRequestPayload); $this->assertEquals($procedure, $payload->getProcedure()); $this->assertEquals($params, $payload->getParams()); $params = ['foo' => 'bar']; $payload = RpcRequestPayload::create($procedure, $params); $this->assertTrue($payload instanceof RpcRequestPayload); $this->assertEquals($procedure, $payload->getProcedure()); $this->assertEquals($params, $payload->getParams()); }
/** * @param string $routingKey * @param string $procedure * @param array $params * @param bool $closeConnectionAfterCall * * @return RpcResponsePayload */ public function call($routingKey, $procedure, array $params = [], $closeConnectionAfterCall = false) { // Reset current response object $this->resetCurrentRpcResponse(); // Connect $this->connector->connect(); // Declare responses queue $this->declareResponsesQueue(); // Create an empty request message $request = MessagesBuilder::emptyRpcRequest($this->getSerializer()->getSerializedContentType()); // Set message payload $request->setPayload(RpcRequestPayload::create($procedure, $params)); // Set other message properties $request->setExpiration(1000 * $this->getTimeOut()); $request->setReplyTo($this->responsesQueue); // Send request $this->sendRequest($request, $routingKey); if (true == $closeConnectionAfterCall) { $this->connector->closeConnection(); } return $this->rpcResponse->getPayload(); }