Search in sources :

Example 6 with Foo

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

the class MatchTest method testGetObjectsTwoPatterns.

@Test
public void testGetObjectsTwoPatterns() {
    // DROOLS-1470
    String str = "import org.drools.mvel.compiler.Foo\n" + "import org.drools.mvel.compiler.Bar\n" + "global java.util.List list\n" + "rule R when\n" + "  $b : Bar(id == \"minivan\")\n" + "  Foo(bar == $b)\n" + "then\n" + "  list.addAll(kcontext.getMatch().getObjects());\n" + "end\n";
    KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
    KieSession ksession = kbase.newKieSession();
    List<Object> list = new ArrayList<>();
    ksession.setGlobal("list", list);
    Bar roadsterType = new Bar("roadster");
    ksession.insert(roadsterType);
    Foo bmwZ4 = new Foo("BMW Z4", roadsterType);
    ksession.insert(bmwZ4);
    Foo lotusElise = new Foo("Lotus Elise", roadsterType);
    ksession.insert(lotusElise);
    Foo mazdaMx5 = new Foo("Mazda MX-5", roadsterType);
    ksession.insert(mazdaMx5);
    Bar miniVanType = new Bar("minivan");
    ksession.insert(miniVanType);
    Foo kieCarnival = new Foo("Kia Carnival", miniVanType);
    ksession.insert(kieCarnival);
    Foo renaultEspace = new Foo("Renault Espace", miniVanType);
    ksession.insert(renaultEspace);
    ksession.fireAllRules();
    assertTrue(list.contains(miniVanType));
    assertTrue(list.contains(kieCarnival));
    assertTrue(list.contains(renaultEspace));
    ksession.dispose();
}
Also used : Bar(org.drools.mvel.compiler.Bar) KieBase(org.kie.api.KieBase) Foo(org.drools.mvel.compiler.Foo) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) Test(org.junit.Test)

Example 7 with Foo

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

the class MatchTest method testGetObjectsOnePattern.

@Test
public void testGetObjectsOnePattern() {
    // DROOLS-1470
    String str = "import org.drools.mvel.compiler.Foo\n" + "import org.drools.mvel.compiler.Bar\n" + "global java.util.List list\n" + "rule R when\n" + "  Foo(id == \"Lotus Elise\")\n" + "then\n" + "  list.addAll(kcontext.getMatch().getObjects());\n" + "end\n";
    KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
    KieSession ksession = kbase.newKieSession();
    List<Object> list = new ArrayList<>();
    ksession.setGlobal("list", list);
    Bar roadsterType = new Bar("roadster");
    ksession.insert(roadsterType);
    Foo bmwZ4 = new Foo("BMW Z4", roadsterType);
    ksession.insert(bmwZ4);
    Foo lotusElise = new Foo("Lotus Elise", roadsterType);
    ksession.insert(lotusElise);
    Foo mazdaMx5 = new Foo("Mazda MX-5", roadsterType);
    ksession.insert(mazdaMx5);
    Bar miniVanType = new Bar("minivan");
    ksession.insert(miniVanType);
    Foo kieCarnival = new Foo("Kia Carnival", miniVanType);
    ksession.insert(kieCarnival);
    Foo renaultEspace = new Foo("Renault Espace", miniVanType);
    ksession.insert(renaultEspace);
    ksession.fireAllRules();
    assertEquals(1, list.size());
    assertTrue(list.contains(lotusElise));
    ksession.dispose();
}
Also used : Bar(org.drools.mvel.compiler.Bar) KieBase(org.kie.api.KieBase) Foo(org.drools.mvel.compiler.Foo) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) Test(org.junit.Test)

Example 8 with Foo

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

Foo (org.drools.mvel.compiler.Foo)8 Test (org.junit.Test)8 KieBase (org.kie.api.KieBase)8 KieSession (org.kie.api.runtime.KieSession)8 ArrayList (java.util.ArrayList)7 Bar (org.drools.mvel.compiler.Bar)6 List (java.util.List)2 FactA (org.drools.mvel.compiler.FactA)2 Pet (org.drools.mvel.compiler.Pet)2 FactHandle (org.kie.api.runtime.rule.FactHandle)1