Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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());
            }
        }