public async Task <MonthBudgetResponse> AddNewUserBudget(MonthBudgetRequest request) { var categories = await _context.ExpenseCategory.Where(c => c.IsDefault || c.OwnerId == request.UserId).ToListAsync(); var newBudget = ExpensesTrackerFactory.CreateNewBudget(request, categories); var validation = _budgetDomainService.IsValidNewUserBudget(newBudget); if (validation.IsValid()) { _context.UserBudget.Add(newBudget); await _context.SaveChangesAsync(); } return(MapUserBudgetToResponse(newBudget, !validation.IsValid(), validation)); }
public void BudgetMustHaveOwnerId() { var request = new MonthBudgetRequest { }; var budget = ExpensesTrackerFactory.CreateNewBudget(request, null); var validation = _userBudgetDomainService.IsValidNewUserBudget(budget); Assert.IsFalse(validation.IsValid()); Assert.AreEqual(Messages.BudgetMustHaveAnOwner, validation.ValidationErrorMessage); }