public void Add_Meal_To_Basket_Ok()
        {
            //Arrange
            var     mock  = new Mock <IBasketRepository>();
            MealBTO meal1 = new MealBTO {
                Id = 1, Name = "P1"
            };
            MealBTO meal2 = new MealBTO {
                Id = 2, Name = "P2"
            };

            //Arrange
            BasketUC target = new BasketUC(mock.Object);

            //Act
            target.AddMealToBasket(meal1, 1);
            target.AddMealToBasket(meal2, 1);

            var results = target.shoppingMeals;

            //Assert
            Assert.AreEqual(results.Count, 2);
            Assert.AreEqual(results[0].Meal.Id, meal1.Id);
            Assert.AreEqual(results[0].Meal.Name, meal1.Name);
            Assert.AreEqual(results[1].Meal.Id, meal2.Id);
            Assert.AreEqual(results[1].Meal.Name, meal2.Name);
        }
        public void Add_Meal_To_Basket_Can_Add_Quantity()
        {
            //Arrange
            var     mock  = new Mock <IBasketRepository>();
            MealBTO meal1 = new MealBTO {
                Id = 1, Name = "P1"
            };
            MealBTO meal2 = new MealBTO {
                Id = 2, Name = "P2"
            };

            BasketUC target = new BasketUC(mock.Object);

            //Act
            target.AddMealToBasket(meal1, 1);
            target.AddMealToBasket(meal2, 1);
            target.AddMealToBasket(meal1, 10);

            var results = target.shoppingMeals;

            //Assert
            Assert.AreEqual(results.Count, 2);
            Assert.AreEqual(results[0].Quantity, 11);
            Assert.AreEqual(results[1].Quantity, 1);
        }
        public void Sum_Amount_Ok()
        {
            //Arrange
            var     mock  = new Mock <IBasketRepository>();
            MealBTO meal1 = new MealBTO {
                Id = 1, Name = "P1", Price = 10
            };
            MealBTO meal2 = new MealBTO {
                Id = 2, Name = "P2", Price = 5
            };

            //Arrange
            BasketUC target = new BasketUC(mock.Object);

            //Act
            target.AddMealToBasket(meal1, 1);
            target.AddMealToBasket(meal2, 1);
            target.AddMealToBasket(meal1, 3);


            var results = target.ComputeTotalValue();

            //Assert
            Assert.AreEqual(results, 45);
        }
        public void Can_Remove_Meal()
        {
            //Arrange
            var     mock  = new Mock <IBasketRepository>();
            MealBTO meal1 = new MealBTO {
                Id = 1, Name = "M1"
            };
            MealBTO meal2 = new MealBTO {
                Id = 2, Name = "M2"
            };
            MealBTO meal3 = new MealBTO {
                Id = 3, Name = "M3"
            };

            //Arrange
            BasketUC target = new BasketUC(mock.Object);

            //Act
            target.AddMealToBasket(meal1, 1);
            target.AddMealToBasket(meal2, 3);
            target.AddMealToBasket(meal3, 5);

            target.RemoveMeal(meal2);

            //Assert
            Assert.AreEqual(target.shoppingMeals.Count, 2);
            Assert.AreEqual(target.shoppingMeals.Where(c => c.Meal.Id == meal2.Id).Count(), 0);
        }
        public IActionResult CreateMeal(int Id)
        {
            MealBTO result = new MealBTO();

            result.MealType = new MealTypeBTO {
                Id = Id
            };
            return(View(result));
        }
示例#6
0
        public MealBTO AddMeal(MealBTO mealBto)
        {
            MealDTO meal = new MealDTO();

            if (mealBto != null)
            {
                meal = mealRepository.Create(mealBto.BTOToMealDomain().MealDomainToDTO());
                return(meal.DTOToMealDomain().MealDomainToBTO());
            }
            return(null);
        }
示例#7
0
        public MealBTO UpdateMeal(MealBTO mealBto)
        {
            MealDTO meal = new MealDTO();

            if (mealBto != null)
            {
                meal = mealRepository.Update(mealBto.BTOToMealDomain().MealDomainToDTO());
                return(meal?.DTOToMealDomain().MealDomainToBTO() ?? null);
            }
            return(null);
        }
        public IActionResult CreateMeal(MealBTO mealBTO)
        {
            int idToReturn = mealBTO.MealType.Id;

            if (!ModelState.IsValid)
            {
                return(View(mealBTO));
            }
            var result = mealUC.AddMeal(mealBTO);

            if (result == null)
            {
                return(RedirectToAction("Error", new { errorMessage = "We can't add this meal, please contact support" }));
            }
            return(RedirectToAction("GetAllMealsByMealTypeId", new { Id = idToReturn }));
        }
示例#9
0
        public void AddMealToBasket(MealBTO mealBTO, int quantity)
        {
            ShoppingMealDomain shoppingMeal = shoppingMeals
                                              .Where(x => x.Meal.Id == mealBTO.Id)
                                              .FirstOrDefault();

            if (shoppingMeal == null)
            {
                shoppingMeals.Add(new ShoppingMealDomain
                {
                    Meal     = mealBTO.BTOToMealDomain(),
                    MealId   = mealBTO.Id,
                    Quantity = quantity
                });
            }
            else
            {
                shoppingMeal.Quantity += quantity;
            }
        }
示例#10
0
 public static MealDomain BTOToMealDomain(this MealBTO mealBto)
 {
     if (mealBto != null)
     {
         return new MealDomain
                {
                    Id          = mealBto.Id,
                    Name        = mealBto.Name,
                    Description = mealBto.Description,
                    Price       = mealBto.Price,
                    MealTypeID  = mealBto.MealTypeID,
                    MealType    = mealBto.MealType.BTOToMealTypeDomain()
                }
     }
     ;
     else
     {
         return(null);
     }
 }
示例#11
0
        public void Add_Meal_To_Basket_Ok()
        {
            //Arrange
            var     mock  = new Mock <IBasketRepository>();
            MealBTO meal1 = new MealBTO {
                Id = 1, Name = "M1"
            };
            MealBTO meal2 = new MealBTO {
                Id = 2, Name = "M2"
            };

            //Arrange
            BasketUC target = new BasketUC(mock.Object);

            //Act
            target.AddMealToBasket(meal1, 1);
            target.AddMealToBasket(meal2, 1);

            target.ClearShoppingMeals();

            //Assert
            Assert.AreEqual(target.shoppingMeals.Count, 0);
        }
示例#12
0
 public void RemoveMeal(MealBTO mealBTO)
 {
     shoppingMeals.RemoveAll(x => x.Meal.Id == mealBTO.Id);
 }