Ejemplo n.º 1
0
        public void Verify_AxilCustomer_Total(string name, decimal expected)
        {
            var adFactory = new AdFactory();

            var discountStrategyFactory = new DiscountStrategyFactory();

            var item1 = adFactory.CreateAd(typeof(StandoutAd));

            var item2 = adFactory.CreateAd(typeof(StandoutAd));

            var item3 = adFactory.CreateAd(typeof(StandoutAd));

            var item4 = adFactory.CreateAd(typeof(PremiumAd));

            var customer = new Customer(name);

            var discountStrategy = discountStrategyFactory.GetDiscountStrategy(customer);

            var pricingRules = discountStrategy.GetPricingRules();

            var checkout = new Domain.Checkout(pricingRules);

            checkout.Add(item1);
            checkout.Add(item2);
            checkout.Add(item3);
            checkout.Add(item4);

            Assert.Equal(expected, checkout.Total());
        }
Ejemplo n.º 2
0
        public Basket(EDiscountType discountType)
        {
            _products = new List <Product>();

            // Here the discount strategy is defined, according to a desired kind of discount type.
            _discountStrategy = DiscountStrategyFactory.DiscountStrategyFor(discountType);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Defines a discount type to be applied over all products of basket.
 /// </summary>
 /// <param name="discountType">Discount type which will be applied over the products list.</param>
 public void SetDiscountType(EDiscountType discountType)
 {
     _discountStrategy = DiscountStrategyFactory.DiscountStrategyFor(discountType);
 }