public void Execute_WhenNullTodoFilterInput_ShouldReturnEmptyCollection()
        {
            //---------------Arrange-------------------
            var expected    = "Null filter object";
            var testContext = new FetchFilteredTodoUseCaseTestDataBuilder().Build();
            var usecase     = testContext.UseCase;
            var presenter   = new PropertyPresenter <List <TodoTo>, ErrorOutputMessage>();

            //---------------Act-------------------
            usecase.Execute(null, presenter);
            //---------------Assert-------------------
            Assert.IsTrue(presenter.ErrorContent.HasErrors);
            Assert.AreEqual(expected, presenter.ErrorContent.Errors[0]);
        }
        public void Execute_WhenFilteringIncludedCompletedFalse_ShouldReturnCollectionOfUncompletedItems()
        {
            //---------------Arrange-------------------
            var input = new TodoFilterInput {
                IncludedCompleted = false
            };
            var itemModels  = CreateTodoItems(10);
            var expected    = itemModels.Where(x => x.IsCompleted == false).ToList();
            var testContext = new FetchFilteredTodoUseCaseTestDataBuilder().WithItems(itemModels).Build();
            var usecase     = testContext.UseCase;
            var presenter   = new PropertyPresenter <List <TodoTo>, ErrorOutputMessage>();

            //---------------Act-------------------
            usecase.Execute(input, presenter);
            //---------------Assert-------------------
            AssertTodoItemsMatchExpected(expected, presenter.SuccessContent);
        }