public async Task ReturnFalseWhenExceptionOccurs()
        {
            _mockToDoItemRepo
            .Setup(x => x.GetItemCountAsync(It.IsAny <ICacheableDataSpecification <ToDoItem> >()))
            .Throws(new Exception("Test exception"));

            var handler = new PaginatedToDoItemsQueryHandler(_mockToDoItemRepo.Object);
            var result  = await handler
                          .Handle(new PaginatedToDoItemsQuery(new AllToDoItems(), 9, 10), new CancellationToken())
                          .ConfigureAwait(false);

            result.Should().BeNull();
        }
        public async Task HandleMiddlePageResult()
        {
            _mockToDoItemRepo
            .Setup(x => x.GetItemCountAsync(It.IsAny <ICacheableDataSpecification <ToDoItem> >()))
            .ReturnsAsync(10);

            var handler = new PaginatedToDoItemsQueryHandler(_mockToDoItemRepo.Object);
            var result  = await handler
                          .Handle(new PaginatedToDoItemsQuery(new AllToDoItems(), 3, 10), new CancellationToken())
                          .ConfigureAwait(false);

            result.Should().NotBeNull();
            result.ToDoItems.Should().NotBeNullOrEmpty();
            result.HasPreviousPage.Should().BeTrue();
            result.HasNextPage.Should().BeTrue();
        }