public void Constructor_WhenNoJoinTypeIsSpecified_ShouldConstructObjectWithNoneJoinType()
        {
            string       leftPredicate  = _fixture.Create <string>();
            OperatorType operatorType   = _fixture.Create <OperatorType>();
            string       rightPredicate = _fixture.Create <string>();

            RuleItem ruleItem = new ConstantRuleItem(leftPredicate, operatorType, rightPredicate);

            ruleItem.LeftPredicate.Should().Be(leftPredicate);
            ruleItem.OperatorType.Should().Be(operatorType);
            ruleItem.RightPredicate.Should().Be(rightPredicate);
            ruleItem.JoinType.Should().Be(JoinType.None);
            ruleItem.IsRightPredicateConstant.Should().BeTrue();
        }
Exemplo n.º 2
0
        public void AddRule_WhenAnExistingRuleIsAddedToTheRuleSet_ShouldNotDuplicateRule(RuleSet ruleSet, Rule rule)
        {
            "Given a valid rule set"
            .x(() =>
            {
                string name        = _fixture.Create <string>();
                string description = _fixture.Create <string>();
                string version     = _fixture.Create <string>();

                ruleSet = new RuleSet(name, description, version);
            });

            "And the rule set has a rule"
            .x(() =>
            {
                string code    = _fixture.Create <string>();
                string message = _fixture.Create <string>();

                rule = new Rule(code, message);

                string leftPredicate      = _fixture.Create <string>();
                OperatorType operatorType = OperatorType.Equal;
                string rightPredicate     = _fixture.Create <string>();

                RuleItem ruleItem = new ConstantRuleItem(leftPredicate, operatorType, rightPredicate);

                rule.AddRuleItem(ruleItem);
                ruleSet.AddRule(rule);
            });

            "When the existing rule is added to the rule set"
            .x(() =>
            {
                ruleSet.AddRule(rule);
            });

            "Then the rule should not be duplicated in the rule set."
            .x(() =>
            {
                ruleSet.Rules.Should().HaveCount(1);
            });
        }
Exemplo n.º 3
0
        public void RemoveRule_WhenARuleIsRemovedFromARuleSet_ShouldUpdateListOfRules(RuleSet ruleSet, Rule rule)
        {
            "Given a valid rule set"
            .x(() =>
            {
                string name        = _fixture.Create <string>();
                string description = _fixture.Create <string>();
                string version     = _fixture.Create <string>();

                ruleSet = new RuleSet(name, description, version);
            });

            "And the rule set has a rule"
            .x(() =>
            {
                string code    = _fixture.Create <string>();
                string message = _fixture.Create <string>();

                rule = new Rule(code, message);

                string leftPredicate      = _fixture.Create <string>();
                OperatorType operatorType = OperatorType.Equal;
                string rightPredicate     = _fixture.Create <string>();

                RuleItem ruleItem = new ConstantRuleItem(leftPredicate, operatorType, rightPredicate);

                rule.AddRuleItem(ruleItem);
                ruleSet.AddRule(rule);
            });

            "When the existing rule is removed"
            .x(() =>
            {
                ruleSet.RemoveRule(rule);
            });

            "Then the list of rules in the rule set should be updated."
            .x(() =>
            {
                ruleSet.Rules.Should().HaveCount(0);
            });
        }
Exemplo n.º 4
0
        public void IsValid_WhenARuleSetIsValid_ShouldReturnTrue()
        {
            string name        = _fixture.Create <string>();
            string description = _fixture.Create <string>();
            string version     = _fixture.Create <string>();

            RuleSet ruleSet = new RuleSet(name, description, version);

            string code    = _fixture.Create <string>();
            string message = _fixture.Create <string>();

            Rule rule = new Rule(code, message);

            string       leftPredicate  = _fixture.Create <string>();
            OperatorType operatorType   = OperatorType.Equal;
            string       rightPredicate = _fixture.Create <string>();

            RuleItem ruleItem = new ConstantRuleItem(leftPredicate, operatorType, rightPredicate);

            rule.AddRuleItem(ruleItem);
            ruleSet.AddRule(rule);

            ruleSet.IsValid().Should().BeTrue();
        }