public async Task CreatePhotoCommentAsyncShouldWorkCorrectly() { var comments = new List <Comment>(); var photos = new List <Photo>(); var appUsers = new List <ApplicationUser>(); var mockCommentRepo = new Mock <IDeletableEntityRepository <Comment> >(); mockCommentRepo.Setup(x => x.All()).Returns(comments.AsQueryable()); mockCommentRepo.Setup(x => x.AddAsync(It.IsAny <Comment>())).Callback((Comment comm) => comments.Add(comm)); var mockPhoto = new Mock <IDeletableEntityRepository <Photo> >(); mockPhoto.Setup(x => x.All()).Returns(photos.AsQueryable()); mockPhoto.Setup(x => x.AddAsync(It.IsAny <Photo>())).Callback((Photo ph) => photos.Add(ph)); var mockAppUser = new Mock <IDeletableEntityRepository <ApplicationUser> >(); mockAppUser.Setup(x => x.All()).Returns(appUsers.AsQueryable()); mockAppUser.Setup(x => x.AddAsync(It.IsAny <ApplicationUser>())).Callback((ApplicationUser appU) => appUsers.Add(appU)); var service = new CommentsService(mockCommentRepo.Object, mockPhoto.Object, mockAppUser.Object); await service.CreatePhotoCommentAsync("1", "1", "Are you crazy?", "1"); var expectedResult = 1; Assert.Equal(expectedResult, comments.Count()); }