Ejemplo n.º 1
0
        public void RuleEngine_DiscountsBenefitCost()
        {
            //Arrange
            var benefitRule = new BenefitRule()
            {
                Amount         = -10,
                AdjustmentType = Enums.AdjustmentType.Percentage,
            };

            target.Start(testEmployee);
            target.SetRule(benefitRule);
            mStrategy.Setup(x => x.ApplyRule(It.IsAny <Employee>()))
            .Returns(1000);
            var expectedBenefitCost = 1900;

            //Act
            target.ApplyRule();

            //Assert
            Assert.AreEqual(expectedBenefitCost, target.End());
        }
Ejemplo n.º 2
0
        public void TestSeondRule()
        {
            //Arrange
            Parcel p = new Parcel(11, 10, 10, 10);

            //Act
            Tuple <string, double> output = RuleEngine.ApplyRule(p);

            //Assert
            Assert.AreEqual(output.Item1, "Heavy Parcel");
            Assert.AreEqual(output.Item2, 15 * 11);
        }
Ejemplo n.º 3
0
        public void TestHighestRule()
        {
            //Arrange
            Parcel p = new Parcel(51, 10, 10, 10);

            //Act
            Tuple <string, double> output = RuleEngine.ApplyRule(p);

            //Assert
            Assert.AreEqual(output.Item1, "Rejected");
            Assert.AreEqual(output.Item2, double.NaN);
        }
Ejemplo n.º 4
0
        public void TestLowestRule()
        {
            //Arrange
            Parcel p = new Parcel(10, 1250, 2, 1);

            //Act
            Tuple <string, double> output = RuleEngine.ApplyRule(p);

            //Assert
            Assert.AreEqual(output.Item1, "Large Parcel");
            Assert.AreEqual(output.Item2, (1250d * 2 * 1) * 0.03);
        }
Ejemplo n.º 5
0
        public void TestFourthRule()
        {
            //Arrange
            Parcel p = new Parcel(10, 750, 2, 1);

            //Act
            Tuple <string, double> output = RuleEngine.ApplyRule(p);

            //Assert
            Assert.AreEqual(output.Item1, "Medium Parcel");
            Assert.AreEqual(output.Item2, (750d * 2 * 1) * 0.04);
        }
Ejemplo n.º 6
0
        public void TestThirdRule()
        {
            //Arrange
            Parcel p = new Parcel(10, 745, 2, 1);

            //Act
            Tuple <string, double> output = RuleEngine.ApplyRule(p);

            //Assert
            Assert.AreEqual(output.Item1, "Small Parcel");
            Assert.AreEqual(output.Item2, (745d * 2 * 1) * 0.05);
        }