ICoupon GetCoupon(Commerce.Data.SqlRepository.Coupon coupon) { ICoupon result = null; switch (coupon.CouponTypeID) { //PercentOffOrder case 1: result = new PercentOffOrderCoupon(coupon.PercentOff); break; //PercentOffItem case 2: result = new PercentOffItemCoupon(coupon.PercentOff, GetSplitArray(coupon.AppliesToProductCodes)); break; //AmountOffOrder case 3: result = new AmountOffOrderCoupon(coupon.AmountOff); break; //AmountOffItem case 4: result = new AmountOffItemCoupon(coupon.AmountOff, GetSplitArray(coupon.AppliesToProductCodes)); break; } return(result); }
public void PercentOffOrder_Coupon_Should_Have_Code_and_Apply_Method_That_Takes_Order() { Order order = GetTestOrder(); PercentOffOrderCoupon coupon = new PercentOffOrderCoupon(10); //this shouldn't fail coupon.ApplyCoupon(order); }
ICoupon GetCoupon(Commerce.Data.SqlRepository.Coupon coupon) { ICoupon result = null; switch (coupon.CouponTypeID) { //PercentOffOrder case 1: result = new PercentOffOrderCoupon(coupon.PercentOff); break; //PercentOffItem case 2: result = new PercentOffItemCoupon(coupon.PercentOff, GetSplitArray(coupon.AppliesToProductCodes)); break; //AmountOffOrder case 3: result = new AmountOffOrderCoupon(coupon.AmountOff); break; //AmountOffItem case 4: result = new AmountOffItemCoupon(coupon.AmountOff, GetSplitArray(coupon.AppliesToProductCodes)); break; } return result; }
public void Incentive_Should_Have_Code_Coupon_Expiration() { ICoupon coupon=new PercentOffOrderCoupon(10); Incentive i = new Incentive("XYZ", coupon, DateTime.Today.AddDays(1)); Assert.AreEqual("XYZ", i.Code); Assert.AreEqual(coupon, i.Coupon); Assert.IsFalse(i.IsExpired); }
public void PercentOffOrder_Coupon_Should_Reduce_Order_SubTotal_By_TenPercent() { Order order = GetTestOrder(); decimal preSubTotal = order.SubTotal; decimal postSubTotal = order.SubTotal - order.SubTotal * 0.1M; PercentOffOrderCoupon coupon = new PercentOffOrderCoupon(10); coupon.ApplyCoupon(order); Assert.AreEqual(postSubTotal, order.SubTotal); }