Example #1
0
        public void Rule1_Validate_NotMathcingItem3A_ShouldReturnFalse()
        {
            //Arrange
            ShoppingCart shoppingCart = new ShoppingCart();

            shoppingCart.ShoppingCartItem.Add(new ShoppingCartItem()
            {
                PromotioApplied = false, SKU = new SKU()
                {
                    Name = "A", Price = 50
                }
            });
            shoppingCart.ShoppingCartItem.Add(new ShoppingCartItem()
            {
                PromotioApplied = false, SKU = new SKU()
                {
                    Name = "A", Price = 50
                }
            });


            var rules = new JsonRuleRepository().GetRules();
            var rule  = rules.Where(t => t.RuleCode.Equals("Rule1")).Single();


            //Act
            var result = new ConfiguredRule(rule).Validate(shoppingCart);

            //Assert
            Assert.AreEqual(false, result);
        }
Example #2
0
        public void Rule3_ApplyPromotion_MathcingItemCAndD_ShouldApplyPromotion()
        {
            //Arrange
            ShoppingCart shoppingCart = new ShoppingCart();

            shoppingCart.ShoppingCartItem.Add(new ShoppingCartItem()
            {
                PromotioApplied = false, SKU = new SKU()
                {
                    Name = "C", Price = 20
                }
            });
            shoppingCart.ShoppingCartItem.Add(new ShoppingCartItem()
            {
                PromotioApplied = false, SKU = new SKU()
                {
                    Name = "D", Price = 15
                }
            });

            var rules = new JsonRuleRepository().GetRules();
            var rule  = rules.Where(t => t.RuleCode.Equals("Rule3")).Single();


            //Act
            new ConfiguredRule(rule).ApplyPromotion(shoppingCart);

            //Assert
            Assert.AreEqual(30.0M, shoppingCart.Total);
        }