Ejemplo n.º 1
0
        public void DecrementFromCartCheck()
        {
            var expectedquantitycart = 5;
            var allProductsend       = 8;
            var indexOfElement       = 1;
            var cart = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = 1, Quantity = 6
                    },
                    new CartItem {
                        ProductId = 2, Quantity = 3
                    }
                }
            };
            var productdatamock = new Mock <IProductData>();
            var cartstoremock   = new Mock <ICartStore>();

            cartstoremock.Setup(c => c.Cart)
            .Returns(cart);
            var cartservidse = new CookieCartService(productdatamock.Object, cartstoremock.Object);

            cartservidse.DecrementFromCart(1);
            Assert.Equal(expectedquantitycart, cart.Items.FirstOrDefault(x => x.ProductId == indexOfElement).Quantity);
            Assert.Equal(allProductsend, cart.ItemsCount);
        }
        public void CartService_RemoveFromCart_Remove_Correct_Item()
        {
            const int item_id = 1;
            var       cart    = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = item_id, Quantity = 1
                    },
                    new CartItem {
                        ProductId = 2, Quantity = 3
                    }
                }
            };

            var product_data_mock = new Mock <IProductService>();

            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock
            .Setup(c => c.Cart)
            .Returns(cart);

            var cart_service = new CookieCartService(product_data_mock.Object, cart_store_mock.Object);

            cart_service.RemoveFromCart(item_id);

            Assert.Single(cart.Items);
            Assert.Equal(2, cart.Items[0].ProductId);
        }
        public void CartService_Decrement_Correct()
        {
            const int item_id = 1;
            var       cart    = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = item_id, Quantity = 3
                    },
                    new CartItem {
                        ProductId = 2, Quantity = 5
                    }
                }
            };

            var product_data_mock = new Mock <IProductService>();

            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock
            .Setup(c => c.Cart)
            .Returns(cart);

            var cart_service = new CookieCartService(product_data_mock.Object, cart_store_mock.Object);

            cart_service.DecrementFromCart(item_id);

            Assert.Equal(7, cart.ItemsCount);
            Assert.Equal(2, cart.Items.Count);
            Assert.Equal(item_id, cart.Items[0].ProductId);
            Assert.Equal(2, cart.Items[0].Quantity);
        }
        public void CartService_AddToCart_WorkCorrect()
        {
            var cart = new Cart
            {
                Items = new List <CartItem>()
            };

            var product_data_mock = new Mock <IProductService>();

            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock
            .Setup(c => c.Cart)
            .Returns(cart);

            var cart_service = new CookieCartService(product_data_mock.Object, cart_store_mock.Object);

            const int expected_id = 5;

            cart_service.AddToCart(expected_id);

            Assert.Equal(1, cart.ItemsCount);
            Assert.Single(cart.Items);
            Assert.Equal(expected_id, cart.Items[0].ProductId);
        }
        public void CartService_Remove_Item_When_Decrement_to_0()
        {
            const int item_id = 1;
            var       cart    = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = item_id, Quantity = 1
                    },
                    new CartItem {
                        ProductId = 2, Quantity = 5
                    }
                }
            };

            var product_data_mock = new Mock <IProductService>();

            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock
            .Setup(c => c.Cart)
            .Returns(cart);

            var cart_service = new CookieCartService(product_data_mock.Object, cart_store_mock.Object);

            cart_service.DecrementFromCart(item_id);

            Assert.Equal(5, cart.ItemsCount);
            Assert.Single(cart.Items);
        }
Ejemplo n.º 6
0
        public void CartItemDeleteCheck()
        {
            const int itemid = 1;
            var       cart   = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = 1, Quantity = 1
                    },
                    new CartItem {
                        ProductId = 2, Quantity = 3
                    }
                }
            };
            var productdatamock = new Mock <IProductData>();
            var cartstoremock   = new Mock <ICartStore>();

            cartstoremock.Setup(c => c.Cart)
            .Returns(cart);
            var cartservidse = new CookieCartService(productdatamock.Object, cartstoremock.Object);

            cartservidse.RemoveFromCart(itemid);

            Assert.Equal(3, cart.ItemsCount);
            Assert.Equal(2, cart.Items[0].ProductId);
        }
        public void CartService_RemoveAll_ClearCart()
        {
            const int item_id = 1;
            var       cart    = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = item_id, Quantity = 1
                    },
                    new CartItem {
                        ProductId = 2, Quantity = 3
                    }
                }
            };

            var product_data_mock = new Mock <IProductService>();

            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock
            .Setup(c => c.Cart)
            .Returns(cart);

            var cart_service = new CookieCartService(product_data_mock.Object, cart_store_mock.Object);

            cart_service.RemoveAll();

            Assert.Empty(cart.Items);
        }
Ejemplo n.º 8
0
        public void CartService_RemoveAll_Clear_Cart()
        {
            //корзина
            var cart = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = 1, Quantity = 3
                    },
                    new CartItem {
                        ProductId = 2, Quantity = 1
                    },
                }
            };

            //сервис - заглушка
            var product_data_mock = new Mock <IProductData>();

            //сервис хранения корзины
            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock.Setup(c => c.Cart).Returns(cart);

            var cart_service = new CookieCartService(product_data_mock.Object, cart_store_mock.Object);

            cart_service.RemoveAll();

            //сравниваем кол-во товаров
            var result_count = cart.Items.Count;

            Assert.Equal(0, result_count);
            Assert.Equal(0, cart.ItemsCount);
        }
Ejemplo n.º 9
0
        public void CartService_AddToCart_WorksCorrect()
        {
            const int expected_product_id = 5;

            //корзина
            var cart = new Cart {
                Items = new List <CartItem>()
            };

            //сервис - заглушка
            var product_data_mock = new Mock <IProductData>();

            //сервис хранения корзины
            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock.Setup(c => c.Cart).Returns(cart); //возвращает пустую корзину

            var cart_service = new CookieCartService(product_data_mock.Object, cart_store_mock.Object);

            cart_service.AddToCart(expected_product_id);

            //сравниваем кол-во товаров
            var result_count = cart.Items.Count;

            Assert.Equal(1, result_count);
            Assert.Equal(1, cart.ItemsCount);
            Assert.Equal(expected_product_id, cart.Items.First().ProductId);
        }
Ejemplo n.º 10
0
        public void ClearTheCartCorrect()
        {
            var cart = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = 1, Quantity = 1
                    },
                    new CartItem {
                        ProductId = 2, Quantity = 3
                    },
                    new CartItem {
                        ProductId = 3, Quantity = 5
                    }
                }
            };
            var productdatamock = new Mock <IProductData>();
            var cartstoremock   = new Mock <ICartStore>();

            cartstoremock.Setup(c => c.Cart)
            .Returns(cart);
            var cartservidse = new CookieCartService(productdatamock.Object, cartstoremock.Object);

            cartservidse.RemoveAll();
            Assert.Equal(0, cart.ItemsCount);
        }
        public void CartService_TransformCart_WorkCorrect()
        {
            var cart = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = 1, Quantity = 1
                    },
                    new CartItem {
                        ProductId = 2, Quantity = 5
                    }
                }
            };
            int expected_count_item = 10;
            var products            = new PagedProductDTO
            {
                Products = Enumerable.Range(0, expected_count_item)
                           .Select(i => new ProductDTO
                {
                    Id       = i,
                    Name     = $"Product {i}",
                    Price    = 100m,
                    Order    = 0,
                    ImageUrl = $"Product{i}.png",
                    Brand    = new BrandDTO {
                        Id = 1, Name = "BrandName"
                    },
                    Category = new CategoryDTO {
                        Id = 1, Name = "CategoryName"
                    }
                }),
                TotalCount = expected_count_item
            };


            var product_data_mock = new Mock <IProductService>();

            product_data_mock
            .Setup(c => c.GetProducts(It.IsAny <ProductFilter>()))
            .Returns(products);

            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock
            .Setup(c => c.Cart)
            .Returns(cart);

            var cart_service = new CookieCartService(product_data_mock.Object, cart_store_mock.Object);

            var result = cart_service.TransformCart();

            Assert.Equal(6, result.ItemsCount);
            Assert.Equal(100m, result.Items.First().Key.Price);
        }
Ejemplo n.º 12
0
        public void CarItemService_AdToCartCorrect()
        {
            var cart = new Cart
            {
                Items = new List <CartItem>()
            };
            var productdatamock = new Mock <IProductData>();
            var cartstoremock   = new Mock <ICartStore>();

            cartstoremock.Setup(c => c.Cart)
            .Returns(cart);
            var       cartservidse = new CookieCartService(productdatamock.Object, cartstoremock.Object);
            const int expressionId = 5;

            cartservidse.AddToCart(expressionId);
            Assert.Equal(1, cart.ItemsCount);
            Assert.Single(cart.Items);
            Assert.Equal(expressionId, cart.Items[0].ProductId);
        }
Ejemplo n.º 13
0
        public void CartService_TransformCart_WorksCorrect()
        {
            var cart = new Cart
            {
                Items = new List <CartItem> {
                    new CartItem {
                        ProductId = 1, Quantity = 4
                    }
                }
            };

            var products = new PagedProductDto
            {
                Products = new List <ProductDto>
                {
                    new ProductDto
                    {
                        Id       = 1,
                        ImageUrl = "image.jpg",
                        Name     = "Test",
                        Order    = 0,
                        Price    = 1.11m,
                    }
                },
                TotalCount = 1
            };

            var product_data_mock = new Mock <IProductData>();

            product_data_mock.Setup(c => c.GetProducts(It.IsAny <ProductFilter>())).Returns(products);

            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock.Setup(c => c.Cart).Returns(cart);

            var cart_service = new CookieCartService(product_data_mock.Object, cart_store_mock.Object);

            var result = cart_service.TransformCart();

            Assert.Equal(4, result.ItemsCount);
            Assert.Equal(1.11m, result.Items.First().Key.Price);
        }
 public ActionResult Checkout()
 {
     if (User.Identity.IsAuthenticated && UserService.GetApplicationUser(User.Identity.GetUserId()).Cart.ProductsInCart.Count > 0)
     {
         return(View());
     }
     else if (!User.Identity.IsAuthenticated && Request.Cookies["Guest"] != null)
     {
         if (CookieCartService.GetCookieCart(Request.Cookies["Guest"].Value).ProductsInCart.Count > 0)
         {
             return(View());
         }
         else
         {
             return(RedirectToAction("Cart", "Manage"));
         }
     }
     else
     {
         return(RedirectToAction("Cart", "Manage"));
     }
 }
Ejemplo n.º 15
0
        public void CartService_Remove_Item_When_Decrement()
        {
            var test_item = new CartItem {
                ProductId = 2, Quantity = 1
            };

            //корзина
            var cart = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = 1, Quantity = 3
                    },
                    test_item
                }
            };

            //сервис - заглушка
            var product_data_mock = new Mock <IProductData>();

            //сервис хранения корзины
            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock.Setup(c => c.Cart).Returns(cart);

            var cart_service = new CookieCartService(product_data_mock.Object, cart_store_mock.Object);

            cart_service.DecrementFromCart(test_item.ProductId);

            //сравниваем кол-во товаров
            var result_count = cart.Items.Count;

            Assert.Equal(1, result_count);
            Assert.Equal(3, cart.ItemsCount);
            //Assert.Equal(1, cart.Items.First().ProductId);
            //Assert.False(cart.Items.Contains(test_item));
            Assert.True(cart.Items.Find(e => e.ProductId == test_item.ProductId) is null);
        }
Ejemplo n.º 16
0
        public void CartService_Decrement_Correct()
        {
            const int expected_product_id = 1;
            const int expected_quantity   = 2;

            //корзина
            var cart = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = expected_product_id, Quantity = expected_quantity + 1
                    },
                    new CartItem {
                        ProductId = 2, Quantity = 1
                    },
                }
            };

            //сервис - заглушка
            var product_data_mock = new Mock <IProductData>();

            //сервис хранения корзины
            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock.Setup(c => c.Cart).Returns(cart);

            var cart_service = new CookieCartService(product_data_mock.Object, cart_store_mock.Object);

            cart_service.DecrementFromCart(expected_product_id);

            //сравниваем кол-во товаров
            var result_count = cart.Items.Count;

            Assert.Equal(2, result_count);
            Assert.Equal(expected_quantity + 1, cart.ItemsCount);
            Assert.Equal(expected_product_id, cart.Items.First().ProductId);
            Assert.Equal(expected_quantity, cart.Items.First().Quantity);
        }
Ejemplo n.º 17
0
        public void CartService_AddToCart_Increment_Quantity()
        {
            const int expected_product_id = 5;
            const int expected_quantity   = 10;

            //корзина c одним элементом
            var cart = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = expected_product_id, Quantity = expected_quantity - 1
                    }
                }
            };

            //сервис - заглушка
            var product_data_mock = new Mock <IProductData>();

            //сервис хранения корзины
            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock.Setup(c => c.Cart).Returns(cart);

            var cart_service = new CookieCartService(product_data_mock.Object, cart_store_mock.Object);

            cart_service.AddToCart(expected_product_id);

            //сравниваем кол-во товаров
            var result_count = cart.Items.Count;

            Assert.Equal(1, result_count);
            Assert.Equal(expected_quantity, cart.ItemsCount);
            Assert.Equal(expected_product_id, cart.Items.First().ProductId);
            Assert.Equal(expected_quantity, cart.Items.First().Quantity);
        }
        public ActionResult ListSizes(int ProdId, int Quantity)
        {
            ProductInCart productInCart = new ProductInCart();
            Product       actualProduct = ProductService.GetProduct(ProdId);

            productInCart.ProductId          = ProdId;
            productInCart.Quantity           = Quantity;
            productInCart.SubtotalForProduct = Decimal.Multiply(productInCart.Quantity, actualProduct.PriceEU);


            if (User.Identity.IsAuthenticated)
            {
                var UserId  = User.Identity.GetUserId();
                var user    = UserService.GetApplicationUser(UserId);
                var product = user.Cart.ProductsInCart
                              .Where(a => a.CartId == UserId && a.ProductId == productInCart.ProductId && a.OrderId == null)
                              .FirstOrDefault();
                if (product != null)
                {
                    product.Quantity           += productInCart.Quantity;
                    product.SubtotalForProduct += productInCart.SubtotalForProduct;
                }
                else
                {
                    user.Cart.ProductsInCart.Add(productInCart);
                }
                UserService.UpdateApplicationUser(user);
                UserService.SaveApplicationUser();
            }
            else
            {
                Store.Model.Models.Cryptor cryptor = new Cryptor();
                if (Request.Cookies["Guest"] == null)
                {
                    HttpCookie GuestCookie   = new HttpCookie("Guest");
                    Random     rnd           = new Random();
                    int        randomNumber1 = rnd.Next(1, 10);
                    int        randomNumber2 = rnd.Next(11, 200);
                    string     GuestValue    = cryptor.Encrypt(DateTime.Now.ToString() + randomNumber1 + randomNumber2, true);
                    GuestCookie.Value   = GuestValue;
                    GuestCookie.Expires = DateTime.Now.AddHours(1);
                    Response.Cookies.Add(GuestCookie);
                    try
                    {
                        CookieCart cookieCart = new CookieCart();
                        cookieCart.CookieId       = GuestValue;
                        cookieCart.ProductsInCart = new List <ProductInCart>();
                        cookieCart.WholePrice     = 0;
                        CookieCartService.CreateCookieCart(cookieCart);
                        CookieCartService.SaveCookieCart();


                        var product = cookieCart.ProductsInCart
                                      .Where(a => a.ProductId == productInCart.ProductId && a.OrderId == null)
                                      .FirstOrDefault();
                        if (product != null)
                        {
                            product.Quantity           += productInCart.Quantity;
                            product.SubtotalForProduct += productInCart.SubtotalForProduct;
                        }
                        else
                        {
                            cookieCart.ProductsInCart.Add(productInCart);
                        }
                        CookieCartService.UpdateCookieCart(cookieCart);
                        CookieCartService.SaveCookieCart();
                    }
                    catch (Exception E)
                    {
                        throw new Exception(E.ToString());
                    }
                }
                else
                {
                    try
                    {
                        CookieCart cookieCart = CookieCartService.GetCookieCart(Request.Cookies["Guest"].Value);

                        var product = cookieCart.ProductsInCart
                                      .Where(a => a.ProductId == productInCart.ProductId && a.OrderId == null)
                                      .FirstOrDefault();
                        if (product != null)
                        {
                            product.Quantity           += productInCart.Quantity;
                            product.SubtotalForProduct += productInCart.SubtotalForProduct;
                        }
                        else
                        {
                            cookieCart.ProductsInCart.Add(productInCart);
                        }
                        CookieCartService.UpdateCookieCart(cookieCart);
                        CookieCartService.SaveCookieCart();
                    }
                    catch (Exception E)
                    {
                        throw new Exception(E.ToString());
                    }
                }
                return(RedirectToAction("Cart", "Manage"));
            }
            return(RedirectToAction("Cart", "Manage"));
        }