public void Modified_Expense_Should_Have_Different_Values() { var expenseInput = new ExpenseInputModel() { Id = 1, Payee = TestData.TestData.RandomAlphaNumericString(8), Amount = TestData.TestData.RandomDecimal(), Category = TestData.TestData.RandomCategory(), Account = TestData.TestData.RandomAccount(), Date = DateTime.Today, Repeat = TestData.TestData.RandomBoolean(), Impulse = TestData.TestData.RandomBoolean(), Memo = TestData.TestData.RandomAlphaNumericString(10) + " " + TestData.TestData.RandomAlphaNumericString(10) + " " + TestData.TestData.RandomAlphaNumericString(10) + " " + TestData.TestData.RandomAlphaNumericString(10) + " " + TestData.TestData.RandomAlphaNumericString(10), ColorCode = TestData.TestData.RandomColorCode(), }; _sut.Modify(1, expenseInput); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Payee == expenseInput.Payee))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Amount == expenseInput.Amount))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Account == expenseInput.Account))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Category == expenseInput.Category))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Date == expenseInput.Date))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Repeat == expenseInput.Repeat))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Impulse == expenseInput.Impulse))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Memo == expenseInput.Memo))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.ColorCode == expenseInput.ColorCode))); }
public void Modified_Expense_Should_Have_Different_Amount() { var expenseInput = new ExpenseInputModel() { Id = 1, Payee = TestData.TestData.RandomAlphaNumericString(8), Amount = TestData.TestData.RandomDecimal(), Category = "Fun Money", Account = TestData.TestData.RandomAccount(), Date = DateTime.Today, Repeat = false, Impulse = true, Memo = "Closing Time", ColorCode = "Pink" }; _sut.Modify(1, expenseInput); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Payee == expenseInput.Payee))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Amount == expenseInput.Amount))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Account == expenseInput.Account))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Category == expenseInput.Category))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Date == expenseInput.Date))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Repeat == expenseInput.Repeat))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Impulse == expenseInput.Impulse))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.Memo == expenseInput.Memo))); _session.Verify(x => x.SaveOrUpdate(It.Is <ExpenseEntity>(y => y.ColorCode == expenseInput.ColorCode))); }
public IActionResult Create([FromBody] ExpenseInputModel expenseInputModels) { try { var expenseEntity = new ExpenseEntity(); expenseEntity.Account = expenseInputModels.Account; expenseEntity.Amount = expenseInputModels.Amount; expenseEntity.Category = expenseInputModels.Category; expenseEntity.ColorCode = expenseInputModels.ColorCode; expenseEntity.Date = expenseInputModels.Date; expenseEntity.Impulse = expenseInputModels.Impulse; expenseEntity.Memo = expenseInputModels.Memo; expenseEntity.Payee = expenseInputModels.Payee; expenseEntity.Repeat = expenseInputModels.Repeat; using (ISession session = _inHibernateSession.OpenSession()) { using (ITransaction transaction = session.BeginTransaction()) { session.Save(expenseEntity); transaction.Commit(); } } return(new JsonResult(expenseEntity)); } catch (Exception e) { return(new JsonResult(e)); } }
public async Task <IActionResult> AddExpense() { var userId = this.GetUserId <string>(); var language = this.GetCurrentLanguage(); var componentTypeId = (int)ComponentTypes.PaymentComponent; var model = new ExpenseInputModel { ExpenseGroupListItems = await this.expenseGroupService.AllLocalized <ExpenseGroupSelectListItem>(language), ComponentsSelectListItems = await this.componentsService.AllByUserIdAndTypeIdActiveLocalized <ComponentsSelectListItem>(userId, componentTypeId, language) }; return(this.View(model)); }
public async Task <IActionResult> Edit(ExpenseInputModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState.Values)); } try { var userId = base.GetUserIdFromAuthorizeHeader(); var expenseDbModel = mapper.Map <Expense>(model); var editedExpense = await expensesService.Edit <ExpenseDTO>(expenseDbModel, userId); return(Ok(editedExpense)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public void Should_Added_Expense_Should_Not_Return_Null() { var expenseInput = new ExpenseInputModel() { Id = 10, Payee = "Amazon", Amount = 18.00M, Category = "Stuff I Forget to Budget For", Account = "Middleburg", Date = DateTime.Today, Repeat = false, Impulse = true, Memo = "Dry Erase Paper Sheets", ColorCode = "Blue" }; var post = _sut.Create(expenseInput); Assert.IsNotNull(post); }
public void Added_Expense_Should_Commit() { var expenseInput = new ExpenseInputModel() { Id = 10, Payee = "Amazon", Amount = 18.00M, Category = "Stuff I Forget to Budget For", Account = "Middleburg", Date = DateTime.Today, Repeat = false, Impulse = true, Memo = "Dry Erase Paper Sheets", ColorCode = "Blue" }; _sut.Create(expenseInput); _transaction.Verify(x => x.Commit(), Times.Once); }
public async Task <IActionResult> Create(ExpenseInputModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState.Values)); } try { var expenseDbModel = mapper.Map <Expense>(model); var stream = new MemoryStream(); //await model.Image.CopyToAsync(stream); await expensesService.Create(expenseDbModel, null); return(Ok()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public void Should_Added_Expense_Should_Return_Json() { var expenseInput = new ExpenseInputModel() { Id = 10, Payee = "Amazon", Amount = 18.00M, Category = "Stuff I Forget to Budget For", Account = "Middleburg", Date = DateTime.Today, Repeat = false, Impulse = true, Memo = "Dry Erase Paper Sheets", ColorCode = "Blue" }; var post = _sut.Create(expenseInput); var expectedType = new JsonResult(expenseInput); var result = post as JsonResult; Assert.IsInstanceOf(expectedType.GetType(), result); }
public void Added_Expense_Should_Save() { var expenseInput = new ExpenseInputModel() { Id = 10, Payee = "Amazon", Amount = 18.00M, Category = "Stuff I Forget to Budget For", Account = "Middleburg", Date = DateTime.Today, Repeat = false, Impulse = true, Memo = "Dry Erase Paper Sheets", ColorCode = "Blue" }; var expenseEntity = new ExpenseEntity() { Id = 10, Payee = "Amazon", Amount = 18.00M, Category = "Stuff I Forget to Budget For", Account = "Middleburg", Date = DateTime.Today, Repeat = false, Impulse = true, Memo = "Dry Erase Paper Sheets", ColorCode = "Blue" }; _session.Setup(x => x.Save(It.IsAny <ExpenseEntity>())) .Returns(() => expenseEntity); _sut.Create(expenseInput); _session.Verify(x => x.Save(It.IsAny <ExpenseEntity>()), Times.Once); }
public ExpenseEntity Modify(int id, [FromBody] ExpenseInputModel expenseInputModel) { using (ISession session = _inHibernateSession.OpenSession()) { var expenseEntity = session.Query <ExpenseEntity>().Where(b => b.Id == id).FirstOrDefault(); expenseEntity.Account = expenseInputModel.Account; expenseEntity.Category = expenseInputModel.Category; expenseEntity.ColorCode = expenseInputModel.ColorCode; expenseEntity.Memo = expenseInputModel.Memo; expenseEntity.Payee = expenseInputModel.Payee; expenseEntity.Amount = expenseInputModel.Amount; expenseEntity.Date = expenseInputModel.Date; expenseEntity.Impulse = expenseInputModel.Impulse; expenseEntity.Repeat = expenseInputModel.Repeat; expenseEntity.Repeat = expenseEntity.Repeat; using (ITransaction transaction = session.BeginTransaction()) { session.SaveOrUpdate(expenseEntity); transaction.Commit(); return(expenseEntity); } } }
public async Task <IActionResult> AddExpense(ExpenseInputModel model) { var userId = this.GetUserId <string>(); if (!this.ModelState.IsValid) { var language = this.GetCurrentLanguage(); var componentTypeId = (int)ComponentTypes.PaymentComponent; model.ExpenseGroupListItems = await this.expenseGroupService.AllLocalized <ExpenseGroupSelectListItem>(language); model.ComponentsSelectListItems = await this.componentsService.AllByUserIdAndTypeIdActiveLocalized <ComponentsSelectListItem>(userId, componentTypeId, language); return(this.View(model)); } if (!this.componentsService.CheckIfComponentHasEnoughAmount(userId, model.ComponentId, model.ExpenseAmount)) { this.AddAlertMessageToTempData(AlertType.Error, Resources.Error, Resources.NotEnoughAmount); var language = this.GetCurrentLanguage(); var componentTypeId = (int)ComponentTypes.PaymentComponent; model.ExpenseGroupListItems = await this.expenseGroupService.AllLocalized <ExpenseGroupSelectListItem>(language); model.ComponentsSelectListItems = await this.componentsService.AllByUserIdAndTypeIdActiveLocalized <ComponentsSelectListItem>(userId, componentTypeId, language); return(this.View(model)); } try { var entityToAdd = new Expense { UserId = userId, ExpenseGroupId = model.ExpenseGroupId, Description = model.Description, ExpenseAmount = model.ExpenseAmount, ExpenseDate = model.ExpenseDate, ComponentId = model.ComponentId }; await this.expensesService.AddAsync(entityToAdd); bool isComponentUpdated = await this.componentsService.RemoveAmount(userId, model.ComponentId, model.ExpenseAmount); if (isComponentUpdated) { this.AddAlertMessageToTempData(AlertType.Success, Resources.Success, Resources.ExpenseAddSuccess); } else { this.AddAlertMessageToTempData(AlertType.Error, Resources.Error, Resources.ExpenseAddError); } } catch (Exception) { this.AddAlertMessageToTempData(AlertType.Error, Resources.Error, Resources.ExpenseAddError); } return(this.RedirectToAction("Index")); }
public ActionResult Edit(int id, [FromBody] ExpenseInputModel expenseInputModel) { var expense = _expenseModificationService.Modify(id, expenseInputModel); return(new JsonResult(expense)); }
public void Setup() { _random = new Random(); _randomId = _random.Next(1, 3); expenseInput = new ExpenseInputModel() { Id = 1, Payee = "Toys R Us", Amount = 100.00M, Category = "Fun Money", Account = "Suntrust", Date = DateTime.Today, Repeat = false, Impulse = true, Memo = "He-man Toys", ColorCode = "Pink" }; expenseEntity = new ExpenseEntity() { Id = 1, Payee = "Toys R Us", Amount = 100.00M, Category = "Fun Money", Account = "Suntrust", Date = DateTime.Today, Repeat = false, Impulse = true, Memo = "He-man Toys", ColorCode = "Pink" }; modifiedExpense = new ExpenseEntity() { Id = 1, Payee = "Toys R Us", Amount = 100.00M, Category = "Fun Money", Account = "Suntrust", Date = DateTime.Today, Repeat = false, Impulse = true, Memo = "He-man Toys", ColorCode = "Pink" }; var expenseEntityList = new List <ExpenseEntity>() { new ExpenseEntity() { Id = 1, Payee = "Toys R Us", Amount = 100.00M, Category = "Fun Money", Account = "Suntrust", Date = DateTime.Today, Repeat = false, Impulse = true, Memo = "He-man Toys", ColorCode = "Pink" }, new ExpenseEntity { Id = 2, Payee = "Amazon", Amount = 22.00M, Category = "Popcorn", Account = "Wells Fargo", Date = DateTime.Today, Repeat = true, Impulse = false, Memo = "Pop Secret Homestyle", ColorCode = "Grey" }, new ExpenseEntity { Id = 3, Payee = "Alamo Drafthouse", Amount = 7.00M, Category = "Fun Money", Account = "Middleburg Bank", Date = DateTime.Today, Repeat = false, Impulse = false, Memo = "Captain Marvel Tickets", ColorCode = "Red" } }; _transaction = new Mock <ITransaction>(); _session = new Mock <ISession>(); _session.Setup(t => t.BeginTransaction()) .Returns(_transaction.Object); //_session.Setup(x => x.Query<ExpenseEntity>()) // .Returns(() => new List<ExpenseEntity> { expenseEntity }.AsQueryable()); _session.Setup(x => x.Query <ExpenseEntity>()) .Returns(() => new List <ExpenseEntity> { modifiedExpense }.AsQueryable()); _nhibernateSession = new Mock <INHibernateSession>(); _nhibernateSession.Setup(x => x.OpenSession()) .Returns(() => _session.Object); _expense = new Mock <ExpenseEntity>(); //_session.Setup(It.Is<ExpenseEntity>(e => e.Account)).Returns("Wells Fargo"); _expense.Setup(ee => ee.Account).Returns("Wells Fargo"); _expense.SetupGet(m => m.Payee).Returns("Someone Nice"); _expense.Setup(ee => ee.Date).Returns(System.DateTime.Today); _expense.Setup(ee => ee.Account).Returns("Middleburg Bank"); _expense.Setup(ee => ee.Repeat).Returns(true); _expense.Setup(ee => ee.Impulse).Returns(true); _expense.Setup(ee => ee.Memo).Returns("expense was modified"); _expense.Setup(ee => ee.ColorCode).Returns("Cornflower-Blue"); _sut = new ExpenseModificationService(_nhibernateSession.Object); }
public IActionResult Post([FromBody] ExpenseInputModel ExpenseInputModel) { var expense = _iExpenseCreationService.Create(ExpenseInputModel); return(expense); }