Search in sources :

Example 6 with Bar

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

Aggregations

Bar (org.drools.mvel.compiler.Bar)6 Foo (org.drools.mvel.compiler.Foo)6 Test (org.junit.Test)6 KieBase (org.kie.api.KieBase)6 KieSession (org.kie.api.runtime.KieSession)6 ArrayList (java.util.ArrayList)5 FactHandle (org.kie.api.runtime.rule.FactHandle)1