Example #1
0
        public void Best_discount_for_big_order()
        {
            var pizzaOrderingSystem = new PizzaOrderingSystem(
                DiscountPolicyDelegates.DiscountAllThePizzas());
            var order = new PizzaOrder();

            order.Pizzas = new List <Pizza>();
            // Buy one get one
            for (int i = 0; i < 2; i++)
            {
                var pizza = new Pizza()
                {
                    Crust = Crust.Regular,
                    Price = 10.00m,
                    Size  = Size.Large
                };
                order.Pizzas.Add(pizza);
            }
            // Over 50 5% off
            for (int i = 0; i < 6; i++)
            {
                var pizza = new Pizza()
                {
                    Crust = Crust.Regular,
                    Price = 10.00m,
                    Size  = Size.Large
                };
                order.Pizzas.Add(pizza);
            }
            // Stuffed crust
            var stuffedCrust = new Pizza()
            {
                Crust = Crust.Stuffed,
                Price = 10.00m,
                Size  = Size.Large
            };

            order.Pizzas.Add(stuffedCrust);
            var price = pizzaOrderingSystem.ComputePrice(order);

            Assert.AreEqual(80.00m, price);
        }
Example #2
0
 public void PizzaOrderingTest_Init()
 {
     pizzaOrderingSystem = new Lib.PizzaOrderingSystem(DiscountPolicyDelegates.DiscountAllPizzas());
 }