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);
        }
Esempio n. 2
0
        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;
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }