public void Execute_WhenInputMessageContainsValidData_ShouldUpdateItem()
        {
            //---------------Arrange-------------------
            var itemModel   = CreateValidUpdateMessage("Updated task");
            var testContext = new UpdateTodoItemUseCaseTestDataBuilder().Build();
            var usecase     = testContext.UseCase;
            var presenter   = new ResultFreePropertyPresenter <ErrorOutputMessage>();

            //---------------Act-------------------
            usecase.Execute(itemModel, presenter);
            //---------------Assert-------------------
            Assert.IsFalse(presenter.IsErrorResponse());
            testContext.Repository.Received(1).Update(Arg.Is <UpdateTodoInput>(x => x.Id == itemModel.Id));
            testContext.Repository.Received(1).Persist();
        }
        public void Execute_WhenEmptyOrWhitespaceItemDescription_ShouldReturnErrorMessage(string itemDescription)
        {
            //---------------Arrange-------------------
            var expected    = "ItemDescription cannot be null or empty";
            var itemModel   = CreateValidUpdateMessage(itemDescription);
            var testContext = new UpdateTodoItemUseCaseTestDataBuilder().Build();
            var usecase     = testContext.UseCase;
            var presenter   = new ResultFreePropertyPresenter <ErrorOutputMessage>();

            //---------------Act-------------------
            usecase.Execute(itemModel, presenter);
            //---------------Assert-------------------
            Assert.IsTrue(presenter.ErrorContent.HasErrors);
            Assert.AreEqual(expected, presenter.ErrorContent.Errors.First());
        }
        public void Execute_WhenIdDoesNotExist_ShouldReturnErrorMessage()
        {
            //---------------Arrange-------------------
            var id          = Guid.NewGuid();
            var expected    = $"Could not locate item with id [{id}]";
            var presenter   = new ResultFreePropertyPresenter <ErrorOutputMessage>();
            var testContext = new DeleteTodoItemUseCaseTestDataBuilder().WithDeleteResult(false).Build();
            var usecase     = testContext.UseCase;
            var message     = new DeleteTodoInput {
                Id = id
            };

            //---------------Act-------------------
            usecase.Execute(message, presenter);
            //---------------Assert-------------------
            Assert.AreEqual(expected, presenter.ErrorContent.Errors[0]);
        }
        public void Execute_WhenIdExist_ShouldReturnEmptyResponse()
        {
            //---------------Arrange-------------------
            var id          = Guid.NewGuid();
            var presenter   = new ResultFreePropertyPresenter <ErrorOutputMessage>();
            var testContext = new DeleteTodoItemUseCaseTestDataBuilder().WithDeleteResult(true).Build();
            var usecase     = testContext.UseCase;

            var message = new DeleteTodoInput {
                Id = id
            };

            //---------------Act-------------------
            usecase.Execute(message, presenter);
            //---------------Assert-------------------
            Assert.IsFalse(presenter.IsErrorResponse());
            testContext.Repository.Received(1).Persist();
        }
Esempio n. 5
0
        private ResultFreePropertyPresenter <ErrorOutputMessage> CreatePropertyPresenter()
        {
            var presenter = new ResultFreePropertyPresenter <ErrorOutputMessage>();

            return(presenter);
        }