public void TestApplyDiscount()
        {
            IDiscounter target = getTestObject();
            decimal     total  = 100M;

            var discountedTotal = target.ApplyDiscount(total);

            Assert.AreEqual(total * 0.8M, discountedTotal);
        }
Esempio n. 2
0
 /// <summary>
 /// Add a new Coupon to this store, coupons applicable to items can only have one
 /// </summary>
 /// <param name="item">The Coupon to be added</param>
 public void Add(IDiscounter <ItemBase> item)
 {
     if (item.GetType() == typeof(PercentOffCoupon))
     {
         percentOff = (PercentOffCoupon)item;
         if (percentOff.percent > 100 || percentOff.percent < 0)
         {
             percentOff.percent = 0;
         }
         return;
     }
     if (item.GetType() == typeof(BxGyCoupon))
     {
         var coupon         = (BxGyCoupon)item;
         var existingCoupon = itemDiscounts.FirstOrDefault(i => i.itemName == coupon.itemName);
         if (existingCoupon != null)
         {
             itemDiscounts.Remove(existingCoupon);
         }
         itemDiscounts.Add(coupon);
     }
 }
Esempio n. 3
0
 public Checkout(IPriceTotalizer priceTotalizer, IDiscounter discounter)
 {
     _priceTotalizer = priceTotalizer;
     _discounter = discounter;
 }
Esempio n. 4
0
 public Checkout(IDiscounter discounter, IPriceFinder priceFinder)
 {
     _discounter = discounter;
     _priceFinder = priceFinder;
     _total = 0;
 }
 public Checkout(IDiscounter discounter, IPriceFinder priceFinder)
 {
     _discounter  = discounter;
     _priceFinder = priceFinder;
     _total       = 0;
 }
Esempio n. 6
0
 public PriceCalculator(IDiscounter discounter)
 {
     _discounter = discounter;
 }
Esempio n. 7
0
 /// <summary>
 /// Apply a discount to this register
 /// </summary>
 /// <param name="discount">The discount to be applied</param>
 public void ApplyDiscount(IDiscounter <ItemBase> discount)
 {
     couponStore.Add(discount);
 }
Esempio n. 8
0
 public ShoppingWithHuaBei(IPriceCounter priceCounter, IDiscounter discounter) : base(priceCounter, discounter)
 {
 }
Esempio n. 9
0
 public OnlineShopping(IPriceCounter priceCounter, IDiscounter discounter)
 {
     this.counter    = priceCounter;
     this.discounter = discounter;
 }
Esempio n. 10
0
 public LinqValueCalculator(IDiscounter discounter)
 {
     m_discounter = discounter;
 }
 public PriceCalculator(IDiscounter discounter)
 {
     _discounter = discounter;
 }
Esempio n. 12
0
 public ShoppingBasket(IDiscounter discounter, Order order)
 {
     _discounter = discounter;
     Order       = order;
 }