Example #1
0
        public void InvoiceSimpleGroceriesTest()
        {
            var item = new Item()
            {
                Amount   = 150,
                Id       = 1,
                ItemType = ItemType.Default,
                Name     = "Choclate"
            };

            var item1 = new Item()
            {
                Amount   = 100,
                Id       = 1,
                ItemType = ItemType.Groceries,
                Name     = "Atta"
            };

            var items = new System.Collections.ObjectModel.Collection <Item>();

            items.Add(item);
            items.Add(item1);
            var invoice = new Invoice()
            {
                Items    = items,
                Customer = new Employee()
            };

            var engine = new RuleEngine();
            var result = engine.CalculateBill(invoice);

            Assert.AreEqual(result.TotalAmount, 195);
        }
Example #2
0
        public void InvoiceSimpleCustomer()
        {
            var item = new Item()
            {
                Amount   = 100,
                Id       = 1,
                ItemType = ItemType.Default,
                Name     = "Choclate"
            };


            var items = new System.Collections.ObjectModel.Collection <Item>();

            items.Add(item);
            var invoice = new Invoice()
            {
                Items    = items,
                Customer = new Customer()
            };

            var engine = new RuleEngine();
            var result = engine.CalculateBill(invoice);

            Assert.AreEqual(result.TotalAmount, Convert.ToDecimal(95));
        }
Example #3
0
        static void Main(string[] args)
        {
            var customer = GetCustomer();

            if (customer == null)
            {
                customer = GetCustomer();
            }
            else if (customer != null)
            {
                var items = GetItems();

                var invoice = new Invoice()
                {
                    Customer = customer,
                    Items    = items
                };
                var engine = new RuleEngine();
                var result = engine.CalculateBill(invoice);

                if (result != null)
                {
                    Console.WriteLine();
                    Console.WriteLine(string.Format("final Bill is {0}", result.TotalAmount));
                }
                else
                {
                    Console.WriteLine("Error");
                }
            }
            Console.ReadLine();
        }
Example #4
0
        public void NoItemsTest()
        {
            var invoice = new Invoice()
            {
            };

            var engine = new RuleEngine();
            var result = engine.CalculateBill(invoice);

            Assert.AreEqual(result.TotalAmount, 0);
        }
Example #5
0
        public void InvoiceTest()
        {
            var item = new Item()
            {
                Amount   = 100,
                Id       = 1,
                ItemType = ItemType.Default,
                Name     = "Choclate"
            };

            var items = new System.Collections.ObjectModel.Collection <Item>();

            items.Add(item);
            var invoice = new Invoice()
            {
                Items = items
            };

            var engine = new RuleEngine();
            var result = engine.CalculateBill(invoice);

            Assert.IsNotNull(result);
        }
Example #6
0
        public void InvoiceSimpleGroceriesCustomerTwoPlusYearsOldTest()
        {
            var item = new Item()
            {
                Amount   = 150,
                Id       = 1,
                ItemType = ItemType.Default,
                Name     = "Choclate"
            };

            var item1 = new Item()
            {
                Amount   = 100,
                Id       = 1,
                ItemType = ItemType.Groceries,
                Name     = "Atta"
            };

            var items = new System.Collections.ObjectModel.Collection <Item>();

            items.Add(item);
            items.Add(item1);
            var invoice = new Invoice()
            {
                Items    = items,
                Customer = new Customer()
                {
                    IsLoyal = true
                }
            };

            var engine = new RuleEngine();
            var result = engine.CalculateBill(invoice);

            Assert.AreEqual(result.TotalAmount, Convert.ToDecimal(232.5));
        }