use of org.drools.compiler.FactB in project drools by kiegroup.
the class FirstOrderLogicTest method testOrWithVariableResolution2.
// JBRULES-2526
@Test
public void testOrWithVariableResolution2() throws Exception {
// KieBase kbase = loadKnowledgeBase( "test_OrCEFollowedByMultipleEval.drl");
// KieSession workingMemory = createKnowledgeSession(kbase);
final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("test_OrCEFollowedByMultipleEval2.drl", FirstOrderLogicTest.class), ResourceType.DRL);
assertFalse(kbuilder.getErrors().toString(), kbuilder.hasErrors());
final InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addPackages(kbuilder.getKnowledgePackages());
final KieSession ksession = createKnowledgeSession(kbase);
final AgendaEventListener al = mock(AgendaEventListener.class);
ksession.addEventListener(al);
ksession.insert(new FactA("a"));
ksession.insert(new FactB("b"));
ksession.insert(new FactC("c"));
ksession.fireAllRules();
verify(al, times(8)).afterMatchFired(any(AfterMatchFiredEvent.class));
}
use of org.drools.compiler.FactB in project drools by kiegroup.
the class DynamicRulesTest method testDynamicRules2.
@Test(timeout = 10000)
public void testDynamicRules2() throws Exception {
InternalKnowledgeBase kbase = (InternalKnowledgeBase) loadKnowledgeBase();
KieSession session = createKnowledgeSession(kbase);
// Assert some simple facts
final FactA a = new FactA("hello", new Integer(1), new Float(3.14));
final FactB b = new FactB("hello", new Integer(2), new Float(6.28));
session.insert(a);
session.insert(b);
Collection<KiePackage> kpkgs = SerializationHelper.serializeObject(loadKnowledgePackages("test_DynamicRules2.drl"));
kbase.addPackages(kpkgs);
kbase = SerializationHelper.serializeObject(kbase);
session = SerializationHelper.getSerialisedStatefulKnowledgeSession(session, true);
session.fireAllRules();
}
use of org.drools.compiler.FactB in project drools by kiegroup.
the class JBRULESTest method testJBRules2369.
@Test
public void testJBRules2369() {
final KieBase kbase = loadKnowledgeBase("test_JBRules2369.drl");
final KieSession ksession = createKnowledgeSession(kbase);
final List<String> results = new ArrayList<String>();
ksession.setGlobal("results", results);
final FactA a = new FactA();
final FactB b = new FactB(Integer.valueOf(0));
final FactHandle aHandle = ksession.insert(a);
final FactHandle bHandle = ksession.insert(b);
ksession.fireAllRules();
assertEquals(1, results.size());
ksession.update(aHandle, a);
ksession.fireAllRules();
assertEquals(2, results.size());
}
use of org.drools.compiler.FactB in project drools by kiegroup.
the class FirstOrderLogicTest method testOrWithVariableResolution.
// JBRULES-2482
@Test
public void testOrWithVariableResolution() throws Exception {
// KieBase kbase = loadKnowledgeBase( "test_OrCEFollowedByMultipleEval.drl");
// KieSession workingMemory = createKnowledgeSession(kbase);
final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("test_OrCEFollowedByMultipleEval.drl", FirstOrderLogicTest.class), ResourceType.DRL);
assertFalse(kbuilder.getErrors().toString(), kbuilder.hasErrors());
final InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addPackages(kbuilder.getKnowledgePackages());
final KieSession ksession = createKnowledgeSession(kbase);
final AgendaEventListener al = mock(AgendaEventListener.class);
ksession.addEventListener(al);
ksession.insert(new FactA("a"));
ksession.insert(new FactB("b"));
ksession.insert(new FactC("c"));
ksession.fireAllRules();
verify(al, times(6)).afterMatchFired(any(AfterMatchFiredEvent.class));
}
use of org.drools.compiler.FactB in project drools by kiegroup.
the class MarshallingTest method testMultiRuleMultiJoinNodePatternsWithHalt.
@Test
public void testMultiRuleMultiJoinNodePatternsWithHalt() throws Exception {
String rule1 = "package org.drools.compiler.test;\n";
rule1 += "import org.drools.compiler.Person\n";
rule1 += "import org.drools.compiler.Cheese\n";
rule1 += "global java.util.List list\n";
rule1 += "rule \"Rule 1\"\n";
rule1 += "when\n";
rule1 += " $c : Cheese( ) \n";
rule1 += " $p : Person( cheese == $c ) \n";
rule1 += "then\n";
rule1 += " list.add( $p );\n";
rule1 += "end";
String rule2 = "package org.drools.compiler.test;\n";
rule2 += "import org.drools.compiler.Person\n";
rule2 += "import org.drools.compiler.Cheese\n";
rule2 += "import org.drools.compiler.Cell\n";
rule2 += "global java.util.List list\n";
rule2 += "rule \"Rule 2\"\n";
rule2 += "when\n";
rule2 += " $c : Cheese( ) \n";
rule2 += " $p : Person( cheese == $c ) \n";
rule2 += " $x : Cell( value == $p.age ) \n";
rule2 += "then\n";
rule2 += " list.add( $x );\n";
rule2 += "end";
String rule3 = "package org.drools.compiler.test;\n";
rule3 += "import org.drools.compiler.FactA\n";
rule3 += "import org.drools.compiler.FactB\n";
rule3 += "import org.drools.compiler.FactC\n";
rule3 += "import org.drools.compiler.Person\n";
rule3 += "global java.util.List list\n";
rule3 += "rule \"Rule 3\"\n";
rule3 += "when\n";
rule3 += " $a : FactA( field2 > 10 ) \n";
rule3 += " $b : FactB( f2 >= $a.field2 ) \n";
rule3 += " $p : Person( name == \"darth vadar\" ) \n";
rule3 += " $c : FactC( f2 >= $b.f2 ) \n";
rule3 += "then\n";
rule3 += " list.add( $c );\n";
rule3 += " drools.halt();\n";
rule3 += "end";
KieBase kBase = loadKnowledgeBaseFromString(rule1, rule2, rule3);
KieSession session = kBase.newKieSession();
List list = new ArrayList();
session.setGlobal("list", list);
Cheese stilton = new Cheese("stilton", 25);
Cheese brie = new Cheese("brie", 49);
Person bobba = new Person("bobba fet", 30);
bobba.setCheese(stilton);
Person vadar = new Person("darth vadar", 38);
Person c3po = new Person("c3p0", 17);
c3po.setCheese(stilton);
Person r2d2 = new Person("r2d2", 58);
r2d2.setCheese(brie);
session.insert(stilton);
session.insert(bobba);
session.insert(vadar);
session.insert(brie);
session.insert(c3po);
session.insert(r2d2);
session = SerializationHelper.getSerialisedStatefulKnowledgeSession(session, kBase, true);
session.fireAllRules();
list = (List) session.getGlobal("list");
assertEquals(3, list.size());
assertTrue(list.contains(r2d2));
assertTrue(list.contains(c3po));
assertTrue(list.contains(bobba));
session = SerializationHelper.getSerialisedStatefulKnowledgeSession(session, kBase, true);
Cell cell30 = new Cell(30);
session.insert(cell30);
Cell cell58 = new Cell(58);
session.insert(cell58);
session = SerializationHelper.getSerialisedStatefulKnowledgeSession(session, kBase, true);
session.fireAllRules();
assertEquals(5, list.size());
assertTrue(list.contains(cell30));
assertTrue(list.contains(cell58));
session = SerializationHelper.getSerialisedStatefulKnowledgeSession(session, kBase, true);
session.insert(new FactA(15));
session.insert(new FactB(20));
FactC factC27 = new FactC(27);
session.insert(factC27);
FactC factC52 = new FactC(52);
session.insert(factC52);
session = SerializationHelper.getSerialisedStatefulKnowledgeSession(session, kBase, true);
session.fireAllRules();
session.fireAllRules();
assertEquals(7, list.size());
assertTrue(list.contains(factC52));
assertTrue(list.contains(factC27));
}
Aggregations