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"); } }
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); }