public void Should_optimize_rules_of_multiple_types() { var engine = RulesEngineFactory.New(x => { x.Rule <FirstRule>(); x.Rule <SecondRule>(); }); FactHandle <Destination>[] destinations; using (var session = engine.CreateSession()) { object first = new FirstSegmentImpl { SourceId = "public" }; session.Add(first); object second = new SecondSegmentImpl { Amount = 10001.0m }; session.Add(second); session.Run(); destinations = session.Facts <Destination>().ToArray(); } Assert.AreEqual(2, destinations.Length); Assert.AreEqual("90210", destinations[0].Fact.Address); Assert.AreEqual("74011", destinations[1].Fact.Address); }
public void Should_optimize_rules_of_multiple_types() { var engine = RulesEngineFactory.New(x => { x.Rule<FirstRule>(); x.Rule<SecondRule>(); }); FactHandle<Destination>[] destinations; using(var session = engine.CreateSession()) { object first = new FirstSegmentImpl {SourceId = "public"}; session.Add(first); object second = new SecondSegmentImpl {Amount = 10001.0m}; session.Add(second); session.Run(); destinations = session.Facts<Destination>().ToArray(); } Assert.AreEqual(2, destinations.Length); Assert.AreEqual("90210", destinations[0].Fact.Address); Assert.AreEqual("74011", destinations[1].Fact.Address); }