static void Main(string[] args) { Console.WriteLine("INPUT:"); var i = 1; foreach (var productList in InputOrders) { Console.WriteLine(); Console.WriteLine($"Input {i++}:"); foreach (var productString in productList) { Console.WriteLine(productString); } } i = 1; Console.WriteLine(); Console.WriteLine("OUTPUT:"); using (new CultureOverride(CultureInfo.InvariantCulture)) { foreach (var productList in InputOrders) { Console.WriteLine(); Console.WriteLine($"Output {i++}:"); var productParser = new ProductParser(); var orderInvoiceManager = new OrderInvoiceManager(); var orderInvoice = orderInvoiceManager.CreateInvoice(productParser.ParseAll(productList)); foreach (var computedProduct in orderInvoice.Products) { Console.WriteLine(computedProduct); } Console.WriteLine($"Sales Taxes: {orderInvoiceManager.GetTotalTaxes(orderInvoice).ToString("0.00")}"); Console.WriteLine($"Total: {orderInvoiceManager.GetTotalAmount(orderInvoice).ToString("0.00")}"); } Console.WriteLine(); Console.Write("Press any key to exit..."); Console.ReadLine(); } }
public void Should_ThrowFormatException_When_BadProductInputs() { // Arrange var productParser = new ProductParser(); var productStringList = new List <string> { "1 imported box of chocolates at 11.25", "1.5 books at 12.49" }; // Act & Assert var exception = Assert.Throws <FormatException>(() => productParser.ParseAll(productStringList)); Assert.Equal($"Unable to parse \"{productStringList[1]}\"", exception.Message); }
public void Should_ParseAllProductInputs() { // Arrange var productParser = new ProductParser(); var productStringList = new List <string> { "1 book at 12.49", "1 music CD at 14.99", "1 chocolate bar at 0.85" }; // Act var products = productParser.ParseAll(productStringList); // Assert Assert.Equal(productStringList.Count, products.Count); }
public void Should_ReturnExpectedString_When_PrintingComputedProduct(string productInput, string expectedOutput) { using (new CultureOverride(CultureInfo.InvariantCulture)) { // Arrange var productParser = new ProductParser(); var orderInvoiceManager = new OrderInvoiceManager(); // Act var orderInvoice = orderInvoiceManager.CreateInvoice(productParser.ParseAll(new List <string> { productInput })); // Assert Assert.Equal(1, orderInvoice.Products.Count); Assert.Equal(expectedOutput, orderInvoice.Products.Single().ToString()); } }