Пример #1
0
        public void TestScanProduct_UnitPrice_SingleScanning(string productCode)
        {
            Assert.DoesNotThrow(() => {
                _terminal.ScanProduct(productCode);
            });

            var product = _pointOfSale.Products.FirstOrDefault(item => item.Equals(productCode));

            Assert.IsNotNull(product);
            Assert.IsNotNull(_terminal.Bill);
            Assert.IsNotEmpty(_terminal.Bill.ShoppingList);

            Assert.AreEqual(_terminal.CalculateTotal(), product.Price.UnitPrice);
        }
Пример #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("### Point Of Sale Terminal Service UP ###");

            var terminal = new PointOfSaleTerminal();

            // Set default pricing for Products
            Utils.SetDefaultPricing(terminal);

            // Order 1
            terminal.ScanProduct("A");
            terminal.ScanProduct("B");
            terminal.ScanProduct("C");
            terminal.ScanProduct("D");
            terminal.ScanProduct("A");
            terminal.ScanProduct("B");
            terminal.ScanProduct("A");

            Console.WriteLine($"Amount of Order 'ABCDABA': ${terminal.CalculateTotal()}");

            //Prepare for next order
            terminal.ClearForNewOrder();

            // Order 2
            terminal.ScanProduct("C");
            terminal.ScanProduct("C");
            terminal.ScanProduct("C");
            terminal.ScanProduct("C");
            terminal.ScanProduct("C");
            terminal.ScanProduct("C");
            terminal.ScanProduct("C");

            Console.WriteLine($"Amount of Order 'CCCCCCC': ${terminal.CalculateTotal()}");

            //Prepare for next order
            terminal.ClearForNewOrder();

            // Order 3
            terminal.ScanProduct("A");
            terminal.ScanProduct("B");
            terminal.ScanProduct("C");
            terminal.ScanProduct("D");

            Console.WriteLine($"Amount of Order 'ABCD': ${terminal.CalculateTotal()}");
        }