public async Task GetAvailableItem_ShouldReturnCorrectCount() { Assert.Equal((getTestProducts().Count(prod => prod.ProductType.Equals(ProductsTypes.Reeses))), _machine.GetAvailableProducts().Count(prod => prod.ProductType.Equals(ProductsTypes.Reeses))); Assert.Equal((getTestProducts().Count(prod => prod.ProductType.Equals(ProductsTypes.Dorritos))), _machine.GetAvailableProducts().Count(prod => prod.ProductType.Equals(ProductsTypes.Dorritos))); }
public static ProductsTypes SelectProduct(IVendingMachine machine) { var products = machine.GetAvailableProducts(); // enumeration over the existing/available products foreach (IProducts item in products) { Console.WriteLine($"For {(item.ProductType).AsString(EnumFormat.Description)} Please Press: ${item.Row} ${item.Column}"); } int selecedProduct; if (int.TryParse(Console.ReadLine(), out selecedProduct)) { return((ProductsTypes)selecedProduct); } else { throw new InvalidOperationException("please enter a valid number for product"); } }