コード例 #1
0
        private void PopulateVendingItem()
        {
            foreach (var product in _inMemoryRepository.GetProducts())
            {
                VendingMachineItem vendingMachineItem;

                switch (product.ProductCode)
                {
                //orderNumber, productName, price, totalItem
                case "COKE":
                    vendingMachineItem = new Coke(product.OrderNumber, product.Name, product.Price, product.Quantity);
                    _vendingMachineMap.TryAdd(product.OrderNumber, vendingMachineItem);
                    break;

                case "MM":
                    vendingMachineItem = new MM(product.OrderNumber, product.Name, product.Price, product.Quantity);
                    _vendingMachineMap.TryAdd(product.OrderNumber, vendingMachineItem);
                    break;

                case "WATER":
                    vendingMachineItem = new Water(product.OrderNumber, product.Name, product.Price, product.Quantity);
                    _vendingMachineMap.TryAdd(product.OrderNumber, vendingMachineItem);
                    break;

                case "SNICKER":
                    vendingMachineItem = new Snickers(product.OrderNumber, product.Name, product.Price, product.Quantity);
                    _vendingMachineMap.TryAdd(product.OrderNumber, vendingMachineItem);
                    break;

                default:
                    throw new InvalidOperationException($"Invalid product code {product.ProductCode} vending machine does not support.");
                }
            }
        }
コード例 #2
0
        public void buyCokeTest()
        {
            Coke coke = new Coke();

            customer.buy(coke);
            string actual = customer.print();
            string expect = "Coke(12.00) | Total=12.00";

            Assert.AreEqual(expect, actual);
        }
コード例 #3
0
        public void buyCokeAndLemon()
        {
            Coke  coke  = new Coke();
            Lemon lemon = new Lemon();

            customer.buy(coke);
            customer.buy(lemon);

            string actual = customer.print();
            string expect = "Coke(12.00)+Lemon(5.00) | Total=17.00";

            Assert.AreEqual(expect, actual);
        }
コード例 #4
0
        public void Coke_should_build_the_VendingMachineItem()
        {
            var testOrderNumber = _fixture.Create <int>();
            var testProductName = _fixture.Create <string>();
            var testPrice       = _fixture.Create <decimal>();
            var testTotalItem   = _fixture.Create <int>();

            var cut = new Coke(testOrderNumber, testProductName, testPrice, testTotalItem);

            cut.OrderNumber.Should().Be(testOrderNumber);
            cut.ProductName.Should().Be(testProductName);
            cut.Price.Should().Be(testPrice);
            cut.TotalItem.Should().Be(testTotalItem);
        }
コード例 #5
0
        public void VendingMachineItem_should_decrement_the_Quantity()
        {
            var testOrderNumber = _fixture.Create <int>();
            var testProductName = _fixture.Create <string>();
            var testPrice       = _fixture.Create <decimal>();
            var testTotalItem   = _fixture.Create <int>();

            var testPurchaseQuantity = 1;

            var cut = new Coke(testOrderNumber, testProductName, testPrice, testTotalItem);

            cut.DecrementItem(testPurchaseQuantity);

            cut.TotalItem.Should().Be(testTotalItem - testPurchaseQuantity);
        }
コード例 #6
0
        public void CokeConstructionTest_TestForProperConstructionOfCokeObject()
        {
            //Arrange
            int    GroupId = 3;
            int    Price   = 18;
            string Examine = "Coke:\n   Cost is 18kr";
            string Usage   = "Drink the coke.";

            //Act
            Coke coke = new Coke(3, 18);

            //Assert
            Assert.Equal(GroupId, coke.GroupId);
            Assert.Equal(Price, coke.Price);
            Assert.Equal(Examine, coke.Examine());
            Assert.Equal(Usage, coke.Use());
        }
コード例 #7
0
        static void Main(string[] args)
        {
            Console.WriteLine("1 - Japan");
            Console.WriteLine("2 - Spain");
            Console.WriteLine("3 - US");
            string country;

            for (; ;)
            {
                Console.Write("Choose a Country : ");
                country = Console.ReadLine();
                try {
                    if (Int32.Parse(country) >= 4)
                    {
                        Console.WriteLine("Choose the correct option!!");
                    }
                    else
                    {
                        break;
                    }
                } catch (System.FormatException) {
                    Console.WriteLine("Choose a No. !!");
                }
            }
            Console.WriteLine(country);
            //Japan japan = new Japan(20);

            Coke  coke  = new Coke("Coke", 20, 12.99);
            Pepsi pepsi = new Pepsi("Pepsi", 10, 2.30);

            SodasVendingMachine <IJapanesSoda> jSodaVending = new SodasVendingMachine <IJapanesSoda>(25, "SODA");

            jSodaVending.SodaList.Add(coke);
            jSodaVending.SodaList.Add(pepsi);

            Japan japan = new Japan();

            japan.vendingMachines.Add((VendingMachine <IJapanesSoda>)jSodaVending);
            Console.WriteLine(jSodaVending.Name);
            japan.vendingMachines.ForEach(v => {
                Console.WriteLine($"{v.Name}");
            });
        }
コード例 #8
0
        public AbstractMeal AddColdDrink(string drinkType)
        {
            ColdDrink coldDrink;

            switch (drinkType)
            {
            case "coke":
                coldDrink = new Coke();
                break;

            case "fanta":
                coldDrink = new Fanta();
                break;

            default:
                coldDrink = null;
                break;
            }
            _meal.SetColdDrink(coldDrink);
            return(this);
        }
コード例 #9
0
        public void buyCokeAndAllCondimentTest()
        {
            Coke      coke      = new Coke();
            Milk      milk      = new Milk();
            Honey     honey     = new Honey();
            Lemon     lemon     = new Lemon();
            Chocolate chocolate = new Chocolate();
            Mocha     mocha     = new Mocha();

            customer.buy(coke);
            customer.buy(milk);
            customer.buy(honey);
            customer.buy(lemon);
            customer.buy(chocolate);
            customer.buy(mocha);

            string actual = customer.print();
            string expect = "Coke(12.00)+Milk(3.50)+Honey(4.50)+Lemon(5.0)+Chocolate(7.00)+ Mocha(8.0) | Total=40.00";

            Assert.AreEqual(expect, actual);
        }
コード例 #10
0
        public Dictionary <string, VendingItem> GetVendingItems()
        {
            Dictionary <string, VendingItem> items = new Dictionary <string, VendingItem>();

            string file = string.Empty;

            if (File.Exists("vendingmachine.csv"))
            {
                file = "vendingmachine.csv";

                try
                {
                    using (StreamReader sr = new StreamReader(file))
                    {
                        while (!sr.EndOfStream)
                        {
                            // Read the line
                            string line = sr.ReadLine();

                            string[] itemDetails = line.Split("|");

                            string itemName = itemDetails[Pos_ItemName];

                            if (!decimal.TryParse(itemDetails[Pos_ItemPrice], out decimal itemPrice))
                            {
                                itemPrice = 0M;
                            }

                            if (!int.TryParse(itemDetails[Pos_itemQty], out int itemQty))
                            {
                                itemQty = 0;
                            }

                            VendingItem item;

                            switch (itemDetails[Pos_ItemName])
                            {
                            case "Coke":
                                item = new Coke(itemName, itemPrice, itemQty);
                                break;

                            case "Water":
                                item = new Water(itemName, itemPrice, itemQty);
                                break;

                            case "Snickers":
                                item = new Snickers(itemName, itemPrice, itemQty);
                                break;

                            default:
                                item = new MandM(itemName, itemPrice, itemQty);
                                break;
                            }

                            items.Add(itemDetails[Pos_itemNumber], item);
                        }
                    }
                }
                catch
                {
                    Console.WriteLine("Error trying to open the input file.");
                }
            }
            else
            {
                Console.WriteLine("Input file is missing!! The vending machine will now self destruct.");
                items.Add("A1", new Water("YOU BROKE IT!", 10000M, 5));
            }

            return(items);
        }
コード例 #11
0
        public object FindItem(string order)
        {
            if (order == "Shredded Cheddar")
            {
                ShreddedCheddar shredChed = new ShreddedCheddar();
                return shredChed;
            }
            else if (order == "Provolone")
            {
                Provolone prov = new Provolone();
                return prov;
            }
            else if (order == "Cheddar Jack")
            {
                CheddarJack chedJack = new CheddarJack();
                return chedJack;
            }
            else if (order == "Colby Jack")
            {
                ColbyJack colbyJack = new ColbyJack();
                return colbyJack;
            }
            else if (order == "Seven Grain Wheat Bread")
            {
                SevenGrainWheatBread sevenWheat = new SevenGrainWheatBread();
                return sevenWheat;

            }
            else if (order == "Wheat Bread")
            {
                WheatBread wheat = new WheatBread();
                return wheat;
            }
            else if (order == "Italian")
            {
                Italian italian = new Italian();
                return italian;
            }
            else if (order == "Tortilla")
            {
                Tortilla tortilla = new Tortilla();
                return tortilla;
            }
            else if (order == "Coke")
            {
                Coke coke = new Coke();
                return coke;
            }
            else if (order == "Mountain Dew")
            {
                MountainDew mtnDew = new MountainDew();
                return mtnDew;
            }
            else if (order == "Milk")
            {
                Milk milk = new Milk();
                return milk;
            }
            else if (order == "Orange Juice")
            {
                OrangeJuice OJ = new OrangeJuice();
                return OJ;
            }
            else if (order == "Coffee")
            {
                Coffee coffee = new Coffee();
                return coffee;
            }
            else if (order == "Gatorade")
            {
                Gatorade gatorade = new Gatorade();
                return gatorade;
            }
            else if (order == "Ham")
            {
                Ham ham = new Ham();
                return ham;
            }
            else if (order == "Turkey")
            {
                Turkey turkey = new Turkey();
                return turkey;
            }
            else if (order == "Roast Beef")
            {
                RoastBeef beef = new RoastBeef();
                return beef;
            }
            else if (order == "Salami")
            {
                Salami salami = new Salami();
                return salami;
            }
            else if (order == "Bacon")
            {
                Bacon bacon = new Bacon();
                return bacon;
            }
            else if (order == "Mayo")
            {
                Mayo mayo = new Mayo();
                return mayo;
            }
            else if (order == "Chipotle Mayo")
            {
                ChipotleMayo chipMayo = new ChipotleMayo();
                return chipMayo;
            }
            else if (order == "Olives")
            {
                Olives olives = new Olives();
                return olives;
            }
            else if (order == "Lettuce")
            {
                Lettuce lettuce = new Lettuce();
                return lettuce;
            }
            else if (order == "Spinach")
            {
                Spinach spinach = new Spinach();
                return spinach;
            }
            else if (order == "Pickles")
            {
                Pickles pickles = new Pickles();
                return pickles;
            }
            else
            {
                Ham ham = new Ham();
                return ham;
            }
        }
コード例 #12
0
        private void food_Click(object sender, EventArgs e)
        {
            Button buttonClicked = sender as Button;
            int    rowIndex      = orderDetails.Rows.Add();
            var    row           = orderDetails.Rows[rowIndex];
            IFood  food;

            switch (buttonClicked.Name)
            {
            case "French Baguette":
                food = new FrenchBaguette();
                row.Cells["item"].Value    = buttonClicked.Name;
                row.Cells["price"].Value   = food.price;
                stock.frenchBaguetteStock -= 1;
                break;

            case "Soft Bread":
                food = new SoftBread();
                row.Cells["item"].Value  = buttonClicked.Name;
                row.Cells["price"].Value = food.price;
                stock.softBreadStock    -= 1;
                break;

            case "Apple Smoothy":
                food = new AppleSmoothy();
                row.Cells["item"].Value  = buttonClicked.Name;
                row.Cells["price"].Value = food.price;
                stock.appleSmoothyStock -= 1;
                break;

            case "Coke":
                food = new Coke();
                row.Cells["item"].Value  = buttonClicked.Name;
                row.Cells["price"].Value = food.price;
                stock.cokeStock         -= 1;
                break;

            case "Ham Sandwich":
                food = new HamSandwich();
                row.Cells["item"].Value  = buttonClicked.Name;
                row.Cells["price"].Value = food.price;
                stock.hamSandwichStock  -= 1;
                break;

            case "Panini":
                food = new Panini();
                row.Cells["item"].Value  = buttonClicked.Name;
                row.Cells["price"].Value = food.price;
                stock.paniniStock       -= 1;
                break;

            case "Cookie":
                food = new Cookie();
                row.Cells["item"].Value  = buttonClicked.Name;
                row.Cells["price"].Value = food.price;
                stock.cookieStock       -= 1;
                break;

            case "Cheese Cake":
                food = new CheeseCake();
                row.Cells["item"].Value  = buttonClicked.Name;
                row.Cells["price"].Value = food.price;
                stock.cheeseCakeStock   -= 1;
                buttonClicked.Text       = "Cheese Cake " + stock.cheeseCakeStock;
                break;
            }
            updateTotal();
            loadButtonsText();
        }