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));
}
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();
}
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));
}
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));
}
Aggregations