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); }
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); }
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); }
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); }
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); }
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); }
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")); } }
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); }
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); }
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")); }