Search in sources :

Example 1 with FactA

use of org.drools.mvel.compiler.FactA in project drools by kiegroup.

the class JBRULESTest method testJBRules2369.

@Test
public void testJBRules2369() {
    KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(this.getClass(), kieBaseTestConfiguration, "test_JBRules2369.drl");
    KieSession ksession = kbase.newKieSession();
    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());
}
Also used : FactHandle(org.kie.api.runtime.rule.FactHandle) KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) FactA(org.drools.mvel.compiler.FactA) FactB(org.drools.mvel.compiler.FactB) Test(org.junit.Test)

Example 2 with FactA

use of org.drools.mvel.compiler.FactA in project drools by kiegroup.

the class FirstOrderLogicTest method testOrWithVariableResolution2.

// JBRULES-2526
@Test
public void testOrWithVariableResolution2() throws Exception {
    KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(getClass(), kieBaseTestConfiguration, "test_OrCEFollowedByMultipleEval2.drl");
    KieSession ksession = kbase.newKieSession();
    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));
}
Also used : KieBase(org.kie.api.KieBase) AgendaEventListener(org.kie.api.event.rule.AgendaEventListener) KieSession(org.kie.api.runtime.KieSession) FactA(org.drools.mvel.compiler.FactA) FactB(org.drools.mvel.compiler.FactB) AfterMatchFiredEvent(org.kie.api.event.rule.AfterMatchFiredEvent) FactC(org.drools.mvel.compiler.FactC) Test(org.junit.Test)

Example 3 with FactA

use of org.drools.mvel.compiler.FactA in project drools by kiegroup.

the class FirstOrderLogicTest method testOrWithVariableResolution.

// JBRULES-2482
@Test
public void testOrWithVariableResolution() throws Exception {
    KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(getClass(), kieBaseTestConfiguration, "test_OrCEFollowedByMultipleEval.drl");
    KieSession ksession = kbase.newKieSession();
    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));
}
Also used : KieBase(org.kie.api.KieBase) AgendaEventListener(org.kie.api.event.rule.AgendaEventListener) KieSession(org.kie.api.runtime.KieSession) FactA(org.drools.mvel.compiler.FactA) FactB(org.drools.mvel.compiler.FactB) AfterMatchFiredEvent(org.kie.api.event.rule.AfterMatchFiredEvent) FactC(org.drools.mvel.compiler.FactC) Test(org.junit.Test)

Example 4 with FactA

use of org.drools.mvel.compiler.FactA in project drools by kiegroup.

the class SessionsPoolTest method createFactAndInsert.

private void createFactAndInsert(KieSession ksession) {
    FactA factA = new FactA();
    factA.setField1("code1");
    ksession.insert(factA);
    FactB factB = new FactB();
    factB.setF2(1);
    ksession.insert(factB);
    FactC factC = new FactC();
    factC.setF1("code3");
    factC.setF2(2);
    ksession.insert(factC);
}
Also used : FactA(org.drools.mvel.compiler.FactA) FactB(org.drools.mvel.compiler.FactB) FactC(org.drools.mvel.compiler.FactC)

Example 5 with FactA

use of org.drools.mvel.compiler.FactA in project drools by kiegroup.

the class ExecutionFlowControlTest method testSalienceExpressionWithOr.

@Test
public void testSalienceExpressionWithOr() throws Exception {
    String text = "package org.kie.test\n" + "global java.util.List list\n" + "import " + FactA.class.getCanonicalName() + "\n" + "import " + Foo.class.getCanonicalName() + "\n" + "import " + Pet.class.getCanonicalName() + "\n" + "rule r1 salience (f1.field2)\n" + "when\n" + "    foo: Foo()\n" + "    ( Pet()  and f1 : FactA( field1 == 'f1') ) or \n" + "    f1 : FactA(field1 == 'f2') \n" + "then\n" + "    list.add( f1 );\n" + "    foo.setId( 'xxx' );\n" + "end\n" + "\n";
    KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, text);
    KieSession ksession = kbase.newKieSession();
    List list = new ArrayList();
    ksession.setGlobal("list", list);
    ksession.insert(new Foo(null, null));
    ksession.insert(new Pet(null));
    FactA fact1 = new FactA();
    fact1.setField1("f1");
    fact1.setField2(10);
    FactA fact2 = new FactA();
    fact2.setField1("f1");
    fact2.setField2(30);
    FactA fact3 = new FactA();
    fact3.setField1("f2");
    fact3.setField2(20);
    ksession.insert(fact1);
    ksession.insert(fact2);
    ksession.insert(fact3);
    ksession.fireAllRules();
    System.out.println(list);
    assertEquals(3, list.size());
    assertEquals(fact2, list.get(0));
    assertEquals(fact3, list.get(1));
    assertEquals(fact1, list.get(2));
}
Also used : KieBase(org.kie.api.KieBase) Foo(org.drools.mvel.compiler.Foo) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) ArrayList(java.util.ArrayList) List(java.util.List) FactA(org.drools.mvel.compiler.FactA) Pet(org.drools.mvel.compiler.Pet) Test(org.junit.Test)

Aggregations

FactA (org.drools.mvel.compiler.FactA)9 Test (org.junit.Test)8 KieSession (org.kie.api.runtime.KieSession)8 KieBase (org.kie.api.KieBase)7 FactB (org.drools.mvel.compiler.FactB)6 ArrayList (java.util.ArrayList)4 FactC (org.drools.mvel.compiler.FactC)4 List (java.util.List)3 Foo (org.drools.mvel.compiler.Foo)2 Pet (org.drools.mvel.compiler.Pet)2 AfterMatchFiredEvent (org.kie.api.event.rule.AfterMatchFiredEvent)2 AgendaEventListener (org.kie.api.event.rule.AgendaEventListener)2 InternalKnowledgeBase (org.drools.kiesession.rulebase.InternalKnowledgeBase)1 Cell (org.drools.mvel.compiler.Cell)1 Cheese (org.drools.mvel.compiler.Cheese)1 Person (org.drools.mvel.compiler.Person)1 IteratorToList (org.drools.mvel.integrationtests.IteratorToList)1 KiePackage (org.kie.api.definition.KiePackage)1 StatelessKieSession (org.kie.api.runtime.StatelessKieSession)1 FactHandle (org.kie.api.runtime.rule.FactHandle)1