public async Task CheckSendingMessageSenderAdminAsync() { ApplicationDbContext db = GetDb(); var chatGroupRepository = new EfDeletableEntityRepository <ChatGroup>(db); var repository = new EfDeletableEntityRepository <ChatMessage>(db); var userChatGroupsRepository = new EfDeletableEntityRepository <UserChatGroup>(db); var service = new ChatsService( repository, chatGroupRepository, userChatGroupsRepository); var currentSender = new ApplicationUser() { Id = "20", UserName = "******", }; var currentReceiver = new ApplicationUser() { Id = "21", UserName = "******", }; await service.CreateUsersGroupAsync(this.sender, this.receiver, "chat name"); var groupId = await service.GetGroupIdAsync("chat name"); var chatMessage = new ChatMessage() { Id = Guid.NewGuid().ToString(), Receiver = currentReceiver, Sender = currentSender, ChatGroupId = groupId, }; await repository.AddAsync(chatMessage); await repository.SaveChangesAsync(); await service.CreateUsersGroupAsync(currentSender, currentReceiver, "chat name"); await service.SendMessageAsync("message content", currentReceiver, currentSender, "chat name"); var message = await repository.All().FirstOrDefaultAsync(); Assert.NotNull(repository); Assert.True(!message.WaitingForAnswerFromAdmin); }
public async Task CheckSendingMessageSenderClientAsync() { ApplicationDbContext db = GetDb(); var chatGroupRepository = new EfDeletableEntityRepository <ChatGroup>(db); var repository = new EfDeletableEntityRepository <ChatMessage>(db); var userChatGroupsRepository = new EfDeletableEntityRepository <UserChatGroup>(db); var service = new ChatsService( repository, chatGroupRepository, userChatGroupsRepository); var currentSender = new ApplicationUser() { Id = "20", UserName = "******", }; var currentReceiver = new ApplicationUser() { Id = "21", UserName = "******", }; await service.CreateUsersGroupAsync(currentSender, currentReceiver, "chat name"); await service.SendMessageAsync("message content", currentSender, currentReceiver, "chat name"); var message = await repository.All().FirstOrDefaultAsync(); Assert.NotNull(repository); Assert.True(message.WaitingForAnswerFromAdmin); }
public async Task CheckIfThereAreNewMessageAsync() { ApplicationDbContext db = GetDb(); var chatGroupRepository = new EfDeletableEntityRepository <ChatGroup>(db); var repository = new EfDeletableEntityRepository <ChatMessage>(db); var userChatGroupsRepository = new EfDeletableEntityRepository <UserChatGroup>(db); var service = new ChatsService( repository, chatGroupRepository, userChatGroupsRepository); await service.CreateUsersGroupAsync(this.sender, this.receiver, "chat name"); var groupId = await service.GetGroupIdAsync("chat name"); var firstChatMessage = new ChatMessage() { Id = Guid.NewGuid().ToString(), Receiver = this.receiver, Sender = this.sender, ChatGroupId = groupId, }; await repository.AddAsync(firstChatMessage); await repository.SaveChangesAsync(); var isMessage = await service.IsNewMessageAsync(); Assert.True(isMessage); }
public async Task CheckGettingTheReceiverAsync() { ApplicationDbContext db = GetDb(); var userChatGroupsRepository = new EfDeletableEntityRepository <UserChatGroup>(db); var chatGroupsRepository = new EfDeletableEntityRepository <ChatGroup>(db); var service = new ChatsService( this.chatMessagesRepository.Object, chatGroupsRepository, userChatGroupsRepository); var currentSender = new ApplicationUser() { Id = "20", UserName = "******", }; var currentReceiver = new ApplicationUser() { Id = "21", UserName = "******", }; await service.CreateUsersGroupAsync(currentSender, currentReceiver, "chat name"); var groupId = await service.GetGroupIdAsync("chat name"); var firstReceiverId = await service.GetReceiverAsync(groupId, currentSender.UserName); var secondReceiverId = await service.GetReceiverAsync(groupId, currentReceiver.UserName); Assert.Equal(currentReceiver.Id, firstReceiverId); Assert.Equal(currentSender.Id, secondReceiverId); }
public async Task CheckCreatingUsersGroupAsync() { ApplicationDbContext db = GetDb(); var repository = new EfDeletableEntityRepository <ChatMessage>(db); var chatGroupRepository = new EfDeletableEntityRepository <ChatGroup>(db); var userChatGroupsRepository = new EfDeletableEntityRepository <UserChatGroup>(db); var service = new ChatsService( repository, chatGroupRepository, userChatGroupsRepository); var firstChatGroupId = await service.CreateUsersGroupAsync(this.sender, this.receiver, "chat name"); var secondChatGroupId = await service.CreateUsersGroupAsync(this.sender, this.receiver, "chat name"); Assert.NotNull(firstChatGroupId); Assert.NotNull(secondChatGroupId); Assert.EndsWith(firstChatGroupId, secondChatGroupId); }
public async Task CheckGettingWaitingForAnswerMessagesAsync() { ApplicationDbContext db = GetDb(); var chatGroupRepository = new EfDeletableEntityRepository <ChatGroup>(db); var repository = new EfDeletableEntityRepository <ChatMessage>(db); var userChatGroupsRepository = new EfDeletableEntityRepository <UserChatGroup>(db); var service = new ChatsService( repository, chatGroupRepository, userChatGroupsRepository); await service.CreateUsersGroupAsync(this.sender, this.receiver, "chat name"); var groupId = await service.GetGroupIdAsync("chat name"); var firstChatMessage = new ChatMessage() { Id = Guid.NewGuid().ToString(), Receiver = this.receiver, Sender = this.sender, ChatGroupId = groupId, WaitingForAnswerFromAdmin = false, }; var secondChatMessage = new ChatMessage() { Id = Guid.NewGuid().ToString(), Receiver = this.receiver, Sender = this.sender, ChatGroupId = groupId, }; await repository.AddAsync(firstChatMessage); await repository.AddAsync(secondChatMessage); await repository.SaveChangesAsync(); var messages = await service.GetWaitingForAnswerClientNamesAsync <TestChatModel>(); Assert.Single(messages); }
public async Task CheckGettingGroupsOldMessagesAsync() { ApplicationDbContext db = GetDb(); var chatGroupRepository = new EfDeletableEntityRepository <ChatGroup>(db); var repository = new EfDeletableEntityRepository <ChatMessage>(db); var userChatGroupsRepository = new EfDeletableEntityRepository <UserChatGroup>(db); var service = new ChatsService( repository, chatGroupRepository, userChatGroupsRepository); await service.CreateUsersGroupAsync(this.sender, this.receiver, "chat name"); var groupId = await service.GetGroupIdAsync("chat name"); var firstChatMessage = new ChatMessage() { Id = Guid.NewGuid().ToString(), Receiver = this.receiver, Sender = this.sender, ChatGroupId = groupId, }; var secondChatMessage = new ChatMessage() { Id = Guid.NewGuid().ToString(), Receiver = this.receiver, Sender = this.sender, ChatGroupId = groupId, }; await repository.AddAsync(firstChatMessage); await repository.AddAsync(secondChatMessage); await repository.SaveChangesAsync(); var messages = await service.GetOldMessagesAsync <TestChatModel>(groupId); Assert.Equal(2, messages.Count()); }
public async Task CheckGettingGroupIdAsync() { ApplicationDbContext db = GetDb(); var chatGroupRepository = new EfDeletableEntityRepository <ChatGroup>(db); var service = new ChatsService( this.chatMessagesRepository.Object, chatGroupRepository, this.userChatGroupsRepository.Object); var firstGroupId = await service.GetGroupIdAsync("chat name"); await service.CreateUsersGroupAsync(this.sender, this.receiver, "chat name"); var secondGroupId = await service.GetGroupIdAsync("chat name"); Assert.Null(firstGroupId); Assert.NotNull(secondGroupId); }