Пример #1
0
        public void AddItem(Pizza pizza, int quantity)
        {
            CartLine line = cartLine
               .Where(p => p.Pizza.PizzaId == pizza.PizzaId)
               .FirstOrDefault();

            if (line == null)
            {
                cartLine.Add(new CartLine { Pizza = pizza, Quantity = quantity });
            }
            else
            {
                line.Quantity += quantity;
            }
        }
        public void CanAddANewLine()
        {
            //Arrange
            Pizza p1 = new Pizza { PizzaId = 1, Name = "Pizza1" };
            Pizza p2 = new Pizza { PizzaId = 2, Name = "Pizza2" };
            Cart cart = new Cart();

            //Action
            cart.AddItem(p1, 1);
            cart.AddItem(p2, 1);
            CartLine[] results = cart.Lines.ToArray();

            //Assert
            Assert.AreEqual(results.Length, 2);
            Assert.AreEqual(results[1].Pizza, p2);
        }
        public void CalcCartTotal()
        {
            //Arrange
            Pizza p1 = new Pizza { PizzaId = 1, Name = "Pizza1", Price = 5M };
            Pizza p2 = new Pizza { PizzaId = 2, Name = "Pizza2", Price = 3.50M };
            Pizza p3 = new Pizza { PizzaId = 3, Name = "Pizza3", Price = 51M };
            Cart cart = new Cart();

            //Action
            cart.AddItem(p1, 1);
            cart.AddItem(p2, 2);
            cart.AddItem(p3, 1);
            decimal result = cart.GetTotalValue();

            //Assert
            Assert.AreEqual(result, 63M);
        }
        public ViewResult ViewPizza(Pizza pizza)
        {
            Pizza pizzaDetails;
            var pizzas = repository.Pizzas.Include("PizzaToppings");
            pizzaDetails = pizzas.FirstOrDefault(p => p.PizzaId == pizza.PizzaId);
            var allToppings = toppingRepository.Toppings.Where(t => t.Size == pizza.Size).ToList();

            PizzaSelectViewModel viewModel = new PizzaSelectViewModel
            {
                Pizza = pizzaDetails,
                Toppings = allToppings
            };

            toppingList = new List<Topping>();
            Session["ToppingList"] = new List<Topping>();
            return View(viewModel);
        }
        public void CanAddQuantityToExistingLine()
        {
            //Arrange
            Pizza p1 = new Pizza { PizzaId = 1, Name = "Pizza1" };
            Pizza p2 = new Pizza { PizzaId = 2, Name = "Pizza2" };
            Cart cart = new Cart();

            //Action
            cart.AddItem(p1, 1);
            cart.AddItem(p2, 1);
            cart.AddItem(p1, 5);
            CartLine[] results = cart.Lines.OrderBy(p => p.Pizza.PizzaId).ToArray();

            //Assert
            Assert.AreEqual(results.Length, 2);
            Assert.AreEqual(results[0].Quantity, 6);
            Assert.AreEqual(results[1].Quantity, 1);
        }
        public void CanRemoveLine()
        {
            //Arrange
            Pizza p1 = new Pizza { PizzaId = 1, Name = "Pizza1" };
            Pizza p2 = new Pizza { PizzaId = 2, Name = "Pizza2" };
            Pizza p3 = new Pizza { PizzaId = 3, Name = "Pizza3" };
            Cart cart = new Cart();

            //Action
            cart.AddItem(p1, 1);
            cart.AddItem(p2, 2);
            cart.AddItem(p1, 5);
            cart.AddItem(p3, 3);
            cart.RemoveLine(p1);

            //Assert
            Assert.AreEqual(cart.Lines.Count(), 2);
            Assert.AreEqual(cart.Lines.Where(p => p.Pizza == p1).Count(), 0);
        }
Пример #7
0
 public void RemoveLine(Pizza pizza)
 {
     cartLine.RemoveAll(line => line.Pizza.PizzaId == pizza.PizzaId);
 }
        public ActionResult RetrieveSavedOrder(Cart cart)
        {
            var orderlineQuery = orderlineRepository.Orderlines.Where(u => u.UserId == WebSecurity.CurrentUserId).ToList();
            cart.Clear();
            foreach (var orderline in orderlineQuery)
            {
                if (orderline != null)
                {
                    if (orderline.OrderId == 0)
                    {
                        Pizza pizza = new Pizza();
                        pizza.PizzaId = orderline.PizzaId;
                        pizza.Name = repository.Pizzas.FirstOrDefault(p => p.PizzaId == pizza.PizzaId).Name;
                        pizza.Size = repository.Pizzas.FirstOrDefault(p => p.PizzaId == pizza.PizzaId).Size;
                        pizza.Price = orderline.OrderlinePrice;
                        cart.AddItem(pizza, 1);
                        TempData["message"] = string.Format("Order Retrieved");
                    }
                }
            }

            if(orderlineQuery.Count() == 0){
                TempData["message"] = string.Format("No Items Saved");               
            }
            return RedirectToAction("Index");
        }
        public void CanClearCart()
        {
            //Arrange
            Pizza p1 = new Pizza { PizzaId = 1, Name = "Pizza1", Price = 5M };
            Pizza p2 = new Pizza { PizzaId = 2, Name = "Pizza2", Price = 3.50M };
            Pizza p3 = new Pizza { PizzaId = 3, Name = "Pizza3", Price = 51M };
            Cart cart = new Cart();

            //Action
            cart.AddItem(p1, 1);
            cart.AddItem(p2, 2);
            cart.AddItem(p3, 1);
            cart.Clear();

            //Assert
            Assert.AreEqual(cart.Lines.Count(), 0);
        }