Search in sources :

Example 6 with Pet

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

the class FromTest method testFromExprFollowedByNot.

@Test
public void testFromExprFollowedByNot() {
    String rule = "";
    rule += "package org.drools.compiler;\n";
    rule += "global java.util.List list;\n";
    rule += "rule \"Rule 1\"\n";
    rule += "    when\n";
    rule += "        p : Person ($var: pet )\n";
    rule += "        Pet () from $var\n";
    rule += "        not Pet ()\n";
    rule += "    then\n";
    rule += "       list.add( p );\n";
    rule += "end\n";
    final KieBase kbase = loadKnowledgeBaseFromString(rule);
    final KieSession ksession = createKnowledgeSession(kbase);
    final List list = new ArrayList();
    ksession.setGlobal("list", list);
    final Person p = new Person();
    p.setPet(new Pet());
    ksession.insert(p);
    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) List(java.util.List) ArrayList(java.util.ArrayList) Person(org.drools.compiler.Person) Pet(org.drools.compiler.Pet) Test(org.junit.Test)

Example 7 with Pet

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

the class MemberOfTest method testMemberOfWithOr.

@Test
public void testMemberOfWithOr() throws Exception {
    String rule = "";
    rule += "package org.drools.compiler;\n";
    rule += "import java.util.ArrayList;\n";
    rule += "import org.drools.compiler.Person;\n";
    rule += "rule \"Test Rule\"\n";
    rule += "when\n";
    rule += "    $list: ArrayList()                                   \n";
    rule += "    ArrayList()                                          \n";
    rule += "            from collect(                                \n";
    rule += "                  Person(                                \n";
    rule += "                      (                                  \n";
    rule += "                          pet memberOf $list             \n";
    rule += "                      ) || (                             \n";
    rule += "                          pet == null                    \n";
    rule += "                      )                                  \n";
    rule += "                  )                                      \n";
    rule += "            )\n";
    rule += "then\n";
    rule += "  System.out.println(\"hello person\");\n";
    rule += "end";
    final KieBase kbase = SerializationHelper.serializeObject(loadKnowledgeBaseFromString(rule));
    final KieSession session = createKnowledgeSession(kbase);
    final Person toni = new Person("Toni", 12);
    toni.setPet(new Pet("Mittens"));
    session.insert(new ArrayList());
    session.insert(toni);
    session.fireAllRules();
}
Also used : KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) Person(org.drools.compiler.Person) Pet(org.drools.compiler.Pet) Test(org.junit.Test)

Example 8 with Pet

use of org.drools.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.compiler.Person\n";
    drl += "import org.drools.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";
    final KieBase kbase = loadKnowledgeBaseFromString(drl);
    final KieSession ksession = createKnowledgeSession(kbase);
    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.compiler.Person) Pet(org.drools.compiler.Pet) Test(org.junit.Test)

Aggregations

Pet (org.drools.compiler.Pet)8 Test (org.junit.Test)8 KieBase (org.kie.api.KieBase)8 KieSession (org.kie.api.runtime.KieSession)8 ArrayList (java.util.ArrayList)6 List (java.util.List)5 Person (org.drools.compiler.Person)4 FactA (org.drools.compiler.FactA)3 Foo (org.drools.compiler.Foo)3 Arrays.asList (java.util.Arrays.asList)1 Date (java.util.Date)1 PseudoClockScheduler (org.drools.core.time.impl.PseudoClockScheduler)1 ObjectDeletedEvent (org.kie.api.event.rule.ObjectDeletedEvent)1 RuleRuntimeEventListener (org.kie.api.event.rule.RuleRuntimeEventListener)1 KieSessionConfiguration (org.kie.api.runtime.KieSessionConfiguration)1 FactHandle (org.kie.api.runtime.rule.FactHandle)1