Пример #1
0
        private IDiscountHandler GetDefaultDiscountHandler()
        {
            var tierOneDiscountHandler   = new QuantityPriceDiscountHandler(1000, 20, .1d);
            var tierTwoDiscountHandler   = new QuantityPriceDiscountHandler(2000, 10, .2d);
            var tierThreeDiscountHandler = new QuantityPriceDiscountHandler(5000, 5, .2d);

            tierOneDiscountHandler.SetNext(tierTwoDiscountHandler).SetNext(tierThreeDiscountHandler);

            return(tierOneDiscountHandler);
        }
        public void Handle_ReturnsZero_WhenQuantityPriceNotMet()
        {
            var discount = new QuantityPriceDiscountHandler(1, 5, .5d);

            var bike = new Bike(string.Empty, string.Empty, 2);
            var line = new Line(bike, 1);

            double discountAmount = discount.Handle(line);

            Assert.AreEqual(discountAmount, 0d);
        }
        public void Handle_ReturnsDiscount_WhenQuantityPriceMet()
        {
            var discount = new QuantityPriceDiscountHandler(1, 5, .5d);

            var bike = new Bike(string.Empty, string.Empty, 1);
            var line = new Line(bike, 6);

            double discountAmount = discount.Handle(line);

            Assert.AreEqual(discountAmount, line.GetChargeAmount() - discountAmount);
        }