コード例 #1
0
        public void OrderExpresso_WithMilkAndSugarAndChocolate()
        {
            AbstractAcuCafeFactory AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(true);
            IDrink drinkFullOrder = AcuCafeAddInsRules.ProcessCoofeeAddIns(AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.EXPRESSO), true, true, true);

            Assert.AreEqual("Expresso, Chocolate, Sugar, Milk", drinkFullOrder.Prepare());
            Assert.AreEqual(1.8 + 0.5 + 0.5 + 0.5, drinkFullOrder.Cost());
        }
コード例 #2
0
        public void OrderIceTea()
        {
            AbstractAcuCafeFactory AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(false);
            IDrink drinkOrder = AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.ICETEA);

            Assert.AreEqual("IceTea", drinkOrder.Prepare());
            Assert.AreEqual(1.8, drinkOrder.Cost());
        }
コード例 #3
0
        public void OrderIceTea_WithMilk()
        {
            AbstractAcuCafeFactory AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(false);
            IDrink drinkFullOrder = AcuCafeAddInsRules.ProcessTeaAddIns(AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.ICETEA), true, false);

            Assert.AreEqual("IceTea", drinkFullOrder.Prepare());
            Assert.AreEqual(1.8, drinkFullOrder.Cost());
        }
コード例 #4
0
        public void OrderLungo_WithMilkAndChocolate()
        {
            AbstractAcuCafeFactory AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(true);
            IDrink drinkFullOrder = AcuCafeAddInsRules.ProcessCoofeeAddIns(AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.LUNGO), true, false, true);

            Assert.AreEqual("Lungo, Chocolate, Milk", drinkFullOrder.Prepare());
            Assert.AreEqual(2 + 0.5 + 0.5, drinkFullOrder.Cost());
        }
コード例 #5
0
        public void OrderTea_WithSugarAndMilk()
        {
            AbstractAcuCafeFactory AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(false);
            IDrink drinkFullOrder = AcuCafeAddInsRules.ProcessCoofeeAddIns(AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.TEA), true, true, false);

            Assert.AreEqual("Tea, Sugar, Milk", drinkFullOrder.Prepare());
            Assert.AreEqual(1.5 + 0.5 + 0.5, drinkFullOrder.Cost());
        }
コード例 #6
0
        public void OrderLungo()
        {
            AbstractAcuCafeFactory AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(true);
            IDrink drinkOrder = AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.LUNGO);

            Assert.AreEqual("Lungo", drinkOrder.Prepare());
            Assert.AreEqual(2, drinkOrder.Cost());
        }
コード例 #7
0
        public void OrderExpresso()
        {
            AbstractAcuCafeFactory AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(true);
            IDrink drinkOrder = AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.EXPRESSO);

            Assert.AreEqual("Expresso", drinkOrder.Prepare());
            Assert.AreEqual(1.8, drinkOrder.Cost());
        }
コード例 #8
0
        public void OrderRistretto_WithSugarAndChocolate()
        {
            AbstractAcuCafeFactory AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(true);
            IDrink drinkFullOrder = AcuCafeAddInsRules.ProcessCoofeeAddIns(AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.RISTRETTO), false, true, true);

            Assert.AreEqual("Ristretto, Chocolate, Sugar", drinkFullOrder.Prepare());
            Assert.AreEqual(1.5 + 0.5 + 0.5, drinkFullOrder.Cost());
        }
コード例 #9
0
        public void OrderRistretto()
        {
            AbstractAcuCafeFactory AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(true);
            IDrink drinkOrder = AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.RISTRETTO);

            Assert.AreEqual("Ristretto", drinkOrder.Prepare());
            Assert.AreEqual(1.5, drinkOrder.Cost());
        }
コード例 #10
0
        /// <summary>
        /// process the Drink order
        /// </summary>
        private void ProcessOrder()
        {
            AbstractAcuCafeFactory AcuCafeFactory;

            try
            {
                switch ((Enum)cmbDrinks.SelectedItem)
                {
                case AcuCafeEnum.EnumDrinks.EXPRESSO:
                    AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(IsCoffee);
                    drinkOrder     = AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.EXPRESSO);
                    ProcessAddIns(IsCoffee);
                    break;

                case AcuCafeEnum.EnumDrinks.RISTRETTO:
                    AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(IsCoffee);
                    drinkOrder     = AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.RISTRETTO);
                    ProcessAddIns(IsCoffee);
                    break;

                case AcuCafeEnum.EnumDrinks.LUNGO:
                    AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(IsCoffee);
                    drinkOrder     = AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.LUNGO);
                    ProcessAddIns(IsCoffee);
                    break;

                case AcuCafeEnum.EnumDrinks.TEA:
                    AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(IsTea);
                    drinkOrder     = AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.TEA);
                    ProcessAddIns(IsTea);
                    break;

                case AcuCafeEnum.EnumDrinks.ICETEA:
                    AcuCafeFactory = AcuCafeFactoryProducer.GetAcuCafeFactory(IsTea);
                    drinkOrder     = AcuCafeFactory.GetDrink(AcuCafeEnum.EnumDrinks.ICETEA);
                    ProcessAddIns(IsTea);
                    break;

                default:
                    throw new Exception("Undefine drink. We can not process the order.");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }