Ejemplo n.º 1
0
        public void TestGetCurrentUserSecondTime()
        {
            HttpResponseMessage           testResponse   = this.GenerateSussessfulresponseMessage();
            FullUserData                  testUserObject = this.GenerateTestUser();
            ClientResponse <FullUserData> mockResponse   = new ClientResponse <FullUserData>()
            {
                Message      = MessagesHelper.StandartSuccessMessage,
                Status       = OperationStatus.Susseess,
                ResponseData = testUserObject
            };

            var mock = new Mock <IRequestSender>();

            mock.Setup(sender => sender.SendGetRequestToGitHubApiAsync($"/{UrlConstants.CurrentUserUrlPart}"))
            .ReturnsAsync(testResponse);
            mock.Setup(sender =>
                       sender.ProcessHttpResponse <FullUserData>(testResponse, MessagesHelper.StandartNotFoundMessage))
            .ReturnsAsync(mockResponse);
            UserService userService = new UserService(mock.Object);
            ClientResponse <FullUserData> testClientResponseFirst  = userService.GetCurrentUser().GetAwaiter().GetResult();
            ClientResponse <FullUserData> testClientResponseSecond = userService.GetCurrentUser().GetAwaiter().GetResult();

            Assert.Equal(testClientResponseFirst.ResponseData, testClientResponseSecond.ResponseData);
            Assert.Equal(MessagesHelper.DataAlreadyLoadedMessage, testClientResponseSecond.Message);
            mock.Verify(sender => sender.ProcessHttpResponse <FullUserData>(testResponse, MessagesHelper.StandartNotFoundMessage), Times.Once);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Generates sussessfui http response.
        /// </summary>
        /// <returns>Http response with status Ok.</returns>
        private HttpResponseMessage GenerateSussessfulresponseMessage()
        {
            FullUserData testUser   = this.GenerateTestUser();
            string       jsonString = this.GenerateUserJson(testUser);
            var          respMsg    = new HttpResponseMessage(HttpStatusCode.OK);

            respMsg.Content = new StringContent(jsonString);
            return(respMsg);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Generates test user object.
        /// </summary>
        /// <returns>Test user object.</returns>
        private FullUserData GenerateTestUser()
        {
            var testUser = new FullUserData()
            {
                Login            = UserServiceTest.TestUserLogin,
                Name             = "test name",
                CreatedAt        = DateTime.Now,
                Email            = "testMail",
                Company          = "no",
                FolloversCount   = 1,
                FollowingCount   = 2,
                Location         = "russia",
                PublicReposCount = 4,
                URL       = "url",
                UpdatedAt = DateTime.Today
            };

            return(testUser);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Gets user who is owner of access token.
        /// </summary>
        /// <returns>ClientResponse instance with full data of current user.</returns>
        public async Task <ClientResponse <FullUserData> > GetCurrentUser()
        {
            if (this.currentUser != null)
            {
                var clientResponse = new ClientResponse <FullUserData>()
                {
                    Message      = MessagesHelper.DataAlreadyLoadedMessage,
                    ResponseData = this.currentUser,
                    Status       = OperationStatus.Susseess
                };
                return(clientResponse);
            }
            else
            {
                var url = $"/{UrlConstants.CurrentUserUrlPart}";
                HttpResponseMessage httpresponse = await this.requestSender.SendGetRequestToGitHubApiAsync(url);

                ClientResponse <FullUserData> clientResponse = await this.requestSender.ProcessHttpResponse <FullUserData>(httpresponse, MessagesHelper.StandartNotFoundMessage);

                this.currentUser = clientResponse.ResponseData;
                return(clientResponse);
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Generates json string of user object.
 /// </summary>
 /// <param name="userObj">The user object.</param>
 /// <returns>Json string.</returns>
 private string GenerateUserJson(FullUserData userObj)
 {
     return(JsonConvert.SerializeObject(userObj));
 }