public void TestRemove() { var camId = 1; var isUserValid = true; var camUser = new User { PrincipalId = camId, }; var user = new SimpleUser { Id = Guid.NewGuid() }; var testService = new UserCacheService(cache.Object, expectedTimeToLive); Assert.AreEqual(0, testService.GetCount()); Assert.AreEqual(0, cacheDictionary.Count); var userCache = new UserCache(user, camUser, isUserValid, new List <IPermission>()); testService.Add(userCache); Assert.AreEqual(1, testService.GetCount()); Assert.AreEqual(1, cacheDictionary.Count); testService.Remove(user); Assert.AreEqual(0, testService.GetCount()); Assert.AreEqual(0, cacheDictionary.Count); }
public void Should_return_false_when_parameters_are_missing_or_invalid(string key) { // Given var userCacheService = new UserCacheService(); // When var success = userCacheService.Remove(key); // Then success.ShouldBe(false); }
public async Task AnswerInlineKeyboard(ITelegramBotClient client, User from, Message message, string answer, CancellationToken cancellationToken) { var tasks = new List <Task>(2); tasks.Add( client.EditMessageTextAsync(message.Chat.Id, message.MessageId, string.Format(L10n.strings.InlineQueryAnswerMessage, message.Text, answer), parseMode: ParseMode.Markdown, cancellationToken: cancellationToken) ); tasks.Add(_session.RemoveAsync(message.Chat.Id, cancellationToken)); if (answer != L10n.strings.YesKeyword) { await Task.WhenAll(tasks); return; } tasks.Add( client.SendTextMessageAsync(message.Chat.Id, L10n.strings.StoppedBotMessage, cancellationToken: cancellationToken) ); var user = await _userRepository.GetByIdentifierAsync(from.Id, cancellationToken); if (user.Identifier != from.Id) { var authorizedUser = user.AuthorizedUsers.Single(x => x.Identifier == from.Id); user.AuthorizedUsers.Remove(authorizedUser); _userCache.AddOrUpdate(user); tasks.Add(_userRepository.RemoveAuthorizedUserAsync(user.Identifier, authorizedUser, cancellationToken)); } else { _userCache.Remove(user.Identifier); tasks.Add(_userRepository.DeleteAsync(user.Identifier, cancellationToken)); tasks.Add(_packagesRepository.DeleteByUsernameAsync(user.Username, cancellationToken)); if (user.AuthorizedUsers?.Any() == true) { tasks.Add( client.SendTextMessageAsync(message.Chat.Id, L10n.strings.StoppedBotFollowUpMessage, cancellationToken: cancellationToken) ); } foreach (var authorizedUser in user.AuthorizedUsers) { tasks.Add( client.SendTextMessageAsync( authorizedUser.ChatIdentifier, string.Format(L10n.strings.StoppedBotAuthorizedUsersMessage, user.Username), cancellationToken: cancellationToken ) ); } } await Task.WhenAll(tasks); }
/// <summary> /// Logs out the current authenticated user. /// </summary> /// <remarks>Handles cookie authentication, and also user cache memory.</remarks> public async Task LogoutAsync() { // Removes the user from cache: int?userId = _httpContextAccessor.HttpContext.User.Identity.GetId(); if (userId.HasValue) { _userCache.Remove(userId.Value); } await _httpContextAccessor.HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); }
public void TestRemove_NoUsers() { var testService = new UserCacheService(cache.Object, expectedTimeToLive); Assert.AreEqual(0, testService.GetCount()); Assert.AreEqual(0, cacheDictionary.Count); testService.Remove(new SimpleUser { Id = Guid.NewGuid() }); Assert.AreEqual(0, testService.GetCount()); Assert.AreEqual(0, cacheDictionary.Count); }
public void Should_return_success_is_true_when_removing_known_key() { // Given var user = new User() { Id = MakeFake.Guid }; var userCacheService = new UserCacheService(); var key = userCacheService.Add(user); // When var success = userCacheService.Remove(key); // Then success.ShouldBe(true); }
public void Should_return_success_is_false_when_key_is_unknown() { // Given var user = new User() { Id = MakeFake.Guid }; var unknownKey = MakeFake.Guid; var userCacheService = new UserCacheService(); var key = userCacheService.Add(user); // When var success = userCacheService.Remove(unknownKey); // Then success.ShouldBe(false); }
public void Should_return_null_user_after_user_is_removed() { // Given var userId = MakeFake.Guid; var userCacheService = new UserCacheService(); var key = userCacheService.Add(new User() { Id = userId }); // When userCacheService.Remove(key); var user = userCacheService.GetUser(key); // Then user.ShouldBe(null); }
/// <summary> /// Deletes the specified user. /// </summary> /// <param name="userId">The id of the user to delete.</param> /// <returns>Returns true if the delete has succeeded, otherwise false.</returns> public async Task <bool> DeleteUser(int userId) { User user = await this.GetByIdAsync(userId); if (user.ClientCartId.HasValue) { ClientCart cart = await _dbContext.ClientCarts.FindAsync(user.ClientCartId.Value); _dbContext.ClientCarts.Remove(cart); } if (user.Address != null) { _dbContext.Addresses.Remove(user.Address); } _dbContext.Users.Remove(user); await _dbContext.SaveChangesAsync(); _userCache.Remove(user.Id); return(true); }
public void TestRemove_MultipleUsers() { var camId1 = 1; var camId2 = 2; var isCamUser1Valid = true; var isCamUser2Valid = true; var camUser1 = new User { PrincipalId = camId1, }; var camUser2 = new User { PrincipalId = camId2, }; var user1 = new SimpleUser { Id = Guid.NewGuid() }; var user2 = new SimpleUser { Id = Guid.NewGuid() }; var testService = new UserCacheService(cache.Object, expectedTimeToLive); Assert.AreEqual(0, testService.GetCount()); Assert.AreEqual(0, cacheDictionary.Count); var userCache1 = new UserCache(user1, camUser1, isCamUser1Valid, new List <IPermission>()); var userCache2 = new UserCache(user2, camUser2, isCamUser2Valid, new List <IPermission>()); testService.Add(userCache1); testService.Add(userCache2); Assert.AreEqual(2, testService.GetCount()); Assert.AreEqual(2, cacheDictionary.Count); testService.Remove(user1); Assert.AreEqual(1, testService.GetCount()); Assert.AreEqual(1, cacheDictionary.Count); Assert.IsTrue(cacheDictionary.ContainsKey(testService.GetKey(user2))); Assert.AreEqual(1, testService.GetCount()); }