public void AddCartItem_NotExisted_TotalItemCountIsIncreased() { var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now); cart.AddCartItem(new Product("11111111-1111-1111-1111-111111111111", "saleName", 200, 100, "saleDescription", int.MaxValue), 1); Assert.AreEqual(1, cart.TotalItemCount()); cart.AddCartItem(new Product("22222222-2222-2222-2222-222222222222", "saleName", 200, 100, "saleDescription", int.MaxValue), 1); Assert.AreEqual(2, cart.TotalItemCount()); }
public void AddCartItem_NotExisted_TotalItemCountIsIncreased() { var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now); cart.AddCartItem("11111111-1111-1111-1111-111111111111", 1, 100); Assert.AreEqual(1, cart.TotalItemCount()); cart.AddCartItem("22222222-2222-2222-2222-222222222222", 1, 100); Assert.AreEqual(2, cart.TotalItemCount()); }
protected async void BtnAddToCart_Click(object sender, EventArgs e) { Button button = (Button)sender; var productID = button.CommandArgument.ToString(); RepeaterItem repeaterItem = button.NamingContainer as RepeaterItem; var totalItem = (TextBox)repeaterItem.FindControl("TotalItems"); ProductModel product = await ProductRepository.SingleInstance.GetProductsAsync(int.Parse(productID)); try { if (int.Parse(totalItem.Text) <= 0) { BuildSweetAlert("#fff", AlertStatus.warning, "Error", "Error adding to cart item cannot have 0 value: " + product.ProductName); return; } product.TotalNumberOfProduct = int.Parse(totalItem.Text); product.SubTotalPrice = product.TotalNumberOfProduct * product.ProductPrice; if (await ProductRepository.SingleInstance.CheckIfProductIsEnough(product.TotalNumberOfProduct, int.Parse(productID)) == false || product.TotalNumberOfProduct == 0) { BuildSweetAlert("#ffcccb", AlertStatus.error, "Error!", "Error adding to cart: " + product.ProductName + " due to not enough stocks!"); return; } BuildSweetAlert("#fff", AlertStatus.success, "Successfull", "Successfully added to cart: " + product.ProductName); Cart.AddCartItem(product); } catch (Exception) { BuildSweetAlert("#ffcccb", AlertStatus.error, "Error", "Error Adding to Cart: " + product.ProductName); } LoadCart(); }
public void ModifyPrice_LessZero_ThrowArgumentException() { var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now); cart.AddCartItem("11111111-1111-1111-1111-111111111111", 1, 100); var cartItem = cart.GetCartItem("11111111-1111-1111-1111-111111111111"); Assert.AreNotEqual(null, cartItem); Assert.AreEqual(100, cartItem.UnitPrice); cartItem.ModifyUnitPrice(-1); }
public void TestChangeProductQuantityOfNotAddedProductName() { var categoryType = CategoryWithDiscount.Clothing; var product = new Product(categoryType) { name = "Game Of Thrones", price = 100 }; var cartItem = new CartItem(product); cartItem.quantity = 10; var cart = new Cart(DiscountType.FixedDiscount, 100); cart.AddCartItem(cartItem); cart.AddCartItem(cartItem); cart.ChangeProductQuantity("Game Of Thrones", 200); }
public void ModifyPrice_LessZero_ThrowArgumentException() { var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now); cart.AddCartItem(new Product("11111111-1111-1111-1111-111111111111", "saleName", 200, 100, "saleDescription", int.MaxValue), 1); var cartItem = cart.GetCartItem("11111111-1111-1111-1111-111111111111"); Assert.AreNotEqual(null, cartItem); Assert.AreEqual(100, cartItem.UnitPrice); cartItem.ModifyUnitPrice(-1); }
public void ModifyQuantity_EqualsZero_ThrowArgumentException() { var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now); cart.AddCartItem("11111111-1111-1111-1111-111111111111", 1, 100); var cartItem = cart.GetCartItem("11111111-1111-1111-1111-111111111111"); Assert.AreNotEqual(null, cartItem); Assert.AreEqual(1, cartItem.Quantity); cartItem.ModifyQuantity(0); }
public void ModifyPrice_MoreZero_Success() { var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now); cart.AddCartItem("11111111-1111-1111-1111-111111111111", 1, 100); var cartItem = cart.GetCartItem("11111111-1111-1111-1111-111111111111"); Assert.AreNotEqual(null, cartItem); Assert.AreEqual(100, cartItem.UnitPrice); cartItem.ModifyUnitPrice(10); Assert.AreEqual(10, cartItem.UnitPrice); }
public void ModifyQuantity_MoreZero_Success() { var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now); cart.AddCartItem(new Product("11111111-1111-1111-1111-111111111111", "saleName", 200, 100, "saleDescription", int.MaxValue), 1); var cartItem = cart.GetCartItem("11111111-1111-1111-1111-111111111111"); Assert.AreNotEqual(null, cartItem); Assert.AreEqual(1, cartItem.Quantity); cartItem.ModifyQuantity(10); Assert.AreEqual(10, cartItem.Quantity); }
public void AddFavoritesItem_NotExist_Success() { var favorites = new Favorites("id", null); Assert.AreNotEqual(null, favorites); Assert.AreEqual(0, favorites.GetFavoritesItems().Count); var cart = new Cart(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now); cart.AddCartItem(new Product("11111111-1111-1111-1111-111111111111", "saleName", 200, 100, "saleDescription", int.MaxValue), 1); var cartItem = cart.GetCartItem("11111111-1111-1111-1111-111111111111"); favorites.AddFavoritesItem(cartItem); Assert.AreEqual(1, favorites.GetFavoritesItems().Count); }
public void GenerateReceipt_ShouldProduceExpectedReceiptFormat(int item1Quantity, string item1ProductName, decimal item1ShelfPrice, int item2Quantity, string item2ProductName, decimal item2ShelfPrice, string expectedResult) { // Arrange var mockLogger = new Mock <ILogger>(); var serviceProvider = RegisterServices(); var cart = new Cart(mockLogger.Object, serviceProvider) { CartNo = 1 }; cart.AddCartItem(item1Quantity, item1ProductName, item1ShelfPrice); cart.AddCartItem(item2Quantity, item2ProductName, item2ShelfPrice); // Act string acualResult = cart.GenerateReceipt(); // Assert acualResult = acualResult.Replace(Environment.NewLine, ""); Assert.Equal(expectedResult, acualResult); }
public void AddCartItem_ShouldAllowToAddManyCartItems(int nbCartItemToAdd) { // Arrange var mockLogger = new Mock <ILogger>(); var serviceProvider = RegisterServices(); var cart = new Cart(mockLogger.Object, serviceProvider); // Act for (int i = 1; i <= nbCartItemToAdd; i++) { cart.AddCartItem(1, "item " + i, 10); } // Assert Assert.Equal(nbCartItemToAdd, cart.ListCartItem.Count); DisposeServices(serviceProvider); }
public void TestGetCartItemByProducNameNotAdded() { var categoryType = CategoryWithDiscount.Clothing; var product = new Product(categoryType) { name = "Game Of Thrones", price = 100 }; var cartItem = new CartItem(product); cartItem.quantity = 10; var cart = new Cart(DiscountType.FixedDiscount, 100); cart.AddCartItem(cartItem); cart.GetCartItem("abc").Should().BeNull(); }
public void ListCartItemProductName() { var categoryType = CategoryWithDiscount.Clothing; var product = new Product(categoryType) { name = "Game Of Thrones", price = 100 }; var cartItem = new CartItem(product); cartItem.quantity = 10; var cart = new Cart(DiscountType.FixedDiscount, 100); cart.AddCartItem(cartItem); cart.ListCartItemProductName().Find(x => x == product.name).Should().Be("Game Of Thrones"); }
public void AddCartItem_ShouldSetPropertiesCorrectly(int quantity, string productName, decimal shelfPrice) { // Arrange var mockLogger = new Mock <ILogger>(); var serviceProvider = RegisterServices(); var cart = new Cart(mockLogger.Object, serviceProvider); // Act var cartItem = cart.AddCartItem(quantity, productName, shelfPrice); // Assert Assert.Equal(quantity, cartItem.Quantity); Assert.Equal(productName, cartItem.Product.ProductName); Assert.Equal(shelfPrice, cartItem.ShelfPrice); DisposeServices(serviceProvider); }
public void TestRemoveCartItem() { var categoryType = CategoryWithDiscount.Clothing; var product = new Product(categoryType) { name = "Game Of Thrones", price = 100 }; var cartItem = new CartItem(product); cartItem.quantity = 10; var cart = new Cart(DiscountType.FixedDiscount, 100); cart.AddCartItem(cartItem); cart.RemoveCartItem("Game Of Thrones"); cart.cartItemList.Count.Should().Be(0); }
public void LogReceipt_ShouldCallLoggerWithProductInfo() { // Arrange var mockLogger = new Mock <ILogger>(); mockLogger.Setup(mock => mock.Log(It.IsAny <String>())); var serviceProvider = RegisterServices(); var cart = new Cart(mockLogger.Object, serviceProvider); var productName = "book"; cart.AddCartItem(1, productName, 20); // Act cart.LogReceipt(); // Assert mockLogger.Verify(mock => mock.Log(It.Is <string>(s => s.Contains(productName))), Times.Once); }
protected override void Seed(ShoppingContext context) { // Users IList <User> users = new List <User>(); User kurt = new User("Kurt", "Hansen", "*****@*****.**", "Imaginative Street 123, 4000 Fantasy World"); users.Add(kurt); foreach (User user in users) { context.Users.Add(user); } // Items IList <Item> items = new List <Item>(); Item datterinoTomater = new Item("Datterino tomater", "Økologiske datterino tomater", 21.00m, "mad,frugtOgGrønt,grøntsager"); Item vildmoseKartofler = new Item("Vildmose kartofler", "Miniature kartofler dyrket i Nordjylland", 20.00m, "mad,frugtOgGrønt,grøntsager"); Item roastbeef = new Item("Roastbeef", "Af tyksteg", 210.00m, "mad,kød,oksekød"); Item oksetyndsteg = new Item("Oksetyndsteg", "Lækker, lækker oksetyndsteg til en sulten mavse", 299.00m, "mad,kød,oksekød"); Item kulmulefilet = new Item("Kulmulefilet", "Kulmulefilet med skind (merluccius merluccius)", 160.00m, "mad,fisk,fileterOgFars"); Item jerseyLetmælk = new Item("JerseyLetmælk", "Irmas ækologiske mælk fra ko", 12.00m, "mad,mejeri,mælkOgFløde"); Item jomfruhummer = new Item("Jjomfruhummer", "De har lange organer med muskuløse haler, og bor i sprækker eller huler på havbunden", 450.00m, "mad,fisk,fileterOgFars"); Item kærnemælk = new Item("Kærnemælk", "Kærnemælk henviser til en række af mælkedrikke. Oprindeligt kærnemælk var væsken efterladt efter kærning smør ud af fløde", 6.95m, "mad,mejeri,mælkOgFløde"); Item chokoRugbrødsboller = new Item("Choko rugbrødsboller", "Super lækre chokoladefyldte rugbrødsboller", 40.00m, "mad,brødOgKager,rugbrød"); Item carbernetSauvignon = new Item("Carbernet Sauvignon", "Denne vin stammer fra Los Morros ejendom i Maipo-dalen, der er den første vindyrknings dal i Chile til at blive internationalt anerkendt for sin fremragende Cabernet Sauvignon", 129.95m, "mad,vin,rødvin"); Item hyldebærSaft = new Item("Hyldebær saft", "Juice er en væske (drik), der naturligt findes i frugt og grøntsager", 21.95m, "mad,drikkevarer,juiceSaftOgMost"); Item colafantasi = new Item("Colafantasi", "Dejlig sukkerfyldt væske", 14.95m, "mad,drikkevarer,juiceSaftOgMost"); Item hvedemel = new Item("Hvedemel", "Mel er et pulver fremstillet ved formaling af ubehandlede korn eller andre frø eller rødder", 16.00m, "mad,kolonial,bagning"); Item nøddemix = new Item("Nøddemix", "En nød er en frugt, der består af en hård skal og en frø, som er generelt spiselige", 23.00m, "mad,kolonial,bagning"); Item chokoladetærte = new Item("Chokoladetærte", "Dejlig chokoladetærte", 32.95m, "mad,kolonial,bagning"); Item millionbøf = new Item("Millionbøf", "Med kartoffelmos", 18.75m, "mad,frost,middagsretter"); Item finskSødLakrids = new Item("Finsk sød lakrids", "Lakrids er roden af Glycyrrhiza glabra, hvorfra en sød smag kan udvindes", 26.00m, "mad,kiosk,slik"); Item brystkarameller = new Item("Brystkarameller", "Bolcher som i gamle dage", 29.95m, "mad,kiosk,slik"); Item vitaminC = new Item("VitaminC", "Vitamin C eller L-ascorbinsyre, eller blot ascorbat (anionen af ascorbinsyre), er et vigtigt næringsstof for mennesker og visse andre dyrearter", 65.00m, "mad,pleje,vitaminerOgKosttilskud"); Item proteinbar = new Item("Proteinbar", "Bliv bomstærk", 20.00m, "mad,pleje,vitaminerOgKosttilskud"); Item toiletpapir = new Item("Toiletpapir", "3-lags papir fremstillet af ny papirmasse bleget med brintoverilte.", 35.00m, "husholdning,køkkenrulleOgToiletpapir"); Item granaPadano = new Item("Grana Padano", "Den dufter af parmesan. Den knaser, har smag af salt og ægte umamismag, der bliver hængende i munden længe efter.", 54.00m, "mad,mejeri,ost"); Item landana = new Item("Landana", "Smagfuld, blød og cremet. Naturligt lagret på træ. Produceret efter gamle hollandske ostetraditioner. 100% mælk fra fritgående køer.", 44.95m, "mad,mejeri,ost"); Item flødeost = new Item("Flødeost", "m. hvidløg.", 9.95m, "mad,mejeri,ost"); Item brieMarcillat = new Item("Brie Marcillat", "Plasir de Roi Brie.", 11.95m, "mad,mejeri,ost"); Item thybo = new Item("Thybo", "Dejlig åååst.", 50.00m, "mad,mejeri,ost"); Item flødehavarti = new Item("Flødehavarti", "38% fedt.", 17.95m, "mad,mejeri,ost"); Item gammelOlesFar = new Item("Gammel Oles far", "Føj for satan den er ulækker den her.", 62.95m, "mad,mejeri,ost"); items.Add(datterinoTomater); items.Add(vildmoseKartofler); items.Add(roastbeef); items.Add(oksetyndsteg); items.Add(kulmulefilet); items.Add(jerseyLetmælk); items.Add(kærnemælk); items.Add(jomfruhummer); items.Add(chokoRugbrødsboller); items.Add(carbernetSauvignon); items.Add(hyldebærSaft); items.Add(colafantasi); items.Add(hvedemel); items.Add(nøddemix); items.Add(chokoladetærte); items.Add(millionbøf); items.Add(finskSødLakrids); items.Add(brystkarameller); items.Add(vitaminC); items.Add(proteinbar); items.Add(toiletpapir); items.Add(granaPadano); items.Add(landana); items.Add(flødeost); items.Add(brieMarcillat); items.Add(thybo); items.Add(flødehavarti); items.Add(gammelOlesFar); foreach (Item item in items) { context.Items.Add(item); } // Carts IList <Cart> carts = new List <Cart>(); //kurt cart 1 - open Cart cart1 = new Cart(kurt); cart1.AddCartItem(new CartItem(hvedemel, hvedemel.Price, 4)); cart1.AddCartItem(new CartItem(jerseyLetmælk, jerseyLetmælk.Price, 6)); cart1.AddCartItem(new CartItem(nøddemix, nøddemix.Price, 2)); cart1.AddCartItem(new CartItem(millionbøf, millionbøf.Price, 1)); cart1.AddCartItem(new CartItem(vitaminC, vitaminC.Price, 1)); carts.Add(cart1); //kurt cart 2 - open Cart cart2 = new Cart(kurt); cart2.AddCartItem(new CartItem(toiletpapir, toiletpapir.Price, 35)); cart2.AddCartItem(new CartItem(proteinbar, proteinbar.Price, 6)); carts.Add(cart2); //kurt cart 3 - closed Cart cart3 = new Cart(kurt); cart3.AddCartItem(new CartItem(flødeost, flødeost.Price, 1)); cart3.AddCartItem(new CartItem(millionbøf, millionbøf.Price, 1)); cart3.AddCartItem(new CartItem(oksetyndsteg, oksetyndsteg.Price, 1)); cart3.AddCartItem(new CartItem(thybo, thybo.Price, 2)); cart3.AddCartItem(new CartItem(chokoladetærte, chokoladetærte.Price, 2)); cart3.CheckedOutAt = DateTime.UtcNow.AddHours(2); carts.Add(cart3); foreach (Cart cart in carts) { context.Carts.Add(cart); } base.Seed(context); }
public void Test_Total_Price_Should_Be_100_When_1x_Potter_EP1_Is_In_Cart() { // arrange _cart.AddCartItem(new CartItem { ID = 1, Name = "Harry Potter (Book 1)", Price = 100, Count = 1 }); // act int actual = _cart.GetTotalPrice(); int expected = 100; // assert Assert.AreEqual(expected, actual); }