public void OrderIsTakenAndMealIsReturned()
        {
            const string inputOrder  = "morning, 1, 2, 3";
            const string expectation = "eggs, toast, coffee";

            var mockOrder = CreateMock <IOrder>();

            _mockOrderFactory.Setup(factory => factory.Parse(inputOrder)).Returns(mockOrder.Object);
            mockOrder.SetupGet(order => order.TimeOfDay).Returns("morning");
            mockOrder.SetupGet(order => order.DishTypes).Returns(new[] { 1, 2, 3 });

            _mockDish2.SetupGet(dish => dish.NameAtMealTime).Returns(_mockNameAtMealTime2.Object);
            _mockDish3.SetupGet(dish => dish.NameAtMealTime).Returns(_mockNameAtMealTime3.Object);

            string eggs = "eggs";

            _mockNameAtMealTime1.Setup(dic => dic.TryGetValue("morning", out eggs)).Returns(true);
            string toast = "toast";

            _mockNameAtMealTime2.Setup(dic => dic.TryGetValue("morning", out toast)).Returns(true);
            string coffee = "coffee";

            _mockNameAtMealTime3.Setup(dic => dic.TryGetValue("morning", out coffee)).Returns(true);

            _mockDish2.SetupGet(dish => dish.MultipleAtMealTime).Returns(_mockMultipleAtMealTime2.Object);
            _mockDish3.SetupGet(dish => dish.MultipleAtMealTime).Returns(_mockMultipleAtMealTime3.Object);

            _mockMultipleAtMealTime1.SetupGet(dic => dic["morning"]).Returns(false);
            _mockMultipleAtMealTime2.SetupGet(dic => dic["morning"]).Returns(false);
            _mockMultipleAtMealTime3.SetupGet(dic => dic["morning"]).Returns(true);

            var actual = _waiter.Serve(inputOrder);

            Assert.That(actual, Is.EqualTo(expectation));
        }
        public void Customer_Orders_Spaghetti()
        {
            _waiter.Serve(Spaghetti).Returns(_spaghettiMeal);
            var actual = _customer.Order(Menu.Spaghetti);

            Assert.AreEqual(_spaghettiMeal, actual);
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            Console.WriteLine();
            Console.WriteLine("Enter meal time and dish types.  Type 'exit' when done.");
            var command = Console.ReadLine();

            while (command != "exit")
            {
                Console.WriteLine(_waiter.Serve(command));
                command = Console.ReadLine();
            }
        }
Beispiel #4
0
 public Meal Order(Menu menu)
 {
     return(waiter.Serve(menu));
 }