/** * Shared code between large unary test and auth test. * * @param $stub Stub object that has service methods * @param $fillUsername boolean whether to fill result with username * @param $fillOauthScope boolean whether to fill result with oauth scope */ function performLargeUnary($stub, $fillUsername = false, $fillOauthScope = false, $callback = false) { $request_len = 271828; $response_len = 314159; $request = new grpc\testing\SimpleRequest(); $request->setResponseType(grpc\testing\PayloadType::COMPRESSABLE); $request->setResponseSize($response_len); $payload = new grpc\testing\Payload(); $payload->setType(grpc\testing\PayloadType::COMPRESSABLE); $payload->setBody(str_repeat("", $request_len)); $request->setPayload($payload); $request->setFillUsername($fillUsername); $request->setFillOauthScope($fillOauthScope); $options = false; if ($callback) { $options['call_credentials_callback'] = $callback; } list($result, $status) = $stub->UnaryCall($request, [], $options)->wait(); hardAssert($status->code === Grpc\STATUS_OK, 'Call did not complete successfully'); hardAssert($result !== null, 'Call returned a null response'); $payload = $result->getPayload(); hardAssert($payload->getType() === grpc\testing\PayloadType::COMPRESSABLE, 'Payload had the wrong type'); hardAssert(strlen($payload->getBody()) === $response_len, 'Payload had the wrong length'); hardAssert($payload->getBody() === str_repeat("", $response_len), 'Payload had the wrong content'); return $result; }