コード例 #1
0
        public void AddAction_should_add_an_action_to_the_actions_collection()
        {
            // arrange
            var action = new AddRuleAction();

            // act
            _rule.AddRuleAction(action);

            // assert
            Assert.Contains(action, _rule.Actions);
        }
コード例 #2
0
        public void RemoveAction_should_remove_an_action_from_the_actions_collection()
        {
            // arrange
            var action = new AddRuleAction();

            _rule.AddRuleAction(action);

            // act
            _rule.RemoveRuleAction(action);

            // assert
            Assert.DoesNotContain(action, _rule.Actions);
        }
コード例 #3
0
        public void ExecuteActions_should_mark_the_rule_as_triggered_once_complete()
        {
            // arrange
            var assertion = Guid.NewGuid().ToString();
            var newFact   = new Fact()
            {
                Assertion = assertion
            };
            var action = new AddRuleAction();

            action.SetFact(newFact);
            _rule.AddRuleAction(action);
            var facts = GenerateFacts();

            // act
            _rule.ExecuteActions(facts);

            // assert
            Assert.True(_rule.Triggered);
        }
コード例 #4
0
        public void ExecuteActions_should_execute_actions_in_the_actions_collection_against_a_list_of_facts()
        {
            // arrange
            var assertion = Guid.NewGuid().ToString();
            var newFact   = new Fact()
            {
                Assertion = assertion
            };
            var action = new AddRuleAction();

            action.SetFact(newFact);
            _rule.AddRuleAction(action);
            var facts = GenerateFacts();

            // act
            _rule.ExecuteActions(facts);
            var result = facts.FirstOrDefault(x => x.Assertion == assertion);

            // assert
            Assert.NotNull(result);
        }
コード例 #5
0
        private RuleBase SeedRuleBase(bool withMatch = true)
        {
            var assertion = withMatch ? "Has .NET" : "Has no .NET";

            var ruleBase = new RuleBase.Builder().Build();

            var rule = new Rule(Guid.Empty);
            var fact = new Fact()
            {
                Assertion = assertion
            };
            var precondition = new ContainsPrecondition.Builder()
                               .WithFact(fact)
                               .Build();

            rule.AddPrecondition(precondition);

            var action1 = new AddRuleAction();

            action1.SetFact(new Fact()
            {
                Assertion = "Potential C# experience"
            });

            var action2 = new AddRuleAction();

            action2.SetFact(new Fact()
            {
                Assertion = "Potential Angular experience"
            });

            rule.AddRuleAction(action1);
            rule.AddRuleAction(action2);

            ruleBase.AddRule(rule);

            return(ruleBase);
        }