public void Given_User_Does_Not_Exist_Return_New_User_Id()
        {
            _subjectUnderTest.GetUserId(new GetUserIdRequest {
            });
            var userIdRequest  = new GetUserIdRequest {
            };
            var userIdResponse = _subjectUnderTest.GetUserId(userIdRequest);
            var userId         = userIdResponse.Result.UserId;

            var expectedUserId = "1";
            var expectedUsers  = new List <string> {
                "0", "1"
            };

            userId.Should().Be(expectedUserId);
            _users.Should().Equal(expectedUsers);
        }
        /// <summary>
        /// If user does not exist, add user Id to list of users and return added user Id.
        /// Otherwise, return existing user Id.
        /// </summary>
        public Task <GetUserIdResponse> GetUserId(GetUserIdRequest request)
        {
            // TODO: Remove user ID from list of users once user's connection is gone.

            // Return same user ID if user calls this method more than once
            var userExists = _users.Contains(request.UserId);

            if (userExists)
            {
                return(Task.FromResult(new GetUserIdResponse {
                    UserId = request.UserId
                }));
            }

            _users.Add(Convert.ToString(_users.Count));
            return(Task.FromResult(new GetUserIdResponse {
                UserId = _users[_users.Count - 1]
            }));
        }
示例#3
0
 protected abstract Task <GetUserIdResponse> GetUserId(GetUserIdRequest request);
示例#4
0
 public override Task <GetUserIdResponse> GetUserId(GetUserIdRequest request, ServerCallContext context)
 {
     return(new UserRequestHandler(_users).GetUserId(request));
 }