public void Meal_Night_Factory_OK() { Meal obj = MealFactory.CreateMeal(MealType.NIGHT); var meal = obj.Display(1); Console.WriteLine(meal); Assert.IsTrue(obj.Name == "Night"); }
public void Meal_Morning_Factory_OK() { Meal obj = MealFactory.CreateMeal(MealType.MORNING); var meal = obj.Display(1); Console.WriteLine(meal); Assert.IsTrue(obj.Name == "Morning"); }
public override void Execute() { Console.WriteLine("Please enter desired meal name (green salad/hamburger): "); string mealName = Console.ReadLine(); MealFactory factory = new MealFactory(); IMeal meal = factory.CreateMeal(mealName); meal.ShowDescription(); meal.ShowAmountOfCalories(); }
public void CreateMeal(string input) { if (this._meal == null) { MealType meal = MealType.NOTAVAILABLE; var validator = new OrderingValidator(); if (validator.isInputValid(input, out meal)) { if (meal != MealType.NOTAVAILABLE) { this._meal = MealFactory.CreateMeal(meal); var listDishes = validator.GetListDishes().OrderBy(x => x).GroupBy(x => x); bool hasError = false; foreach (var item in listDishes) { DishType?currentDishType = validator.GetToDishType(item.Key); int dishRepetition = item.Count(); if (currentDishType != null) { var dish = this._meal.Dishes.Where(x => x.DishType == currentDishType).FirstOrDefault(); if (dishRepetition > 1) { if (dish.HasMultipleOrder()) { dish.HasOrdered = true; dish.Order(dishRepetition); } else { dish = new ErrorDish(); } } else { if (dish != null) { dish.HasOrdered = true; dish.Order(1); } if (currentDishType == DishType.DESERT && meal == MealType.MORNING) { this._meal.Add(new ErrorDish()); } } } else { if (!hasError) { this._meal.Add(new ErrorDish()); } } } ValidOrder(); } else { this._meal = new Meal("Error"); this._meal.Add(new ErrorDish()); } } } }