示例#1
0
        private bool DistributeOrderItens(List <OrderItems> areas)
        {
            var drinkAreaHandle  = new DrinkAreaHandle();
            var saladAreaHandle  = new SaladAreaHandle();
            var grillAreaHandle  = new GrillAreaHandle();
            var friesAreaHandle  = new FriesAreaHandle();
            var desertAreaHandle = new DesertAreaHandle();

            drinkAreaHandle.SetNextHandler(saladAreaHandle);
            saladAreaHandle.SetNextHandler(grillAreaHandle);
            grillAreaHandle.SetNextHandler(friesAreaHandle);
            friesAreaHandle.SetNextHandler(desertAreaHandle);

            try
            {
                drinkAreaHandle.ProcessArea(areas);
                return(true);
            }
            catch
            {
                throw new DomainException("Something wrong to distribute items order");
            }
        }
示例#2
0
        public void Handler_DistributeOrders_MustExecuteWithSuccess()
        {
            // Arrange
            var order = Order.OrderFactory.NewOrder(1);

            order.OrderItems.Add(new OrderItems(1, 2, "Salad", "salad", 1, 3));
            order.OrderItems.Add(new OrderItems(1, 3, "lettuce", "salad", 1, 3));
            order.OrderItems.Add(new OrderItems(1, 4, "Ice Cream", "desert", 1, 5));
            order.OrderItems.Add(new OrderItems(1, 5, "Cheese Burger", "grill", 1, 2));
            order.OrderItems.Add(new OrderItems(1, 5, "Cheese Burger", "grill", 1, 2));
            order.OrderItems.Add(new OrderItems(1, 6, "DietCoke", "drink", 1, 4));
            order.OrderItems.Add(new OrderItems(1, 6, "Soda", "drink", 1, 4));

            var dah = new DrinkAreaHandle();
            var sah = new SaladAreaHandle();
            var gah = new GrillAreaHandle();
            var fah = new FriesAreaHandle();
            var deh = new DesertAreaHandle();


            // Act

            var drink  = dah.EnqueueOrders(order.OrderItems, KitchenAreasEnum.drink);
            var salad  = sah.EnqueueOrders(order.OrderItems, KitchenAreasEnum.salad);
            var grill  = gah.EnqueueOrders(order.OrderItems, KitchenAreasEnum.grill);
            var fries  = fah.EnqueueOrders(order.OrderItems, KitchenAreasEnum.fries);
            var desert = deh.EnqueueOrders(order.OrderItems, KitchenAreasEnum.desert);

            // Assert

            Assert.Equal(2, drink.Count);
            Assert.Equal(2, salad.Count);
            Assert.Equal(2, grill.Count);
            Assert.Equal(3, fries.Count);
            Assert.Equal(2, drink.Count);
        }