public void Resolve_method_should_return_a_list_of_all_passed_rule() { // arrange var workingMemory = SeedWorkingMemory(); var ruleBase = SeedRuleBase(); var engine = new InferenceEngine.Builder() .WithWorkingMemory(workingMemory) .WithRuleBase(ruleBase) .Build(); var rules = engine.Match(); var matchCount = rules.Count; // act var resolvedRules = engine.Resolve(rules); var resolvedCount = resolvedRules.Count; // assert Assert.Equal(matchCount, resolvedCount); }
public void Execute_method_should_trigger_rule_actions_against_the_working_memory() { // arrange var workingMemory = SeedWorkingMemory(); var ruleBase = SeedRuleBase(); var engine = new InferenceEngine.Builder() .WithWorkingMemory(workingMemory) .WithRuleBase(ruleBase) .Build(); var rules = engine.Match(); var resolvedRules = engine.Resolve(rules); // act engine.Execute(resolvedRules); var newFacts = workingMemory.Facts; var potentialCSharp = newFacts.FirstOrDefault(x => x.Assertion == "Potential C# experience"); var potentialAngular = newFacts.FirstOrDefault(x => x.Assertion == "Potential Angular experience"); // assert Assert.IsType <Fact>(potentialCSharp); Assert.IsType <Fact>(potentialAngular); }