public async Task Delete_RootCommentIsDeletedAndDoesntContainActiveSubcomments_ReturnsNumberOfUpdatedObjects()
        {
            var bookChildCommentServiceMock = new BookChildCommentServiceProxy(
                _childRepository.Object,
                _rootRepository.Object,
                _mapper.Object);
            UpdateResult updateResult = new UpdateResult.Acknowledged(1, 1, 1);

            _childRepository.Setup(m => m.PullAsync(
                                       It.IsAny <string>(),
                                       It.IsAny <string>(),
                                       It.IsAny <IEnumerable <(string, string)> >(),
                                       It.IsAny <string>()))
            .ReturnsAsync(updateResult);

            _rootRepository.Setup(m => m.GetById(It.IsAny <string>()))
            .ReturnsAsync(new RootDto()
            {
                IsDeleted = true, Comments = new List <ChildDto>()
            });

            var result = await bookChildCommentServiceMock.DeleteProxy(
                new List <string> {
                "5e9c9ee859231a63bc853bf1", "5e9c9ee859231a63bc853bf2", "5e9c9ee859231a63bc853bf3"
            },
                "5e9c9ee859231a63bc853bf0",
                "5e9c9ee859231a63bc853bf1");

            _rootRepository.Verify(m => m.Remove(It.IsAny <string>()), Times.Once());
            result.Should().Be((int)updateResult.ModifiedCount);
        }
        public async Task SetAsDeleted_ReturnsNumberOfUpdatedObjects()
        {
            var bookChildCommentServiceMock = new BookChildCommentServiceProxy(
                _childRepository.Object,
                _rootRepository.Object,
                _mapper.Object);

            UpdateResult updateResult = new UpdateResult.Acknowledged(1, 1, 1);

            _childRepository.Setup(m => m.SetAsync(
                                       It.IsAny <string>(),
                                       It.IsAny <BookChildComment>(),
                                       It.IsAny <IEnumerable <(string, string)> >()))
            .ReturnsAsync(updateResult);

            var result = await bookChildCommentServiceMock.SetAsDeletedProxy(
                new List <string> {
                "5e9c9ee859231a63bc853bf1", "5e9c9ee859231a63bc853bf2"
            },
                new ChildDto()
            {
                Comments = new List <ChildDto>()
                {
                    new ChildDto()
                    {
                        Id = "5e9c9ee859231a63bc85dt2w"
                    }
                }
            },
                "5e9c9ee859231a63bc853bf0");

            result.Should().Be((int)updateResult.ModifiedCount);
        }
 public void Setup()
 {
     _childRepository              = new Mock <IChildRepository <BookRootComment, BookChildComment> >();
     _rootRepository               = new Mock <IBookRootCommentService>();
     _mapper                       = new Mock <IMapper>();
     _bookChildCommentService      = new BookChildCommentService(_childRepository.Object, _rootRepository.Object, _mapper.Object);
     _bookChildCommentServiceProxy = new BookChildCommentServiceProxy(
         _childRepository.Object,
         _rootRepository.Object,
         _mapper.Object
         );
 }