private DestinationService SetupGetDetailsSut() { var usersRepoBuilder = new GoUserRepositoryBuilder(); var usersRepo = usersRepoBuilder .WithAll() .Build(); var commentsRepoBuilder = new CommentsRepositoryBuilder(); var commentsRepo = commentsRepoBuilder .WithAll() .Build(); var storiesRepoBuilder = new StoriesRepositoryBuilder(); var storiesRepo = storiesRepoBuilder .WithAll() .Build(); var peopleStoriesRepoBuilder = new PeopleStoriesRepositoryBuilder(); var peopleStoriesRepo = peopleStoriesRepoBuilder .WithAll() .Build(); var destUsersRepoBuilder = new DestinationsUsersRepositoryBuilder(); var destUserRepo = destUsersRepoBuilder .WithAll() .Build(); var destRepoBuilder = new DestinationsRepositoryBuilder(); var destRepo = destRepoBuilder .WithAll() .Build(); return(new DestinationService(destRepo, destUserRepo, peopleStoriesRepo, commentsRepo, storiesRepo, usersRepo, null, Mapper)); }
public async Task DeletComments_ShouldDeleteDestinationCommentsCorrectly() { List <Comment> deletedComments = new List <Comment>(); var commentsRepoBuilder = new CommentsRepositoryBuilder(); commentsRepoBuilder.CommentsRepoMock.Setup(r => r.Delete(It.IsAny <Comment>())) .Callback <Comment>(c => deletedComments.Add(c)); var commentsRepo = commentsRepoBuilder .WithAll() .Build(); var sut = new DestinationService(null, null, null, commentsRepo, null, null, null, Mapper); await sut.DeleteComments("2"); Assert.Equal(3, deletedComments.Count); deletedComments.ForEach(c => Assert.Equal("2", c.DestinationId)); commentsRepoBuilder.CommentsRepoMock.Verify(c => c.Delete(It.IsAny <Comment>()), Times.Exactly(3)); commentsRepoBuilder.CommentsRepoMock.Verify(c => c.SaveChangesAsync(), Times.Once); }