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); }
public void GetDetails_ShouldReturnCorrect_ListFromCommentViewModels_AllComments() { var user = new GoUser { Id = "1" }; var sut = SetupGetDetailsSut(); var actual = sut.GetDetails("2", user); var expected = new DestDetailsViewModel { Id = "2", Description = "aaa", Creator = "Niki", Image = new byte[0], Stories = new List <StoryViewModel>(), CurrentUser = Mapper.Map <CurrentUserViewModel>(user), AllComments = CommentsRepositoryBuilder.CreateComments().Where(x => x.DestinationId == "2").Select(x => Mapper.Map <CommentViewModel>(x)).ToList() }; Assert.Equal(expected.AllComments, actual.AllComments, new CommentsViewModelComparer()); }