public void shouldCheckExpenseCategoryExists() { ExpenseRepository repository = new ExpenseRepository(); var interaction = new AddExpenseInteraction<RAMRepository.ExpenseRepository>(new Interactions.RequestModels.AddExpense { Amount = ExpenseAmount, Category = ExpenseCategory}, repository); interaction.performAction(); var response = interaction.ResponseModel; Assert.IsTrue(response.Error.HasValue); Assert.AreEqual<Interactions.ResponseModels.Error.Codes>(response.Error.Value.Code, Interactions.ResponseModels.Error.Codes.CATEGORY_DOES_NOT_EXIST); }
public void shouldCheckExpenseAmountIsPositiveNumber() { ExpenseRepository repository = new ExpenseRepository(); var interaction = new AddExpenseInteraction<RAMRepository.ExpenseRepository>(new Interactions.RequestModels.AddExpense { Amount = -44.56, Category = ExpenseCategory}, repository); interaction.performAction(); var response = interaction.ResponseModel; Assert.IsTrue(response.Error.HasValue); Assert.AreEqual<Interactions.ResponseModels.Error.Codes>(response.Error.Value.Code, Interactions.ResponseModels.Error.Codes.EXPENSE_AMOUNT_MUST_BE_POSITIVE); }
public void shouldAddExpenseToSystemWithCurrentDate() { // Add category manully CategoryRepository categoryRepository = new CategoryRepository(); categoryRepository.Add(new Entities.Category { Name = ExpenseCategory }); ExpenseRepository repository = new ExpenseRepository(); var interaction = new AddExpenseInteraction<RAMRepository.ExpenseRepository>(new Interactions.RequestModels.AddExpense { Amount = ExpenseAmount, Category = ExpenseCategory}, repository); interaction.performAction(); var response = interaction.ResponseModel; Assert.IsFalse(response.Error.HasValue); Entities.Expense expense = repository.GetExpenseById(response.Id); Assert.IsNotNull(expense); Assert.AreEqual<DateTime>(expense.Date, DateTime.Today.Date); }
public ActionResult Create(FormCollection collection) { double amount = 0; bool amountIsNumber = double.TryParse(Request.Form["Amount"], out amount); if (amountIsNumber == false) { return RedirectToAction("Index", "Home").Error("Amount is not a number"); } var interaction = new AddExpenseInteraction(new Interactions.RequestModels.AddExpense { Amount = amount, Category = Request.Form["Category"]}); interaction.performAction(); var response = interaction.ResponseModel; if (response.Error.HasValue) { return RedirectToAction("Index", "Home").Error(response.Error.Value.Message); } return RedirectToAction("Index", "Home").Success("Expenses Added Successfully!"); }