Esempio n. 1
0
        public void CostOfNormalBasketTest()
        {
            List <string> productsToScan = new List <string>()
            {
                "A", "B", "C", "D", "A", "B", "A"
            };

            foreach (string product in productsToScan)
            {
                _terminal.ScanProduct(product);
            }

            Assert.AreEqual(13.25m, _terminal.CalculateTotal());
        }
Esempio n. 2
0
        private void ProcessCustomer(Customer customer)
        {
            if (customer == null ||
                string.IsNullOrWhiteSpace(customer.ShoppingList))
            {
                return;
            }

            var productCodes = customer.ShoppingList.ToCharArray();

            try
            {
                foreach (var code in productCodes)
                {
                    Utils.DoSafe(() => {
                        _terminal.ScanProduct(code.ToString());
                    });
                }

                customer.Bill = _terminal.Bill;
                _terminal.CalculateTotal();

                PrintBill(customer);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Esempio n. 3
0
        public void Run()
        {
            var products = new List <ProductDTO>
            {
                new ProductDTO {
                    Code = "A", RetailPrice = 1.25m, VolumePrice = 3m, VolumeQuantity = 3
                },
                new ProductDTO {
                    Code = "B", RetailPrice = 4.25m
                },
                new ProductDTO {
                    Code = "C", RetailPrice = 1m, VolumePrice = 5m, VolumeQuantity = 6
                },
                new ProductDTO {
                    Code = "D", RetailPrice = 0.75m
                }
            };

            terminal.SetPricing(products);
            terminal.Scan("A");
            terminal.Scan("B");
            terminal.Scan("C");
            terminal.Scan("D");
            terminal.Scan("A");
            terminal.Scan("B");
            terminal.Scan("A");

            Console.WriteLine($"ABCDABA = 13.25? Result: {terminal.CalculateTotal()}");

            Console.ReadLine();
        }
        public void When_InPackTerminalProductSetABCD_Expected_TotallPrice7_25()
        {
            const decimal        expected = 7.25m;
            IPointOfSaleTerminal terminal = components.Resolve <IPointOfSaleTerminal>();

            terminal.Scan("A");
            terminal.Scan("B");
            terminal.Scan("C");
            terminal.Scan("D");

            var result = terminal.CalculateTotal();

            Assert.That(result, Is.EqualTo(expected));
        }
        public void When_InPackTerminalProductSetCCCCCCC_Expected_TotallPrice6_00()
        {
            const decimal        expected = 6.00m;
            IPointOfSaleTerminal terminal = components.Resolve <IPointOfSaleTerminal>();

            terminal.Scan("C");
            terminal.Scan("C");
            terminal.Scan("C");
            terminal.Scan("C");
            terminal.Scan("C");
            terminal.Scan("C");
            terminal.Scan("C");

            var result = terminal.CalculateTotal();

            Assert.That(expected, Is.EqualTo(result));
        }