public void Execute_WhenTodoItemIdNotFound_ShouldReturnError()
        {
            //---------------Arrange-------------------
            var testContext = new CreateCommentUseCaseTestDataBuilder().WithTodoItemTo(null).Build();
            var usecase     = testContext.UseCase;
            var input       = new CreateCommentInput {
                TodoItemId = Guid.NewGuid(), Comment = "a comment"
            };
            var presenter = new PropertyPresenter <CreateCommentOutput, ErrorOutputMessage>();

            //---------------Act----------------------
            usecase.Execute(input, presenter);
            //---------------Assert-----------------------
            Assert.IsTrue(presenter.ErrorContent.HasErrors);
            Assert.AreEqual("Invalid item Id", presenter.ErrorContent.Errors[0]);
        }
        public void Execute_WhenValidTodoItemId_ShouldReturnSuccess()
        {
            //---------------Arrange-------------------
            var commentId = Guid.NewGuid();
            var itemId    = Guid.NewGuid();

            var testContext = new CreateCommentUseCaseTestDataBuilder().WithCommentId(commentId).Build();
            var usecase     = testContext.UseCase;
            var input       = new CreateCommentInput {
                TodoItemId = itemId, Comment = "a comment"
            };
            var presenter = new PropertyPresenter <CreateCommentOutput, ErrorOutputMessage>();

            //---------------Act----------------------
            usecase.Execute(input, presenter);
            //---------------Assert-----------------------
            Assert.AreEqual(commentId, presenter.SuccessContent.Id);
            testContext.Repository.Received(1).Persist();
        }