Ejemplo n.º 1
0
        public void TestPointOfSale_AddDuplicatedProducts()
        {
            var productA    = new ProductA();
            var pointOfSale = new POS();

            Assert.DoesNotThrow(() => {
                pointOfSale.AddProduct(productA);
            });

            Assert.Throws <DuplicatedProductException>(() => {
                pointOfSale.AddProduct(productA);
            });
        }
Ejemplo n.º 2
0
        public void Setup()
        {
            _pointOfSale = new POS();
            _terminal    = new Terminal(_pointOfSale);

            var productA = new ProductA();
            var productB = new ProductB();
            var productC = new ProductC();
            var productD = new ProductD();

            List <Product> products = new List <Product> {
                productA, productB, productC, productD
            };

            foreach (var product in products)
            {
                Utils.DoSafe(() =>
                {
                    _pointOfSale.AddProduct(product);
                });
            }

            Utils.DoSafe(() =>
            {
                _terminal.SetPricing(productA.Code, (decimal)1.25d);
            });

            Utils.DoSafe(() =>
            {
                _terminal.SetPricing(productA.Code, (decimal)3.00d, 3);
            });

            Utils.DoSafe(() =>
            {
                _terminal.SetPricing(productB.Code, (decimal)4.25d);
            });

            Utils.DoSafe(() =>
            {
                _terminal.SetPricing(productC.Code, (decimal)1.00d);
            });

            Utils.DoSafe(() =>
            {
                _terminal.SetPricing(productC.Code, (decimal)5.00d, 6);
            });
        }
Ejemplo n.º 3
0
        public void TestPointOfSale_InitialiseWithProductList()
        {
            var productA = new ProductA();
            var productB = new ProductB();
            var productC = new ProductC();
            var productD = new ProductD();

            List <Product> products = new List <Product> {
                productA, productB, productC, productD
            };

            Assert.DoesNotThrow(() => {
                var pointOfSale = new POS(products);

                Assert.IsNotEmpty(products);
                Assert.AreEqual(products, pointOfSale.Products);
            });
        }
Ejemplo n.º 4
0
        private static void Init()
        {
            var productA = new ProductA();
            var productB = new ProductB();
            var productC = new ProductC();
            var productD = new ProductD();

            List <Product> products = new List <Product> {
                productA, productB, productC, productD
            };

            PointOfSale = new POS(products);
            Terminal    = new Terminal(PointOfSale);

            Utils.DoSafe(() =>
            {
                Terminal.SetPricing(productA.Code, (decimal)1.25d);
            });

            Utils.DoSafe(() =>
            {
                Terminal.SetPricing(productA.Code, (decimal)3.00d, 3);
            });

            Utils.DoSafe(() =>
            {
                Terminal.SetPricing(productB.Code, (decimal)4.25d);
            });

            Utils.DoSafe(() =>
            {
                Terminal.SetPricing(productC.Code, (decimal)1.00d);
            });

            Utils.DoSafe(() =>
            {
                Terminal.SetPricing(productC.Code, (decimal)5.00d, 6);
            });

            Utils.DoSafe(() =>
            {
                Terminal.SetPricing(productD.Code, (decimal)0.75d);
            });
        }
Ejemplo n.º 5
0
        public void TestPointOfSale_AddProducts()
        {
            var productA = new ProductA();
            var productB = new ProductB();
            var productC = new ProductC();
            var productD = new ProductD();

            List <Product> products = new List <Product> {
                productA, productB, productC, productD
            };

            var pointOfSale = new POS();

            Assert.DoesNotThrow(() => {
                foreach (var product in products)
                {
                    pointOfSale.AddProduct(product);
                }

                Assert.IsNotEmpty(products);
                Assert.AreEqual(products, pointOfSale.Products);
            });
        }
Ejemplo n.º 6
0
        public void Setup()
        {
            _pointOfSale = new POS();
            _terminal    = new Terminal(_pointOfSale);

            var productA = new ProductA();
            var productB = new ProductB();
            var productC = new ProductC();
            var productD = new ProductD();

            List <Product> products = new List <Product> {
                productA, productB, productC, productD
            };


            foreach (var product in products)
            {
                Utils.DoSafe(() =>
                {
                    _pointOfSale.AddProduct(product);
                });
            }
        }