public async Task DeleteUserFromGroupAsyncTest_WhenGroupIdExistsAndUserIdInMembersDoesntExists_ReturnsGroupResponseModelWithOutUserIdInMemebers() { var groupMockRepository = new Mock <IGroupRepository>(); var mockThreadRepository = new Mock <IThreadRepository>(); var contactMockRepository = new Mock <IContactRepository>(); var mapper = GetMapperForGroupProfile(); var userId = _rnd.Next(111, 1000); var groupEntity = EntityModellers.CreateGroupEntity(); var expected = mapper.Map <GroupEntity, GroupResponseModel>(groupEntity); var usersToRemove = new List <int> { userId }; groupMockRepository.Setup(x => x.GetAsync(groupEntity.Id)).ReturnsAsync(groupEntity); groupMockRepository.Setup(x => x.RemoveUsersAsync(groupEntity.Id, It.Is <IList <int> >(y => true))).ReturnsAsync(groupEntity); var groupManager = new GroupManager(groupMockRepository.Object, mockThreadRepository.Object, mapper, contactMockRepository.Object); var actual = await groupManager.DeleteUsersFromGroupAsync(groupEntity.Id, usersToRemove); Assert.Equal(expected, actual, new LogicEqualityComparer <GroupResponseModel>()); Assert.DoesNotContain(userId, actual.Members); groupMockRepository.Verify(x => x.RemoveUsersAsync(groupEntity.Id, usersToRemove), Times.Never); groupMockRepository.VerifyAll(); }
public async Task DeleteUserFromGroupAsyncTest_WhenGroupIdDoesntExists_ThrowsInvalidRequestException() { var groupMockRepository = new Mock <IGroupRepository>(); var mockThreadRepository = new Mock <IThreadRepository>(); var contactMockRepository = new Mock <IContactRepository>(); var mapper = GetMapperForGroupProfile(); var groupEntity = EntityModellers.CreateGroupEntity(); groupMockRepository.Setup(x => x.GetAsync(groupEntity.Id)).ReturnsAsync((GroupEntity)null); var groupManager = new GroupManager(groupMockRepository.Object, mockThreadRepository.Object, mapper, contactMockRepository.Object); var exception = await Assert.ThrowsAsync <InvalidRequestException>(() => groupManager.DeleteUsersFromGroupAsync(groupEntity.Id, new List <int> { _rnd.Next(111, 1000) })); Assert.IsType <InvalidRequestException>(exception); Assert.StartsWith(ErrorConstants.InvalidInputMessage, exception.Message); groupMockRepository.VerifyAll(); }