public void Third_Pickup_Test_Case() { //Arrange var quantityToPick = 24; var expectedResult = new List <InventoryToPick>() { new InventoryToPick(2, 12), new InventoryToPick(5, 12), }; _locations.Add(new Location { Id = 1, QuantityAvailable = 10 }); _locations.Add(new Location { Id = 2, QuantityAvailable = 12 }); _locations.Add(new Location { Id = 3, QuantityAvailable = 10 }); _locations.Add(new Location { Id = 4, QuantityAvailable = 10 }); _locations.Add(new Location { Id = 5, QuantityAvailable = 12 }); var pickingLocations = new GoFlow.InventoryPickingLocations.PickingLocations(_locations); //Act var picks = pickingLocations.Calculate(quantityToPick); //Assert Assert.NotNull(picks); Assert.IsTrue(new InventoryToPickComparer().Equals(expectedResult, picks)); }
public static void PickupLocations() { var id = 1; var addNewLocation = true; var locations = new List <Location>(); Console.WriteLine("Enter the quantity to pick: "); int.TryParse(Console.ReadLine(), out int quantityToPick); Console.WriteLine("Note: To stop inserting locations use: x "); while (addNewLocation) { var input = Console.ReadLine(); int.TryParse(input, out int locationQuantity); Console.WriteLine("Enter the location quantity: "); locations.Add(new Location { Id = id++, QuantityAvailable = locationQuantity }); if (input.ToLower() == "x") { break; } } PickingLocations pickingLocations = new PickingLocations(locations); var picks = pickingLocations.Calculate(quantityToPick); foreach (var pick in picks) { Console.WriteLine($"\nLocation id: {pick.LocationId} quantity: {pick.Quantity}"); } }