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);
        }