public void ShouldAddMealToDiet() { Diet diet = GetNewDiet(); Meal meal = diet.AddMeal("Breakfast", "A faster breakfast", new Time(9, 0, 0)); Assert.AreEqual(1, diet.MealCount); }
public void ShouldAddAndRemoveMealFromDiet() { Diet diet = GetNewDiet(); Meal meal = diet.AddMeal("Breakfast", "A faster breakfast", new Time(9, 0, 0)); diet.RemoveMeal(meal); Assert.AreEqual(0, diet.MealCount); }
public void ShouldFailToRemoveMealFromDietTwice() { Diet diet = GetNewDiet(); Meal meal = diet.AddMeal("Breakfast", "A faster breakfast", new Time(9, 0, 0)); diet.RemoveMeal(meal); diet.RemoveMeal(meal); Assert.IsFalse(diet.IsValid); Assert.AreEqual("A lista de refeições dessa dieta não contém essa refeição.", diet.GetNotifications().FirstOrDefault().Description); }
public void ShouldRecalculateDietTotalMacros() { Diet diet = GetNewDiet(); Meal meal = diet.AddMeal("Breakfast", "A faster breakfast", new Time(9, 0, 0)); FoodUnit foodUnit = new FoodUnit(UnitType.Grams, 1); Food food = new Food("Peito de Frango", "Peito de Frango cozido", Guid.NewGuid(), new MacronutrientTable(0, 24, 2), MicronutrientTable.Default(), foodUnit); Food foodTwo = new Food("Brócolis", "Brócolis Verde", Guid.NewGuid(), new MacronutrientTable(6, 2, 0), MicronutrientTable.Default(), foodUnit); meal.AddMealFood(new MealFood(food, 1)); meal.AddMealFood(new MealFood(foodTwo, 1)); diet.RecalculateDietTotalMacros(); Assert.AreEqual(6, diet.TotalMacronutrients.Carbohydrate); Assert.AreEqual(26, diet.TotalMacronutrients.Protein); Assert.AreEqual(2, diet.TotalMacronutrients.Fat); }
public void ShouldRecalculateDietTotalMacrosOnRemoveMeal() { Diet diet = GetNewDiet(); Meal meal = diet.AddMeal("Breakfast", "A faster breakfast", new Time(9, 0, 0)); Food food = new Food("Peito de Frango", "Peito de Frango cozido", Guid.NewGuid(), new MacronutrientTable(20, 48, 21), MicronutrientTable.Default(), new FoodUnit(UnitType.Grams, 1)); meal.AddMealFood(new MealFood(food, 1)); diet.RecalculateDietTotalMacros(); Assert.AreEqual(20, diet.TotalMacronutrients.Carbohydrate); Assert.AreEqual(48, diet.TotalMacronutrients.Protein); Assert.AreEqual(21, diet.TotalMacronutrients.Fat); diet.RemoveMeal(meal); Assert.AreEqual(0, diet.TotalMacronutrients.Carbohydrate); Assert.AreEqual(0, diet.TotalMacronutrients.Protein); Assert.AreEqual(0, diet.TotalMacronutrients.Fat); }
public async Task <CommandResult> Handle(AddDietMealCommand request, CancellationToken cancellationToken) { Diet diet = await _dietRepository.GetByIdAsync(request.DietId); if (!FoundValidDiet(diet)) { return(FailureDueToEntityNotFound()); } Time timeOfDay = new Time(request.TimeOfDay.Hour, request.TimeOfDay.Minute, request.TimeOfDay.Second); diet.AddMeal(request.Name, request.Description, timeOfDay); if (!diet.IsValid) { return(FailureDueToEntityStateInconsistency(diet)); } await _dietRepository.UpdateAsync(diet); return(await CommitAndPublishDefaultAsync()); }