Example #1
0
        public void TestCheckoutCart()
        {
            CartManager promotedCartManager = new CartManager(new PromotionEngine());
            Product     product1            = new Product()
            {
                Id = 1, Name = "A", Price = 50
            };
            Product product2 = new Product()
            {
                Id = 2, Name = "B", Price = 30
            };
            Product product3 = new Product()
            {
                Id = 3, Name = "C", Price = 20
            };
            Product product4 = new Product()
            {
                Id = 4, Name = "D", Price = 15
            };

            Cart cart = new Cart()
            {
                Id = 1
            };
            int expected = 280;
            int actual;

            promotedCartManager.AddProductToCart(cart, product1, 3);
            promotedCartManager.AddProductToCart(cart, product2, 5);
            promotedCartManager.AddProductToCart(cart, product3, 1);
            promotedCartManager.AddProductToCart(cart, product4, 1);
            actual = promotedCartManager.CheckoutCart(cart);
            Assert.AreEqual(expected, actual);
        }
Example #2
0
        static void Main(string[] args)
        {
            Product productA = new Product()
            {
                Id = 1, Name = "A", Price = 50
            };
            Product productB = new Product()
            {
                Id = 2, Name = "B", Price = 30
            };
            Product productC = new Product()
            {
                Id = 3, Name = "C", Price = 20
            };
            Product productD = new Product()
            {
                Id = 4, Name = "D", Price = 15
            };
            List <Product> products = new List <Product>();

            products.Add(productA);
            products.Add(productB);
            products.Add(productC);
            products.Add(productD);
            Cart cartA = new Cart()
            {
                Id = 1
            };
            Cart cartB = new Cart()
            {
                Id = 2
            };
            Cart cartC = new Cart()
            {
                Id = 3
            };
            CartManager promotedCartManager = new CartManager(new PromotionEngine());

            //Scenario 1 added
            promotedCartManager.AddProductToCart(cartA, productA, 1);
            promotedCartManager.AddProductToCart(cartA, productB, 1);
            promotedCartManager.AddProductToCart(cartA, productC, 1);

            //Scenario 2 added
            promotedCartManager.AddProductToCart(cartB, productA, 5);
            promotedCartManager.AddProductToCart(cartB, productB, 5);
            promotedCartManager.AddProductToCart(cartB, productC, 1);

            //Scenario 1 added
            promotedCartManager.AddProductToCart(cartC, productA, 3);
            promotedCartManager.AddProductToCart(cartC, productB, 5);
            promotedCartManager.AddProductToCart(cartC, productC, 1);
            promotedCartManager.AddProductToCart(cartC, productD, 1);

            //Displying Product Details
            System.Console.WriteLine("=========================");
            System.Console.WriteLine("Product Details");
            System.Console.WriteLine("=========================");
            System.Console.WriteLine("Id" + "   " + "Name" + "    " + "price");
            foreach (var item in products)
            {
                System.Console.WriteLine(item.Id + "     " + item.Name + "       " + item.Price);
            }
            System.Console.WriteLine("=========================");
            System.Console.WriteLine();

            // Displaying Total with Promotion
            System.Console.WriteLine("Senario A Promoted Price: " + promotedCartManager.CheckoutCart(cartA));
            System.Console.WriteLine("Senario B Promoted Price: " + promotedCartManager.CheckoutCart(cartB));
            System.Console.WriteLine("Senario C Promoted Price: " + promotedCartManager.CheckoutCart(cartC));
            System.Console.ReadLine();
        }