public void Setup() { var freeMilkDiscount = new FreeMilkDiscount(); var butterAndBreadDiscount = new ButterAndBreadDiscount(); _basketCalculator = new BasketCalculator(freeMilkDiscount, butterAndBreadDiscount); _testButter = new Product { Id = 1, Name = "Butter", DiscountTag = DiscountTag.Butter, Price = 0.80m }; _testMilk = new Product { Id = 2, Name = "Milk", DiscountTag = DiscountTag.Milk, Price = 1.15m }; _testBread = new Product { Id = 3, Name = "Bread", DiscountTag = DiscountTag.Bread, Price = 1.00m }; }
public void Setup() { _basketCalculator = new BasketCalculator(); _testButter = new Product { Id = 1, Name = "Butter", DiscountTag = DiscountTag.Butter, Price = 0.80m }; _testMilk = new Product { Id = 2, Name = "Milk", DiscountTag = DiscountTag.Milk, Price = 1.15m }; _testBread = new Product { Id = 3, Name = "Bread", DiscountTag = DiscountTag.Bread, Price = 1.00m }; }
public void GetDiscountedType() { string[] basket = new[] { "1", "1", "2" }; BasketCalculator basketCalculator = new BasketCalculator(basket); var discountedType = basketCalculator.GetDiscountedType(); Assert.True(discountedType[0] == 1); }
public void GetFinalAmount1() { string[] basket = new[] { "1", "1", "2", "2", "3", "3", "4", "5" }; BasketCalculator basketCalculator = new BasketCalculator(basket); var finalAmount = basketCalculator.GetFinalAmount(); Assert.True(finalAmount == 51.20m); }
public void GetFinalAmount2() { string[] basket = new[] { "1", "1", "2" }; BasketCalculator basketCalculator = new BasketCalculator(basket); var finalAmount = basketCalculator.GetFinalAmount(); Assert.True(finalAmount == 23.2m); }
public string Process(string[] args) { // read input from user IBasketInputReader basketInputReader = new BasketInputReader(); ShoppingBasket shoppingBasket = basketInputReader.CreateBasketFromInput(args, _productsDL); // calculate snopping basket price IBasketCalculator basketCalculator = new BasketCalculator(_specialOffersDL); CalculatedPrice calculatedPrice = basketCalculator.CalculatePrice(shoppingBasket); // write output IBasketPriceWriter basketPriceWriter = new BasketPriceWriter(); return(basketPriceWriter.GetOutputString(calculatedPrice)); }
public void CalculateBasketWithBeansAndBreadDiscount() { var basket = new Basket(); basket.AddBasketItem(Products.GetProduct("Beans")); basket.AddBasketItem(Products.GetProduct("Beans")); basket.AddBasketItem(Products.GetProduct("Bread")); var calculator = new BasketCalculator(Products, Promotions, basket); calculator.CalculateBasket(new DateTime(2020, 6, 18)); calculator.SubTotal.ShouldBe(new decimal(2.10)); calculator.DiscountsItems.Count.ShouldBe(1); calculator.DiscountsItems[0].Amount.ShouldBe(new decimal(.40)); calculator.Total.ShouldBe(new decimal(1.70)); }
public void CalculateBasketWithOutAppleDiscountAsPromotionExpired() { var basket = new Basket(); basket.AddBasketItem(Products.GetProduct("Apples")); basket.AddBasketItem(Products.GetProduct("Milk")); basket.AddBasketItem(Products.GetProduct("Bread")); var calculator = new BasketCalculator(Products, Promotions, basket); //Use an date in the future after promotion ended calculator.CalculateBasket(new DateTime(2021, 6, 18)); calculator.SubTotal.ShouldBe(new decimal(3.10)); calculator.DiscountsItems.Count.ShouldBe(0); calculator.Total.ShouldBe(new decimal(3.10)); }
protected void Display_ViewBaskets(bool WithEdit) { Ektron.Cms.Commerce.Basket currentBasket; long basketId = 0; CouponApi _CouponApi = new CouponApi(); BasketCalculatorData basketCouponData; if ((Request.QueryString["basketid"] != null) && Request.QueryString["basketid"] != "") { basketId = Convert.ToInt64(Request.QueryString["basketid"]); } if (basketId > 0) { HttpBrowserCapabilities browser = Request.Browser; Ektron.Cms.Framework.Context.CmsContextService context = new Ektron.Cms.Framework.Context.CmsContextService(); if (browser.Type.Contains("IE") && browser.MajorVersion >= 9) { // work around to prevent errors in IE9 when it destroys native JS objects // see http://msdn.microsoft.com/en-us/library/gg622929%28v=VS.85%29.aspx uxViewBasketIframe.Attributes.Add("src", "about:blank"); } else { uxViewBasketIframe.Attributes.Add("src", context.SitePath + "customers.aspx?action=viewbasket&basketid=" + basketId + "&customerid=" + m_iCustomerId + "&thickox=true&height=300&width=700&modal=true&EkTB_iframe=true"); } uxDialog.Title = m_refMsg.GetMessage("lbl view basket"); currentBasket = basketApi.GetItem(basketId); if ((currentBasket != null) && currentBasket.Items.Count > 0) { dg_viewbasket.DataSource = currentBasket.Items; dg_viewbasket.DataBind(); BasketCalculator basketCalc = new BasketCalculator(currentBasket, this.m_refContentApi.RequestInformationRef); basketCouponData = _CouponApi.CalculateBasketCoupons(basketId); if (basketCouponData.BasketCoupons.Count > 0) { ltr_noitems.Text = "<hr/><table width=\"100%\">"; ltr_noitems.Text += "<tr><td align=\"right\" width=\"90%\">" + GetMessage("lbl coupon discount") + "</td><td align=\"right\">(" + Ektron.Cms.Common.EkFunctions.FormatCurrency(basketCouponData.TotalCouponDiscount, defaultCurrency.CultureCode) + ")</td></tr>"; ltr_noitems.Text += "<tr><td align=\"right\" width=\"90%\">" + GetMessage("lbl total") + ": </td><td align=\"right\">" + Ektron.Cms.Common.EkFunctions.FormatCurrency(basketCouponData.BasketTotal, defaultCurrency.CultureCode) + "</td></tr>"; ltr_noitems.Text += "</table>"; } } else { ltr_noitems.Text = this.GetMessage("lbl no items"); } } else { ltr_noitems.Text = this.GetMessage("lbl no items"); } }