Search in sources :

Example 1 with Pet

use of org.drools.mvel.compiler.Pet 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)

Example 2 with Pet

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

the class MapConstraintTest method testAccessingMapValues.

@Test
public void testAccessingMapValues() throws Exception {
    String rule = "";
    rule += "package org.drools.mvel.compiler;\n";
    rule += "import org.drools.mvel.compiler.Pet;\n";
    rule += "rule \"Test Rule\"\n";
    rule += "  when\n";
    rule += "    $pet: Pet()\n";
    rule += "    Pet( \n";
    rule += "      ownerName == $pet.attributes[\"key\"] \n";
    rule += "    )\n";
    rule += "  then\n";
    rule += "    System.out.println(\"hi pet\");\n";
    rule += "end";
    KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, rule);
    KieSession session = kbase.newKieSession();
    assertNotNull(session);
    final Pet pet1 = new Pet("Toni");
    pet1.getAttributes().put("key", "value");
    final Pet pet2 = new Pet("Toni");
    session.insert(pet1);
    session.insert(pet2);
    session.fireAllRules();
}
Also used : KieBase(org.kie.api.KieBase) KieSession(org.kie.api.runtime.KieSession) Pet(org.drools.mvel.compiler.Pet) Test(org.junit.Test)

Example 3 with Pet

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

the class InsertTest method testInsert.

@Test
public void testInsert() throws Exception {
    String drl = "";
    drl += "package test\n";
    drl += "import org.drools.mvel.compiler.Person\n";
    drl += "import org.drools.mvel.compiler.Pet\n";
    drl += "import java.util.ArrayList\n";
    drl += "global java.util.List list\n";
    drl += "rule test\n";
    drl += "when\n";
    drl += "$person:Person()\n";
    drl += "$pets : ArrayList()\n";
    drl += "   from collect( \n";
    drl += "      Pet(\n";
    drl += "         ownerName == $person.name\n";
    drl += "      )\n";
    drl += "   )\n";
    drl += "then\n";
    drl += "  list.add( $person );\n";
    drl += "end\n";
    KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, drl);
    KieSession ksession = kbase.newKieSession();
    final List list = new ArrayList();
    ksession.setGlobal("list", list);
    final Person p = new Person("Toni");
    ksession.insert(p);
    ksession.insert(new Pet("Toni"));
    ksession.fireAllRules();
    assertEquals(1, list.size());
    assertSame(p, list.get(0));
}
Also used : KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) ArrayList(java.util.ArrayList) List(java.util.List) Person(org.drools.mvel.compiler.Person) Pet(org.drools.mvel.compiler.Pet) Test(org.junit.Test)

Example 4 with Pet

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

the class ExecutionFlowControlTest method testEnabledExpressionWithOr.

@Test
public void testEnabledExpressionWithOr() 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) enabled(f1.field2 >= 20)\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();
    assertEquals(2, list.size());
    assertEquals(fact2, list.get(0));
    assertEquals(fact3, list.get(1));
}
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

Pet (org.drools.mvel.compiler.Pet)4 Test (org.junit.Test)4 KieBase (org.kie.api.KieBase)4 KieSession (org.kie.api.runtime.KieSession)4 ArrayList (java.util.ArrayList)3 List (java.util.List)3 FactA (org.drools.mvel.compiler.FactA)2 Foo (org.drools.mvel.compiler.Foo)2 Person (org.drools.mvel.compiler.Person)1