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 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 AddCoupon_With_Invalid_Value_Throw_ArgumentException() { // Arrange var test = new ShoppingCart(1); // Act // Assert Assert.Throws <ArgumentException>(() => test.AddCoupon(null)); }
public void AddCoupon_ShouldWork() { // Arrange var test = new ShoppingCart(1); var coupon = new CouponDiscountByAmount(1, 1, 1); // Act test.AddCoupon(coupon); // Assert Assert.True(test._cartCoupons != null && test._cartCoupons.Contains(coupon)); }
public void AddCoupon_Should_Work() { // Arrange var shoppingCart = new ShoppingCart(1); var category = new FirstCategory(1, "test"); var product = new FirstProduct(1, "test", 100, category); var product2 = new FirstProduct(1, "test", 100, category); var product3 = new FirstProduct(1, "test", 100, category); shoppingCart.AddProduct(product); shoppingCart.AddProduct(product2); shoppingCart.AddProduct(product3); var coupon = new CouponDiscountByAmount(1, 100, 20); shoppingCart.AddCoupon(coupon); // Act shoppingCart.ApplyCoupon(); // Assert Assert.True(shoppingCart._isCouponApplied == true); }
static void Main(string[] args) { var shoppingCart = new ShoppingCart(1); var category = new FirstCategory(1, "Food"); var apple = new FirstProduct(1, "Apple", 100, category); var almonds = new FirstProduct(2, "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); Console.WriteLine("Indirim öncesi Tutar : " + shoppingCart.SumOfProducts); Console.WriteLine("Indirim sonrası Tutar : " + shoppingCart.TotalAmountAfterDiscount); Console.WriteLine("Kullanılan Kopon : " + shoppingCart._couponTotalDiscount); Console.WriteLine("Kampanya indirimi : " + shoppingCart._campaignMaxDiscount); var campaignsHasMaxDiscountByCategory = from c in shoppingCart._selectedProducts group c by c._category into ctg select ctg; foreach (var item in campaignsHasMaxDiscountByCategory) { var appliedCampaign = shoppingCart._appliedCampaigns.FirstOrDefault(x => x._category == item.Key); Console.Write(item.First()._category._title); if (appliedCampaign != null) { Console.Write(" uygulanan kampanya : " + appliedCampaign._calculatedDiscountAmount); } Console.WriteLine(); var produsctTypes = from c in item group c by c._id into prd select prd; foreach (var item2 in produsctTypes) { Console.WriteLine(item2.First()._title + " " + item2.Count() + " " + item2.Sum(x => x._price)); } } Console.WriteLine("Kargo maliyeti : " + shoppingCart._deliveryCost); Console.WriteLine("Toplam Maliyet Tutarı : " + shoppingCart.TotalySumAffterDelivery); Console.ReadLine(); }