Search in sources :

Example 6 with Bar

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

the class MatchTest method testGetObjectsTwoPatterns.

@Test
public void testGetObjectsTwoPatterns() {
    // DROOLS-1470
    String str = "import org.drools.compiler.Foo\n" + "import org.drools.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";
    KieSession ksession = new KieHelper().addContent(str, ResourceType.DRL).build().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.compiler.Bar) Foo(org.drools.compiler.Foo) ArrayList(java.util.ArrayList) KieHelper(org.kie.internal.utils.KieHelper) KieSession(org.kie.api.runtime.KieSession) Test(org.junit.Test)

Aggregations

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