public Expense Convert(CreateExpenseCommand source, Expense destination, ResolutionContext context)
        {
            var builder = new ExpenseBuilder()
                          .WithCategory(source.Category)
                          .WithDescription(source.Description)
                          .WithValue(source.Value);

            return(builder.Build());
        }
        public void Expense_MustCreateExpense()
        {
            var expenseBuilder = new ExpenseBuilder()
                                 .WithCategory("teste")
                                 .WithDescription("teste")
                                 .WithValue(0.01M);

            var expense = expenseBuilder.Build();

            Assert.True(expense.Valid);
        }
        public void Expense_MustContainErrorsWhenTheCategoryExceedCharacterLimit()
        {
            var expenseBuilder = new ExpenseBuilder()
                                 .WithCategory("testecommaisde128caracterestestecommaisde128caracterestestecommaisde128caracterestestecommaisde128caracterestestecommaisde128cara")
                                 .WithDescription("teste")
                                 .WithValue(0.01M);

            var expense = expenseBuilder.Build();

            Assert.True(expense.InValid);
        }
        public void Expense_MustContainErrorsWhenTheValueIsEqualToZero()
        {
            var expenseBuilder = new ExpenseBuilder()
                                 .WithCategory("teste")
                                 .WithDescription("teste")
                                 .WithValue(0.00M);

            var expense = expenseBuilder.Build();

            Assert.True(expense.InValid);
        }
        public void Expense_MustContainErrorsWhenTheDescriptionIsNull()
        {
            var expenseBuilder = new ExpenseBuilder()
                                 .WithCategory("teste")
                                 .WithDescription(null)
                                 .WithValue(0.01M);

            var expense = expenseBuilder.Build();

            Assert.True(expense.InValid);
        }