public void GetAllBaskets_Should_Return_Proper_Collection() { //Arrange var mock = new Mock <IBasketRepository>(); var myBaskets = new List <BasketDTO> { new BasketDTO { Id = 1, UserId = "25" }, new BasketDTO { Id = 2, UserId = "36" } }; mock.Setup(x => x.GetAll()).Returns(myBaskets); BasketUC target = new BasketUC(mock.Object); //Act var result = target.GetAllBaskets().ToList(); //Assert Assert.AreEqual(result.Count, 2); Assert.AreEqual(result[0].Id, 1); Assert.AreEqual(result[1].UserId, "36"); }
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 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 void UpdateBasket_Should_Return_Null_If_Bto_Is_Null() { //Arrange var mock = new Mock <IBasketRepository>(); var myBasket = new BasketDTO { Id = 1, UserId = "25" }; mock.Setup(x => x.Update(myBasket)).Returns( new BasketDTO { Id = 1, UserId = "25" } ); BasketUC target = new BasketUC(mock.Object); //Act var result = target.UpdateBasket(null); //Assert Assert.IsNull(result); }
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 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 UpdateBasket_Should_Return_Valid_Data() { //Arrange var mock = new Mock <IBasketRepository>(); var myBasket = new BasketDTO { Id = 1, UserId = "25" }; mock.Setup(x => x.Update(myBasket)).Returns( new BasketDTO { Id = 1, UserId = "25" } ); BasketUC target = new BasketUC(mock.Object); //Act var result = target.UpdateBasket(new BasketBTO { Id = 1, UserId = "25" }); //Assert mock.Verify(u => u.Update(It.IsAny <BasketDTO>()), Times.Once()); }
public void GetBasketById_Should_Return_Valid_Data() { //Arrange var mock = new Mock <IBasketRepository>(); var myBasket = new BasketDTO { Id = 1, UserId = "25" }; mock.Setup(x => x.GetById(1)).Returns( new BasketDTO { Id = 1, UserId = "25" } ); BasketUC target = new BasketUC(mock.Object); //Act var result = target.GetBasketById(1); //Assert Assert.AreEqual(result.Id, 1); Assert.AreEqual(result.UserId, "25"); }
public IActionResult CreateBasket(DateTime arrivalDate) { basketUC = GetBasketUC(); if (basketUC.shoppingMeals.Count() == 0) { return(RedirectToAction("Error", new { errorMessage = "Sorry, your basket is empty..." })); } if (!ModelState.IsValid) { return(View(basketUC)); } var basketBTO = new BasketBTO(); basketBTO.ArrivalDate = arrivalDate; RestaurantUC restoUC = new RestaurantUC(restoRepository); basketBTO.ShoppingMeals = basketUC.shoppingMeals .Select(x => x.ShoppingMealDomainToBTO()) .ToList(); basketBTO.UserId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value ?? null; if (basketBTO.UserId == null) { return(RedirectToAction("Error", new { errorMessage = "You have to be logged to complete your order" })); } if (!restoUC.IsOpen(basketUC.restoId, basketBTO.ArrivalDate)) { return(RedirectToAction("Error", new { errorMessage = "The restaurant will be closed at this hour" })); } var result = basketUC.AddBasket(basketBTO); basketUC.ClearShoppingMeals(); if (basketUC.shoppingMeals.Count == 0) { HttpContext.Session.Clear(); } if (result == null) { return(RedirectToAction("Error", new { errorMessage = "We can't add this basket, please contact support" })); } string email = restoUC.FindRestoMailByRestoId(basketUC.restoId); if (!String.IsNullOrEmpty(email)) { _emailSender.SendEmailAsync(email, "You have a new order", "See your orders by clicking here"); } return(View(result)); }
private BasketUC GetBasketUC() { basketUC = HttpContext.Session.GetJson <BasketUC>("BasketUC") ?? new BasketUC(basketRepository); var result = new BasketUC(basketRepository); result.restoId = basketUC.restoId; result.shoppingMeals = basketUC.shoppingMeals; result.ArrivalDate = basketUC.ArrivalDate; return(result); }
public void GetBasketsByRestoId_Should_Return_New_List_When_Not_Found() { //Arrange var mock = new Mock <IBasketRepository>(); mock.Setup(x => x.GetBasketsByRestoId(36)).Returns(new List <BasketDTO>()); BasketUC target = new BasketUC(mock.Object); //Act var result = target.GetBasketsByRestoId(36).ToList(); //Assert Assert.AreEqual(result.Count, 0); }
public BasketController(IBasketRepository BasketRepository, IMealRepository MealRepository, IMealTypeRepository MealTypeRepository, IRestoRepository RestoRepository, IEmailSender emailSender) { basketRepository = BasketRepository; mealRepository = MealRepository; mealTypeRepository = MealTypeRepository; restoRepository = RestoRepository; _emailSender = emailSender; mealUC = new MealUC(mealRepository); mealTypeUC = new MealTypeUC(mealTypeRepository); basketUC = new BasketUC(basketRepository); }
public void GetBasketById_Should_Return_Null_When_Not_Found() { //Arrange var mock = new Mock <IBasketRepository>(); mock.Setup(x => x.GetById(25)); BasketUC target = new BasketUC(mock.Object); //Act var result = target.GetBasketById(25); //Assert Assert.AreEqual(null, result); Assert.IsNull(result); }
public void DeleteBasket_Should_Work() { //Arrange var mock = new Mock <IBasketRepository>(); var myBasket = new BasketDTO { Id = 1, UserId = "25" }; mock.Setup(x => x.Delete(1)); BasketUC target = new BasketUC(mock.Object); //Act target.DeleteBasket(1); //Assert mock.Verify(u => u.Delete(It.IsAny <int>()), Times.Once()); }
public IActionResult AddMealToBasket(int MealId, string returnUrl) { var mealBTO = mealUC.GetMealById(MealId); var restoId = mealUC.GetRestoIdByMealId(MealId); if (mealBTO != null) { /*BasketUC */ basketUC = GetBasketUC(); if (basketUC.restoId == 0) { basketUC.restoId = restoId; } else if (basketUC.restoId != restoId) { return(RedirectToAction("Error", new { errorMessage = "Sorry, your can order only in one restaurant at the same time. Please clear your basket first" })); } basketUC.AddMealToBasket(mealBTO, 1); SaveBasket(basketUC); } return(Redirect(returnUrl)); }
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); }
public IActionResult RemoveMealFromBasket(int MealId) { var mealBTO = mealUC.GetMealById(MealId); int idResto = mealUC.GetRestoIdByMealId(MealId); if (mealBTO != null) { basketUC = GetBasketUC(); basketUC.RemoveMeal(mealBTO); if (basketUC.shoppingMeals.Count == 0) { basketUC.restoId = 0; SaveBasket(basketUC); return(RedirectToAction("GetAllRestaurants", "Restaurant")); } else { SaveBasket(basketUC); } } return(RedirectToAction("RestaurantDetails", "Restaurant", new { id = idResto })); }
private void SaveBasket(BasketUC basketUC) { HttpContext.Session.SetJson("BasketUC", basketUC); }