public IEnumerator TestMockRequestCoro()
        {
            string test             = "test";
            var    request          = new MockRequest(test);
            var    expectedResponse = new BooleanResponse(true);

            _jsonRpcClient.ExpectRequestWithId(request.Id, expectedResponse);
            _jsonRpcClient.ExpectRequestWithMethod(new Requests.System.BulkRequest().Method, new BooleanResponse(true)); // Authorization context

            yield return(CoroutineManager.StartCoroutine(_rDataClient.Send <MockRequest, BooleanResponse>(request)));

            Assert.AreEqual(request.Response.Result, expectedResponse.Result, "Request results don't match");
        }
        private IEnumerator SendAuthorizationRequest(string accessToken, int gameVersion, string[] selectedGroups = null)
        {
            if (!_rDataClient.IsAvailable)
            {
                // If we made it this far, there is probably no reason for data collection not to authorize us when the connection is available again.
                // Pretend that we will be to start collecting data that will be sent once we reconnect to the server
                Authorized = true;
                LastError  = new RDataServerNotAvailableException("Data collection server is not available");
                yield break;
            }

            var request = new RData.Authentication.JsonRpcRequests.JwtAuthorizationRequest(accessToken, gameVersion, selectedGroups);

            yield return(CoroutineManager.StartCoroutine(_rDataClient.Send <RData.Authentication.JsonRpcRequests.JwtAuthorizationRequest, BooleanResponse>(request)));

            if (request.Response.HasError)
            {
                LastError = new RDataAuthorizationException(request.Response.Error);
                yield break;
            }
            else
            {
                Authorized = request.Response.Result;
            }
        }
        private IEnumerator SendAuthorizationRequest(string userId, int gameVersion)
        {
            var request = new Requests.User.AuthorizationRequest(userId, gameVersion);

            yield return(CoroutineManager.StartCoroutine(_client.Send <Requests.User.AuthorizationRequest, BooleanResponse>(request)));

            if (request.Response.HasError)
            {
                LastError = new RDataException(request.Response.Error);
            }
            else
            {
                Authorized = request.Response.Result;
                UserId     = userId;
            }
        }