Exemplo n.º 1
0
        public async Task Auth_Should_Not_Add_The_User_To_The_CurrentlyLoggedInUsersSingleton_If_Grant_Type_Is_refresh_token()
        {
            this.tokenServiceMock = new Mock <ITokenService>();
            this.tokenServiceMock.Setup(m => m.ReplaceUserRefreshToken(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Task.FromResult(new Token()
            {
                UserId = "user-id", Value = "token-value"
            }));

            this.Arrange_Configuration();

            this.configurationMock = new Mock <IConfiguration>();
            this.tokenController   = new TokenController(this.tokenServiceMock.Object, this.configuration);

            var model = this.CreateTokenRequestModelWithPasswordGrantType();

            model.grant_type = "refresh_token";

            IActionResult result = await this.tokenController.Auth(model);

            int keysCount = CurrentlyLoggedInUsersSingleton.GetAllUsernames().Count();

            this.Annihilate();

            Assert.Equal(0, keysCount);
        }
        public async Task <IActionResult> GetUsers()
        {
            var currentUser = await this.authManager.GetUserAsync(HttpContext.User);

            var allUsers = CurrentlyLoggedInUsersSingleton.GetAllUsernames()
                           .Where(v => string.Equals(v, currentUser.UserName, StringComparison.OrdinalIgnoreCase) == false)
                           .ToList();

            return(Json(allUsers, jsonSettings));
        }
        public async Task GetUsers_Should_Return_JsonResult()
        {
            this.Arrange();

            CurrentlyLoggedInUsersSingleton.AddNewEntry("user", "user-id");
            CurrentlyLoggedInUsersSingleton.AddNewEntry("second-user", "second-user-id");

            var result = await this.userController.GetUsers();

            this.Annihilate();

            Assert.IsType <JsonResult>(result);
        }
Exemplo n.º 4
0
        private void Annihilate()
        {
            this.tokenServiceMock  = null;
            this.configurationMock = null;
            this.configuration     = null;
            this.tokenServiceMock  = null;

            var allUsernames = CurrentlyLoggedInUsersSingleton.GetAllUsernames();

            foreach (var username in allUsernames)
            {
                CurrentlyLoggedInUsersSingleton.RemoveEntryByKey(username);
            }
        }
        private async Task <IActionResult> GetToken(TokenRequestViewModel model)
        {
            try
            {
                Token refreshToken = await this.tokenService.CreateUserRefreshToken(model.username, model.password, model.client_id);

                CurrentlyLoggedInUsersSingleton.AddNewEntry(model.username, refreshToken.UserId);

                TokenResponseViewModel tokenResponse = this.CreateAccessToken(refreshToken.UserId, refreshToken.Value, model.username);

                return(Json(tokenResponse));
            }
            catch (VideoChatWebAppMainException e) when(e is UserNotFoundException || e is UserPasswordMissmatchException)
            {
                return(new UnauthorizedResult());
            }
        }
        public async Task GetUsers_Should_Return_All_Users_Except_The_Current_User()
        {
            this.Arrange();

            CurrentlyLoggedInUsersSingleton.AddNewEntry("username", "user-id");
            CurrentlyLoggedInUsersSingleton.AddNewEntry("second-user", "second-user-id");

            var actionResult = await this.userController.GetUsers();

            this.Annihilate();

            JsonResult result = actionResult as JsonResult;

            List <string> usernames = result.Value as List <string>;

            Assert.Single(usernames);
            Assert.Equal("second-user", usernames.ElementAt(0));
        }