Пример #1
0
        public MainViewModel()
        {
            _coffeeStrength = Strength.Normal;
            _sugarAmount    = Amount.Normal;
            _milkAmount     = Amount.Normal;

            LogText = new ObservableCollection <string>();
            LogText.Add("Starting up...");
            LogText.Add("Done, what would you like to drink?");

            drinkFactory       = new DrinkFactory();
            paymentFactory     = new PaymentFactory();
            teaBlendRepository = new TeaBlendRepository();
            deserializer       = new Deserializer();


            Blends         = new List <string>(teaBlendRepository.BlendNames);
            KoffieSpecials = new List <string>();

            foreach (var item in deserializer.GetSpecialCoffees())
            {
                KoffieSpecials.Add(item.Naam);
            }

            card = (CardPayment)paymentFactory.CreatePayment("Card", 0, null);

            PaymentCardUsernames        = new ObservableCollection <string>(card.CashOncards.Keys);
            SelectedPaymentCardUsername = PaymentCardUsernames[0];
        }
        public IHotDrink CreateDrink()
        {
            IHotDrink Coffee = DrinkFactory.CreateHotDrink(Program.AvailableDrink.Coffee);

            Console.WriteLine("----------------------------------------------------");
            Console.WriteLine("Do you want milk in your drink? ");
            Console.WriteLine("----------------------------------------------------");
            Console.WriteLine("1.Yes\n2.No ");
            Console.WriteLine("----------------------------------------------------");

            Console.Write("please input your answer: ");
            string answer = Console.ReadLine().ToLower();

            bool confirmed = Coffee.ConfirmPayment(Coffee);

            if (confirmed)
            {
                if (answer.Equals("yes"))
                {
                    IHotDrink coffeeWithMilk = new MilkyDrinkDecorator(Coffee);
                    coffeeWithMilk.Prepare();
                }
                else
                {
                    Coffee.Prepare();
                }
            }
            else
            {
                Console.Clear();
                Console.WriteLine("Incorrect payment, try again.");
            }
            Console.Clear();
            return(Coffee);
        }
Пример #3
0
        //move payment logic to dedicated classes.

        public MainViewModel()
        {
            _drinkFactory   = new DrinkFactory();
            _coffeeStrength = Strength.Normal;
            _sugarAmount    = Amount.Normal;
            _milkAmount     = Amount.Normal;

            LogText = new ObservableCollection <string>();
            LogText.Add("Starting up...");
            LogText.Add("Done, what would you like to drink?");

            var repository = new TeaRepository();

            //TeaNames = new ObservableCollection<string>(repository.GetTeaNames());

            _cashOnCards = new Dictionary <string, double>
            {
                ["Arjen"] = 5.0,
                ["Bert"]  = 3.5,
                ["Chris"] = 7.0,
                ["Daan"]  = 6.0
            };
            PaymentCardUsernames        = new ObservableCollection <string>(_cashOnCards.Keys);
            SelectedPaymentCardUsername = PaymentCardUsernames[0];
        }
Пример #4
0
        static void Main(string[] args)
        {
            var drinkFactory = new DrinkFactory();

            var largeEspresso = drinkFactory.GetDrink("Espresso");

            largeEspresso.Serve("Large");

            var mediumSmoothie = drinkFactory.GetDrink("BananaSmoothie");

            mediumSmoothie.Serve("Medium");

            var smallEspresso = drinkFactory.GetDrink("Espresso");

            smallEspresso.Serve("Small");

            drinkFactory.ListDrinks();

            var sizes = new string[] { "Small", "Medium", "Large" };

            foreach (var size in sizes)
            {
                var giveaway = drinkFactory.CreateGiveaway();
                giveaway.Serve(size);
            }
        }
Пример #5
0
        public void T5_Qt_checker()
        {
            DrinkFactory.ResetData();
            DrinkFactory.CreateDrink("O::", 0.6);
            DrinkFactory.CreateDrink("O::", 0.6);
            DrinkFactory.CreateDrink("Ch::", 1);
            DrinkFactory.CreateDrink("Hh:1:0", 0.6);
            DrinkFactory.CreateDrink("O::", 0.6);
            DrinkFactory.CreateDrink("O::", 0.1);
            DrinkFactory.CreateDrink("O::", 0.1);
            DrinkFactory.CreateDrink("O::", 0.1);
            DrinkFactory.CreateDrink("O::", 0.1);
            DrinkFactory.CreateDrink("O::", 0.1);
            DrinkFactory.CreateDrink("O::", 0.6);
            DrinkFactory.CreateDrink("O::", 0.6);
            DrinkFactory.CreateDrink("O::", 0.6);
            DrinkFactory.CreateDrink("Ch::", 1);
            DrinkFactory.CreateDrink("Hh:1:0", 0.6);
            DrinkFactory.CreateDrink("O::", 0.6);
            DrinkFactory.CreateDrink("O::", 0.6);
            DrinkFactory.CreateDrink("Ch::", 1);
            DrinkFactory.CreateDrink("Hh:1:0", 0.6);
            DrinkFactory.CreateDrink("O::", 0.6);
            string drinkOne = DrinkFactory.CreateDrink("O::", 0.6);

            DrinkFactory.CreateDrink("O::", 0.6);
            DrinkFactory.CreateDrink("O::", 0.6);
            string drinkTwo = DrinkFactory.CreateDrink("O::", 0.6);

            Assert.AreNotEqual(drinkOne, "No more drinks avaible");
            Assert.AreEqual(drinkTwo, "No more drinks avaible");
        }
Пример #6
0
        // Zdarzenie obsługujące tworzenie obiektu napój
        private void DrinkClickEvent(object sender, EventArgs e)
        {
            Button button = sender as Button;
            IDrink drink  = DrinkFactory.CreateDrink(button.Tag as FoodInformation);

            uiClbShopingCard.Items.Add(drink);
            _orderCost         += drink.Price();
            uiTxtOrderCost.Text = _orderCost.ToString("C", _cultureInfo);
        }
Пример #7
0
 public Controller()
 {
     this.bakedFoods   = new List <IBakedFood>();
     this.drinks       = new List <IDrink>();
     this.tables       = new List <ITable>();
     this.foodFactory  = new BakedFoodFactory();
     this.drinkFactory = new DrinkFactory();
     this.tableFactory = new TableFactory();
 }
Пример #8
0
        public void T2_Drink_are_payed()
        {
            string drinkOne   = DrinkFactory.CreateDrink("T:1:0", 0.1);
            string drinkTwo   = DrinkFactory.CreateDrink("H::", 1);
            string drinkThree = DrinkFactory.CreateDrink("C:2:0", 0.6);

            Assert.AreEqual(drinkOne, "You need 0,3");
            Assert.AreEqual(drinkTwo, "Drink maker makes 1 chocolate with no sugar and no stick");
            Assert.AreEqual(drinkThree, "Drink maker makes 1 coffee with 2 sugars and a stick");
        }
Пример #9
0
        public ResturantController()
        {
            this.menu   = new List <IFood>();
            this.drinks = new List <IDrink>();
            this.tables = new List <ITable>();

            this.foodFactory  = new FoodFactory();
            this.drinkFactory = new DrinkFactory();
            this.tableFactory = new TableFactory();
        }
Пример #10
0
        public void T1_Drink_asked_are_created()
        {
            string drinkOne   = DrinkFactory.CreateDrink("T:1:0");
            string drinkTwo   = DrinkFactory.CreateDrink("H::");
            string drinkThree = DrinkFactory.CreateDrink("C:2:0");

            Assert.AreEqual(drinkOne, "Drink maker makes 1 tea with 1 sugar and a stick");
            Assert.AreEqual(drinkTwo, "Drink maker makes 1 chocolate with no sugar and no stick");
            Assert.AreEqual(drinkThree, "Drink maker makes 1 coffee with 2 sugars and a stick");
        }
Пример #11
0
    static void Main()
    {
        // 依照使用者需求
        // 實體化(販賣機掉出)相對應的物件(飲料)
        // 可以想像成,使用者站在販賣機前面,按下奶茶or紅茶的按鈕
        Drink blackTea = DrinkFactory.CreateDrink("紅茶");
        Drink milkTea  = DrinkFactory.CreateDrink("奶茶");

        blackTea.showDrink();
        milkTea.showDrink();
    }
Пример #12
0
        public static void Main()
        {
            IFoodFactory  foodFactory          = new FoodFactory();
            IDrinkFactory drinkFactory         = new DrinkFactory();
            ITableFactory tableFactory         = new TableFactory();
            var           restaurantController = new RestaurantController(foodFactory,
                                                                          drinkFactory, tableFactory);
            var engine = new Engine(restaurantController);

            engine.Run();
        }
Пример #13
0
        public DrinkViewModel(MainViewModel mainVM)
        {
            _mainVM       = mainVM;
            _drinkFactory = new DrinkFactory();

            _coffeeStrength = Strength.Normal;
            _sugarAmount    = Amount.Normal;
            _milkAmount     = Amount.Normal;
            TeaBlend        = TeaBlends.First();
            SpecialCoffee   = SpecialCoffees.First();
        }
        public void OrderDrink_ReturnsIceTeaWithoutSugar_WhenHasSugarIsFalse()
        {
            //Arrange
            DrinkAddOn addOn = new DrinkAddOn();

            //Act
            IDrink drink = DrinkFactory.OrderDrink(DrinkType.IceTea, addOn);

            //Assert
            Assert.IsTrue(drink is IceTea);
            Assert.AreEqual("We are preparing the following drink for you: Ice tea without sugar", drink.Description);
            Assert.AreEqual(1.5, drink.GetCost());
        }
        public void OrderDrink_ReturnsTeaWithoutMilkAndSugar_WhenHasMilkAndHasSugarAreFalse()
        {
            //Arrange
            DrinkAddOn addOn = new DrinkAddOn();

            //Act
            IDrink drink = DrinkFactory.OrderDrink(DrinkType.Tea, addOn);

            //Assert
            Assert.IsTrue(drink is Tea);
            Assert.AreEqual("We are preparing the following drink for you: Hot tea without milk without sugar", drink.Description);
            Assert.AreEqual(1, drink.GetCost());
        }
Пример #16
0
        public async Task PrepareOrderExpectedExceptionTest()
        {
            // ARRANGE
            string expected = "We are preparing the following drink for you:  Ice Tea without milk without sugar";

            // ACT
            ITopping topping = new Topping(false, true);
            Drink    drink   = DrinkFactory.OrderDrink(DrinkType.IceTea, topping);
            string   actual  = await AcuCafe.AcuCafe.PrepareOrder(drink, topping.HasMilk);

            //ASSERT
            Assert.AreEqual(expected, actual);
        }
        public void OrderDrink_ReturnsExpressoWithSugar_WhenHasSugarIsTrue()
        {
            //Arrange
            DrinkAddOn addOn = new DrinkAddOn();

            addOn.HasSugar = true;
            //Act
            IDrink drink = DrinkFactory.OrderDrink(DrinkType.Expresso, addOn);

            //Assert
            Assert.IsTrue(drink is SugarDecorator);
            Assert.AreEqual("We are preparing the following drink for you: Expresso without milk with sugar", drink.Description);
            Assert.AreEqual(2.3, drink.GetCost());
        }
Пример #18
0
        public MainViewModel()
        {
            _drinkFactory   = new DrinkFactory();
            _paymentHandler = new PaymentHandler();

            LogText = new ObservableCollection <string>
            {
                "Starting up...",
                "Done, what would you like to drink?"
            };

            PaymentCardUsernames = new ObservableCollection <string>(_paymentHandler.CashOnCards.Keys);
            TeaBlendOptions      = new ObservableCollection <string>(_drinkFactory.TeaBlendRepository.BlendNames);
        }
        public void OrderDrink_ReturnsTeaWithMilk_WhenHasMilkIsTrue()
        {
            //Arrange
            DrinkAddOn addOn = new DrinkAddOn();

            addOn.HasMilk = true;
            //Act
            IDrink drink = DrinkFactory.OrderDrink(DrinkType.Tea, addOn);

            //Assert
            Assert.IsTrue(drink is MilkDecorator);
            Assert.AreEqual("We are preparing the following drink for you: Hot tea with milk without sugar", drink.Description);
            Assert.AreEqual(1.5, drink.GetCost());
        }
Пример #20
0
        public void T3_Added_OrangeJuice_and_HotDrinks()
        {
            string drinkZero  = DrinkFactory.CreateDrink("O::", 0.3);
            string drinkOne   = DrinkFactory.CreateDrink("O::", 0.6);
            string drinkTwo   = DrinkFactory.CreateDrink("Ch::", 1);
            string drinkThree = DrinkFactory.CreateDrink("Hh:1:0", 0.6);
            string drinkFour  = DrinkFactory.CreateDrink("Th:2:0", 0.6);

            Assert.AreEqual(drinkZero, "You need 0,3");
            Assert.AreEqual(drinkOne, "Drink maker will make one orange juice");
            Assert.AreEqual(drinkTwo, "Drink maker will make an extra hot coffee with no sugar");
            Assert.AreEqual(drinkThree, "Drink maker will make an extra hot chocolate with one sugar and a stick");
            Assert.AreEqual(drinkFour, "Drink maker will make an extra hot tea with two sugar and a stick");
        }
Пример #21
0
        public void IceTeaMilkSugarTest()
        {
            // Arrange
            double expectedPrice = 2;
            bool   hasSugar      = true;
            bool   hasMilk       = false;

            // act
            ITopping topping = new Topping(true, true);
            Drink    actual  = DrinkFactory.OrderDrink(DrinkType.IceTea, topping);

            Assert.AreEqual(expectedPrice, actual.Cost());
            Assert.AreEqual(hasSugar, actual.HasSugar);
            Assert.AreEqual(hasMilk, actual.HasMilk);
        }
Пример #22
0
        public void ExpressoNoMilkNoSugarTest()
        {
            // Arrange
            double expectedPrice = 1.8;
            bool   hasSugar      = false;
            bool   hasMilk       = false;

            // act
            ITopping topping = new Topping(false, false);
            Drink    actual  = DrinkFactory.OrderDrink(DrinkType.Expresso, topping);

            Assert.AreEqual(expectedPrice, actual.Cost());
            Assert.AreEqual(hasSugar, actual.HasSugar);
            Assert.AreEqual(hasMilk, actual.HasMilk);
        }
        public void OrderDrink_ReturnsExpressoWithMilkAndSugarWithChocolate_WhenHasMilkAndHasSugarAndHasChocolateAreTrue()
        {
            //Arrange
            DrinkAddOn addOn = new DrinkAddOn();

            addOn.HasSugar     = true;
            addOn.HasMilk      = true;
            addOn.HasChocolate = true;
            //Act
            IDrink drink = DrinkFactory.OrderDrink(DrinkType.Expresso, addOn);

            //Assert
            Assert.IsTrue(drink is ChocolateDecorator);
            Assert.AreEqual("We are preparing the following drink for you: Expresso with milk with sugar with chocolate", drink.Description);
            Assert.AreEqual(3.3, drink.GetCost());
        }
Пример #24
0
        public MainViewModel()
        {
            DrinkFactory = new DrinkFactory();
            UserFactory  = new UserFactory();

            _coffeeStrength = Strength.Normal;
            _sugarAmount    = Amount.Normal;
            _milkAmount     = Amount.Normal;
            _teaBlend       = Blend.GreenTea;

            LogText = new ObservableCollection <string>();
            LogText.Add("Starting up...");
            LogText.Add("Done, what would you like to drink?");

            PaymentCardUsernames        = new ObservableCollection <string>(UserFactory.Usernames);
            SelectedPaymentCardUsername = PaymentCardUsernames[0];
        }
Пример #25
0
        public void ExpressoMilkSugarChocolateTest()
        {
            // Arrange
            double expectedPrice = 3.3;
            bool   hasSugar      = true;
            bool   hasMilk       = true;
            bool   hasChocolate  = true;

            // act
            ITopping topping = new Topping(true, true, true);
            Drink    actual  = DrinkFactory.OrderDrink(DrinkType.Expresso, topping);

            Assert.AreEqual(expectedPrice, actual.Cost());
            Assert.AreEqual(hasSugar, actual.HasSugar);
            Assert.AreEqual(hasMilk, actual.HasMilk);
            Assert.AreEqual(hasChocolate, actual.HasChocolate);
        }
Пример #26
0
        public MainViewModel()
        {
            _teaBlendRepository = new TeaBlendRepository();
            Blends          = new ObservableCollection <string>(_teaBlendRepository.BlendNames);
            _drinkFactory   = new DrinkFactory();
            _paymentFactory = new PaymentFactory();

            _coffeeStrength = Strength.Normal;
            _sugarAmount    = Amount.Normal;
            _milkAmount     = Amount.Normal;

            LogText = new ObservableCollection <string>();
            LogText.Add("Starting up...");
            LogText.Add("Done, what would you like to drink?");
            PaymentCardUsernames        = new ObservableCollection <string>(_paymentFactory.Pay("CARD").GetCashOnCards().Keys);
            SelectedPaymentCardUsername = PaymentCardUsernames[0];
        }
Пример #27
0
        public IHotDrink CreateDrink()
        {
            IHotDrink Latte     = DrinkFactory.CreateHotDrink(Program.AvailableDrink.Latte);
            bool      confirmed = Latte.ConfirmPayment(Latte);

            if (confirmed)
            {
                Latte.Prepare();
            }
            else
            {
                Console.Clear();
                Console.WriteLine("Incorrect payment, try again.");
            }
            Console.Clear();
            return(Latte);
        }
Пример #28
0
        public void CreateSodaTest()
        {
            var expected = "Coca Cola";
            var soda     = DrinkFactory.CreateSoda("1");
            var actual   = soda.GetName();

            Assert.AreEqual(expected, actual);

            expected = "Fanta";
            soda     = DrinkFactory.CreateSoda("2");
            actual   = soda.GetName();
            Assert.AreEqual(expected, actual);

            expected = "Sprite";
            soda     = DrinkFactory.CreateSoda("3");
            actual   = soda.GetName();
            Assert.AreEqual(expected, actual);
        }
Пример #29
0
        static void Main(string[] args)
        {
            //Image imageEuropeAfrica = Image.FromFile("..\\..\\..\\GLIF2017_maps_9-21\\GLIF2017_Europe_Africa_8k_9-21.jpg");
            //Image imageSouthAmerica = Image.FromFile("..\\..\\..\\GLIF2017_maps_9-21\\GLIF2017_SouthAmerica_8k_9-21.jpg");
            //Image imageSouthAmericaCrop = Image.FromFile("..\\..\\..\\GLIF2017_maps_9-21\\GLIF2017_SouthAmericaCrop_8k_9-21.jpg");
            //Image imageEuropeIndia = Image.FromFile("..\\..\\..\\GLIF2017_maps_9-21\\GLIF2017_Europe-India_8k_9-21.jpg");
            //Image imageNorthAmerica = Image.FromFile("..\\..\\..\\GLIF2017_maps_9-21\\GLIF2017_NorthAmerica_8k_9-21.jpg");
            //Image imageEurope = Image.FromFile("..\\..\\..\\GLIF2017_maps_9-21\\GLIF2017_Europe_8k_9-21.jpg");
            //Image imageWorld = Image.FromFile("..\\..\\..\\GLIF2017_maps_9-21\\GLIF2017_World_8k_9-21.jpg");
            //Image imageAsia = Image.FromFile("..\\..\\..\\GLIF2017_maps_9-21\\GLIF2017_Asia_8k_9-21.jpg");
            var factory = new DrinkFactory();

            factory.GetDrink("Espresso");
            factory.GetDrink("Coffee");
            factory.GetDrink("Tea");
            factory.GetDrink("CocaCola");
            factory.GetDrink("Pepsi");
            factory.GetDrink("Sprite");
        }
Пример #30
0
        private void AddDrink()
        {
            switch (_selectedDrinkCategory)
            {
            case DrinkCategories.Alcoholic:
                _createdDrinkList.Add(DrinkFactory.BuildDrink(_selectedDrinkCategory, ComboBox_DrinkTypes.SelectedItem.ToString(), CheckBox_IsCarbonated.IsChecked.Value, int.Parse(TextBox_AlcoholContent.Text)));
                break;

            case DrinkCategories.Juice:
                _createdDrinkList.Add(DrinkFactory.BuildDrink(_selectedDrinkCategory, ComboBox_DrinkTypes.SelectedItem.ToString(), CheckBox_IsCarbonated.IsChecked.Value, int.Parse(TextBox_AlcoholContent.Text), ListBox_Fruits.SelectedItems.Cast <string>().ToList()));
                break;

            case DrinkCategories.Soda:
                _createdDrinkList.Add(DrinkFactory.BuildDrink(_selectedDrinkCategory, ComboBox_DrinkTypes.SelectedItem.ToString(), CheckBox_IsCarbonated.IsChecked.Value, int.Parse(TextBox_AlcoholContent.Text)));
                break;

            default:
                throw new NotImplementedException("Selected category doesn't exist while adding the drink!");
            }
        }