public void DeveryScenario_Should_Work() { // Arrange var shoppingCart = new ShoppingCart(1); var category = new FirstCategory(1, "Food"); var apple = new FirstProduct(1, "Apple", 100, category); var almonds = new FirstProduct(1, "Almonds", 150, category); shoppingCart.AddProduct(apple, 3); shoppingCart.AddProduct(almonds); var campaign1 = new CampaignDiscountByPercentage(1, "Food Campaign 1", 20, category, 3); var campaign2 = new CampaignDiscountByPercentage(2, "Food Campaign 2", 50, category, 5); var campaign3 = new CampaignDiscountByAmount(3, "Food Campaign 3", 5, category, 0); var campaigns = new List <CampaignBase>() { campaign1, campaign2, campaign3 }; var coupon = new CouponDiscountByPercentage(1, 100, 10); shoppingCart.AddCoupon(coupon); var delivery = new DeliverDynamic((decimal)2.99, 5, 3); // Act shoppingCart.ApplyDiscounts(campaigns); shoppingCart.ApplayDelivery(delivery); // Assert Assert.True(shoppingCart._isCouponApplied == true && shoppingCart._isCampaignApplied == true); }
public void Total_ShouldReturnCorrectValue_WhenProductsRemoved() { // Arrange var shoppingCart = new ShoppingCart(); var product1 = new Mock <IProductModel>(); product1.SetupGet(x => x.Price).Returns(10.0m); product1.SetupGet(x => x.Id).Returns(1); var product2 = new Mock <IProductModel>(); product2.SetupGet(x => x.Price).Returns(5.1m); product1.SetupGet(x => x.Price).Returns(10.0m); product2.SetupGet(x => x.Id).Returns(2); // Act shoppingCart.AddProduct(product1.Object); shoppingCart.AddProduct(product2.Object); shoppingCart.RemoveProduct(product2.Object); //Assert Assert.AreEqual(10.0m, shoppingCart.Total); Assert.AreEqual(1, shoppingCart.Products.Count); }
static void Main(string[] args) { Product p1 = new Product(1, "Red Dead Redemption 2", 399f); Product p2 = new Product(2, "GTA V", 295.50f); Product p3 = new Product(3, "Bully", 170.32f); Product p4 = new Product(4, "Last of Us 2", 270.32f); ShoppingCart cart = new ShoppingCart(); cart.AddProduct(p1); cart.AddProduct(p2); cart.AddProduct(p3); cart.AddProduct(p4); cart.ShowProduct(); Product p5 = new Product(5, "GTA San Andreas", 120f); cart.AlterItem(1, p5); cart.ShowProduct(); }
static void Main(string[] args) { Category category1 = new Category("category1"); Category category2 = new Category("category2"); Product product1 = new Product("Product1", 100, category1); Product product2 = new Product("Product2", 50, category1); Product product3 = new Product("Product3", 40, category2); ICampaign rateCampaign = new RateCampaign(20.0, 5, category1); ICampaign amountCampaing = new AmountCampaign(10.0, category2); IShoppingCart shoppingcart = new ShoppingCart(new DeliveryCost(1.5, 10)); shoppingcart.AddProduct(product1, 12); shoppingcart.AddProduct(product2, 10); shoppingcart.AddProduct(product3, 11); List <ICampaign> campaigns = new List <ICampaign>(); campaigns.Add(rateCampaign); campaigns.Add(amountCampaing); ICoupon rateCoupon = new RateCoupon(5.0, 3); shoppingcart.AddCampaign(campaigns); shoppingcart.AddCoupon(rateCoupon); double totalAmount = shoppingcart.GetTotalAmountAfterDiscounts(); System.Console.WriteLine(shoppingcart.Print()); System.Console.ReadLine(); }
public void AddItems_3Items_2UniqueProducts_GetsQuantityANDPriceCalculations() { //arrange ShoppingCart shoppingCart = new ShoppingCart(); var items = new Product[] { new Product { ID = 1, Price = 10, Name = "Product1" }, new Product { ID = 2, Price = 100, Name = "Product2" }, new Product { ID = 1, Price = 10, Name = "Product1" } }; //act shoppingCart.AddProduct(items[0], 1); shoppingCart.AddProduct(items[1], 1); shoppingCart.AddProduct(items[2], 1); //assert //Assert.IsTrue(shoppingCart.QuantityAllItems == 3, "wrong quantity of all tems"); //Assert.IsTrue(shoppingCart.QuantityUniqueItems == 2, "wrong quantity of unique tems"); //Assert.IsTrue(shoppingCart.TotalCosts == 120, "wrong total costs"); }
//René private void buttonProduct_Click(object sender, EventArgs e) { var cusButton = sender as CustomButton; if (cusButton != null) { var product = cusButton.Obj as Product; if (product != null) { ShoppingCartItem item; bool isNewProduct; int amount; if (int.TryParse(tb_NumpadDisplay.Text, out amount)) { item = _shoppingCart.AddProduct(product, out isNewProduct, amount); } else { item = _shoppingCart.AddProduct(product, out isNewProduct); } if (isNewProduct) { GenerateOrderPosition(item); } tb_NumpadDisplay.Clear(); } } }
public void ShoppingCartAddProductTest() { var products = new List <IProduct>(); products.Add(new Product { Name = "Test", UnitPrice = 1 }); products.Add(new Product { Name = "Test2", UnitPrice = 2 }); var productStorage = new ProductStorage(products); var discountStorage = new DiscountStorage(new List <IDiscount>()); //checking that by default the cart is empty var shoppingCart = new ShoppingCart(productStorage, discountStorage); var testItems = shoppingCart.GetShoppingCartItems(); Assert.IsNotNull(testItems); Assert.AreEqual(0, testItems.Count); //basic add functionality test shoppingCart.AddProduct("Test", 1); shoppingCart.AddProduct("Test2", 1); testItems = shoppingCart.GetShoppingCartItems(); Assert.IsNotNull(testItems); var testItem = testItems.FirstOrDefault(x => x.Product.Name == "Test"); TestUtil.AssertEqualShoppingCartItems(testItem, new ShoppingCartItem { Product = new Product { Name = "Test", UnitPrice = 1 }, Quantity = 1 }); var testItem2 = testItems.FirstOrDefault(x => x.Product.Name == "Test2"); TestUtil.AssertEqualShoppingCartItems(testItem2, new ShoppingCartItem { Product = new Product { Name = "Test2", UnitPrice = 2 }, Quantity = 1 }); //items grouping test shoppingCart.AddProduct("Test", 5); testItems = shoppingCart.GetShoppingCartItems(); testItem = testItems.FirstOrDefault(x => x.Product.Name == "Test"); TestUtil.AssertEqualShoppingCartItems(testItem, new ShoppingCartItem { Product = new Product { Name = "Test", UnitPrice = 1 }, Quantity = 6 }); testItem2 = testItems.FirstOrDefault(x => x.Product.Name == "Test2"); TestUtil.AssertEqualShoppingCartItems(testItem2, new ShoppingCartItem { Product = new Product { Name = "Test2", UnitPrice = 2 }, Quantity = 1 }); }
static void Main(string[] args) { // example run of the Shopping Cart using the exact data from the task var products = new List <IProduct>() { new Product { Name = "butter", UnitPrice = 0.80M }, new Product { Name = "milk", UnitPrice = 1.15M }, new Product { Name = "bread", UnitPrice = 1M } }; var discounts = new List <IDiscount>() { new CombinationDiscount("butter", 2, "bread", 0.50M), new FreeProductDiscount("milk", 4) }; var shoppingCart = new ShoppingCart(new ProductStorage(products), new DiscountStorage(discounts)); Console.WriteLine(); Console.WriteLine("Scenario 1:"); shoppingCart.AddProduct("bread", 1); shoppingCart.AddProduct("butter", 1); shoppingCart.AddProduct("milk", 1); shoppingCart.CalculateTotal(); shoppingCart = new ShoppingCart(new ProductStorage(products), new DiscountStorage(discounts)); Console.WriteLine(); Console.WriteLine("Scenario 2:"); shoppingCart.AddProduct("bread", 2); shoppingCart.AddProduct("butter", 2); shoppingCart.CalculateTotal(); shoppingCart = new ShoppingCart(new ProductStorage(products), new DiscountStorage(discounts)); Console.WriteLine(); Console.WriteLine("Scenario 3:"); shoppingCart.AddProduct("milk", 4); shoppingCart.CalculateTotal(); shoppingCart = new ShoppingCart(new ProductStorage(products), new DiscountStorage(discounts)); Console.WriteLine(); Console.WriteLine("Scenario 4:"); shoppingCart.AddProduct("bread", 1); shoppingCart.AddProduct("butter", 2); shoppingCart.AddProduct("milk", 8); shoppingCart.CalculateTotal(); Console.ReadLine(); }
public void Add_To_ShoppingCart() { Product product = new Product() { ProductCode = "B1", Description = "Banana", Quantity = 2, UnitPrice = 7.65M }; _shoppingCart.AddProduct(product); Assert.AreEqual(2, _shoppingCart.Products.Count); }
public void When_removing_one_ex_number_will_decrease() { var sut = new ShoppingCart(); sut.AddProduct(1010, "Äpple", 1, 12.2m); sut.AddProduct(1011, "Päron", 2, 13.2m); sut.AddProduct(1011, "Päron", 3, 13.2m); sut.RemoveProduct(1011, 1); Assert.AreEqual(4, sut.GetItem(1011).Antal); }
public void When_adding_product_already_in_cart_then_count_for_cartitem_should_increase() { var sut = new ShoppingCart(); sut.AddProduct(1010, "Äpple", 1, 12.2m); sut.AddProduct(1011, "Päron", 2, 13.2m); sut.AddProduct(1011, "Päron", 3, 13.2m); Assert.AreEqual(5, sut.GetItem(1011).Antal); }
public void When_adding_product_not_already_in_cart_then_number_of_items_should_increase_by_one() { var sut = new ShoppingCart(); sut.AddProduct(1010, "Äpple", 1, 12.2m); int antal = sut.GetUniqueProductsCount(); sut.AddProduct(1011, "Päron", 2, 13.2m); Assert.AreEqual(antal + 1, sut.GetUniqueProductsCount()); }
public void When_adding_product_total_should_update_correctly() { var sut = new ShoppingCart(); sut.AddProduct(1010, "Äpple", 1, 12.2m); var total = sut.Total(); sut.AddProduct(1011, "Päron", 1, 13.2m); Assert.AreEqual(total + 13.2m, sut.Total()); }
public void ReturnCorrectTotalAmount_WhenTotalPriceIsCalled() { var cart = new ShoppingCart(); var product = new Shampoo("Pesho", "Nivea", 2.5m, GenderType.Men, 500, UsageType.EveryDay); cart.AddProduct(product); cart.AddProduct(product); Assert.AreEqual(2500m, cart.TotalPrice()); }
public void Step2_Add_Five_DoveSoaps_Calculates_Correct_ShoppingCart_TaxExcludedTotal() { var shoppingCart = new ShoppingCart(); shoppingCart.AddProduct(Helper.CreateDoveSoap()); shoppingCart.AddProduct(Helper.CreateDoveSoap()); shoppingCart.AddProduct(Helper.CreateDoveSoap()); shoppingCart.AddProduct(Helper.CreateDoveSoap()); shoppingCart.AddProduct(Helper.CreateDoveSoap()); Assert.AreEqual(199.95, shoppingCart.TaxExcludedTotal, "When multiple items are added to the cart, the cart should reflect the correct tax exclusive total."); }
public void AddProductWhenProductIsValid() { // Arrange var cart = new ShoppingCart(); var productToAdd = new Mock <Product>(MockBehavior.Loose, new object[] { "name", "brand", 10m, GenderType.Men }); // Act cart.AddProduct(productToAdd.Object); cart.AddProduct(productToAdd.Object); //Assert Assert.AreEqual(2, cart.ProductList.Count); }
public void AddProductWhenProductIsValid() { // Arrange var cart = new ShoppingCart(); var productToAdd = new Mock <IProduct>(); // Act cart.AddProduct(productToAdd.Object); cart.AddProduct(productToAdd.Object); //Assert Assert.AreEqual(2, cart.ProductList.Count); }
public void ShoppingCartAddProductValidationTest() { var products = new List <IProduct>(); products.Add(new Product { Name = "Test", UnitPrice = 1 }); products.Add(new Product { Name = "Test2", UnitPrice = 2 }); var productStorage = new ProductStorage(products); var discountStorage = new DiscountStorage(new List <IDiscount>()); var shoppingCart = new ShoppingCart(productStorage, discountStorage); //add unknown product try { shoppingCart.AddProduct("Test3", 1); Assert.Fail(); } catch (Exception e) { Assert.IsInstanceOfType(e, typeof(ArgumentException)); } //add zero quantity try { shoppingCart.AddProduct("Test", 0); Assert.Fail(); } catch (Exception e) { Assert.IsInstanceOfType(e, typeof(ArgumentException)); } //add negative quantity try { shoppingCart.AddProduct("Test2", -3); Assert.Fail(); } catch (Exception e) { Assert.IsInstanceOfType(e, typeof(ArgumentException)); } }
public void When_removing_one_ex_and_product_is_not_in_cart_nothing_happens() { var sut = new ShoppingCart(); sut.AddProduct(1010, "Äpple", 1, 12.2m); sut.AddProduct(1011, "Päron", 2, 13.2m); sut.AddProduct(1011, "Päron", 3, 13.2m); var total = sut.Total(); sut.RemoveProduct(1012, 1); Assert.AreEqual(total, sut.Total()); }
public void Checkout_TotalWithNoDiscount() { // Arrange var sut = new ShoppingCart(new List <Discount>()); // Act sut.AddProduct(new Product("Milk", 1.30M)); sut.AddProduct(new Product("Beans", .80M)); sut.Checkout(); // Assert Assert.Equal(2.10M, sut.SubTotal); Assert.Equal(2.10M, sut.Total); }
public void GetProductQuantityOfCategory_ShouldReturnCorrect_IfThereIsSeventeenItemsInSameCategory() { Category electronicCategory = new Category(CategoryType.Electronic); Product television = new Product("Television", 800, electronicCategory); Product telephone = new Product("Telephone", 500, electronicCategory); Product smartBand = new Product("SmartBand", 300, electronicCategory); ShoppingCart shoppingCart = new ShoppingCart(); shoppingCart.AddProduct(television, 2); shoppingCart.AddProduct(telephone, 5); shoppingCart.AddProduct(smartBand, 10); var productQuantityOfCategory = shoppingCart.GetProductQuantityOfCategory(electronicCategory); Assert.Equal(17u, productQuantityOfCategory); }
public void ApplyCoupon_ShouldApplyDiscount_IfMinimumAmountSatisfied(DiscountType discountType, decimal expected) { Category electronicCategory = new Category(CategoryType.Electronic); Category foodCategory = new Category(CategoryType.Food); Product television = new Product("Television", 1000, electronicCategory); Product apple = new Product("Apple", 5, foodCategory); ShoppingCart shoppingCart = new ShoppingCart(); Coupon coupon = CouponFactory.GenerateCoupon(4000, 20, discountType); shoppingCart.AddProduct(television, 4); shoppingCart.AddProduct(apple, 200); shoppingCart.ApplyCoupon(coupon); Assert.Equal(expected, shoppingCart.DiscountedTotalAmount); }
public void Checkout_TotalWithDiscount() { // Arrange var sut = new ShoppingCart(LoadData.Discounts); // Act sut.AddProduct(new Product("Apple", 1.30M)); sut.AddProduct(new Product("Beans", .80M)); sut.Checkout(); // Assert Assert.Equal(2.10M, sut.SubTotal); Assert.Single(sut.DiscountsApplied); Assert.Equal(.13M, sut.DiscountsApplied.First().DiscountAmount); Assert.Equal(1.97M, sut.Total); }
public void Cart_GetTotal_TotalAmount() { ShoppingCart cart = new ShoppingCart(); double expectedSubtotal = 4.97 * 1.06; // Assuming 6% sales tax Product testItem = new Product("Holland, 1945", "Ska", "Netural Milk Hotel", 2.99); Product testItem2 = new Product("Ruler of Everything", "Rich", "Tally Hall", 0.99); cart.AddProduct(testItem, 1); cart.AddProduct(testItem2, 2); double actualSubTotal = cart.Total; // Assert Assert.Equal(expectedSubtotal, actualSubTotal, 2); }
public static result addCartByProductId(string id, string name, string quantity, string sale) { CNManagerDataContext db = new CNManagerDataContext(); clsProcess cl = new clsProcess(); var r = new result(); try { ShoppingCart cart = (ShoppingCart)HttpContext.Current.Session["Cart"]; string idPro = id; if (cart.ReturnID(idPro)) { cart.Update(idPro, cart.GetCurrentQuantity(idPro)); HttpContext.Current.Session["cart_count"] = r._content = cart.GetTotalQuantity.ToString(); r._mess = "Đã cập nhật số lượng sản phẩm [" + name + "] vào giỏ hàng"; } else { var pro = db.sp_web_cn_loadProductDetail(branchTypeId.ToString(), int.Parse(id.Trim())).FirstOrDefault(); cart.AddProduct(id.ToString(), cl.ConvertToUnSign(pro.ProductName), pro.ProductCode, pro.ProductName, (pro.Image == null || pro.Image == "" ? "/image/image-coming-soon.png" : pro.Image), int.Parse(quantity), pro.Price.Value, 0, pro.Score != null ? pro.Score.Value : 0, pro.BrandName, pro.CountryName, sale == "1" ? true : false); HttpContext.Current.Session["cart_count"] = r._content = cart.GetTotalQuantity.ToString(); r._mess = "Đã thêm sản phẩm [" + name + "] vào giỏ hàng"; } } catch (Exception ax) { r._mess = ax.Message; } return(r); }
//Shopping Cart public void AddItemToCart(Product product) { sc.AddProduct(product); //CartNumber++; OnPropertyChanged("CartNumber"); OnPropertyChanged("CartTotal"); }
public void GetNumberOfDeliveries_ShouldReturnCorrectValue_IfThereIsTwoCategory() { Category electronicCategory = new Category(CategoryType.Electronic); Category clothing = new Category(CategoryType.Clothing); Product television = new Product("Television", 800, electronicCategory); Product telephone = new Product("Telephone", 500, electronicCategory); Product weddingDress = new Product("Wedding Dress", 400, clothing); ShoppingCart shoppingCart = new ShoppingCart(); shoppingCart.AddProduct(television, 2); shoppingCart.AddProduct(telephone, 5); shoppingCart.AddProduct(weddingDress, 10); var numberOfDeliveries = shoppingCart.GetNumberOfDeliveries(); Assert.Equal(2, numberOfDeliveries); }
public void ProductSubtotalGetsUpdatedAccordingly_WhenVariousProductsInShoppingCart_Test() { //Arrange var shoppingCart = new ShoppingCart("Loyal"); var product = new Product1(4); var product1 = new Product2(2); shoppingCart.AddProduct(product); shoppingCart.AddProduct(product1); //Act var expected = product.ProductPrice * 4 + product1.ProductPrice * 2; //Assert Assert.AreEqual(expected, shoppingCart.InvoiceSubtotal()); }
public void AddProduct_WhenAddingNullProduct_ShouldThrowNullReferenceException() { IProduct toAdd = null; var shoppingCart = new ShoppingCart(); Assert.Throws <NullReferenceException>(() => shoppingCart.AddProduct(toAdd)); }
public void ThrowWhenTheProductIsNull() { // Arrange, Act var cart = new ShoppingCart(); // Act, Assert Assert.ThrowsException <ArgumentNullException>(() => cart.AddProduct(null)); }