Search in sources :

Example 26 with Cheese

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

the class FieldAccessTest method testGenericsOption.

@Test
public void testGenericsOption() throws Exception {
    // JBRULES-3579
    final String str = "import org.drools.mvel.compiler.*;\n" + "rule R1 when\n" + "   $c : Cheese( $type: type )\n" + "   $p : Person( $name : name, addressOption.get.street == $type )\n" + "then\n" + "end\n";
    KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
    KieSession ksession = kbase.newKieSession();
    final Person p = new Person("x");
    p.setAddress(new Address("x", "x", "x"));
    ksession.insert(p);
    ksession.insert(new Cheese("x"));
    assertEquals(1, ksession.fireAllRules());
    ksession.dispose();
}
Also used : Address(org.drools.mvel.compiler.Address) KieBase(org.kie.api.KieBase) KieSession(org.kie.api.runtime.KieSession) Cheese(org.drools.mvel.compiler.Cheese) Person(org.drools.mvel.compiler.Person) Test(org.junit.Test)

Example 27 with Cheese

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

the class StatelessSessionTest method testSingleObjectAssert.

@Test
public void testSingleObjectAssert() throws Exception {
    final StatelessKieSession session = getSession2("statelessSessionTest.drl");
    final Cheese stilton = new Cheese("stilton", 5);
    session.execute(stilton);
    assertEquals("stilton", list.get(0));
}
Also used : StatelessKieSession(org.kie.api.runtime.StatelessKieSession) Cheese(org.drools.mvel.compiler.Cheese) Test(org.junit.Test)

Example 28 with Cheese

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

the class StatelessSessionTest method testSetGlobal.

@Test
public void testSetGlobal() throws Exception {
    String str = "";
    str += "package org.kie \n";
    str += "import org.drools.mvel.compiler.Cheese \n";
    str += "global java.util.List list1 \n";
    str += "global java.util.List list2 \n";
    str += "global java.util.List list3 \n";
    str += "rule rule1 \n";
    str += "  when \n";
    str += "    $c : Cheese() \n";
    str += " \n";
    str += "  then \n";
    str += "    $c.setPrice( 30 ); \n";
    str += "    list1.add( $c ); \n";
    str += "    list2.add( $c ); \n";
    str += "    list3.add( $c ); \n";
    str += "end\n";
    final Cheese stilton = new Cheese("stilton", 5);
    final List list1 = new ArrayList();
    List list2 = new ArrayList();
    List list3 = new ArrayList();
    final StatelessKieSession ksession = getSession2(ResourceFactory.newByteArrayResource(str.getBytes()));
    final Command setGlobal1 = CommandFactory.newSetGlobal("list1", list1);
    final Command setGlobal2 = CommandFactory.newSetGlobal("list2", list2, true);
    final Command setGlobal3 = CommandFactory.newSetGlobal("list3", list3, "outList3");
    final Command insert = CommandFactory.newInsert(stilton);
    final List cmds = new ArrayList();
    cmds.add(setGlobal1);
    cmds.add(setGlobal2);
    cmds.add(setGlobal3);
    cmds.add(insert);
    final ExecutionResults result = (ExecutionResults) ksession.execute(CommandFactory.newBatchExecution(cmds));
    assertEquals(30, stilton.getPrice());
    assertNull(result.getValue("list1"));
    list2 = (List) result.getValue("list2");
    assertEquals(1, list2.size());
    assertSame(stilton, list2.get(0));
    list3 = (List) result.getValue("outList3");
    assertEquals(1, list3.size());
    assertSame(stilton, list3.get(0));
}
Also used : ExecutableCommand(org.kie.api.command.ExecutableCommand) Command(org.kie.api.command.Command) ExecutionResults(org.kie.api.runtime.ExecutionResults) ArrayList(java.util.ArrayList) StatelessKieSession(org.kie.api.runtime.StatelessKieSession) Cheese(org.drools.mvel.compiler.Cheese) ArrayList(java.util.ArrayList) List(java.util.List) Test(org.junit.Test)

Example 29 with Cheese

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

the class StatelessSessionTest method testCollectionObjectAssert.

@Test
public void testCollectionObjectAssert() throws Exception {
    final StatelessKieSession session = getSession2("statelessSessionTest.drl");
    final Cheese stilton = new Cheese("stilton", 5);
    final List collection = new ArrayList();
    collection.add(stilton);
    session.execute(collection);
    assertEquals("stilton", list.get(0));
}
Also used : ArrayList(java.util.ArrayList) StatelessKieSession(org.kie.api.runtime.StatelessKieSession) Cheese(org.drools.mvel.compiler.Cheese) ArrayList(java.util.ArrayList) List(java.util.List) Test(org.junit.Test)

Example 30 with Cheese

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

the class UpdateTest method testJavaModifyBlock.

// this test requires mvel 1.2.19. Leaving it commented until mvel is released.
@Test
public void testJavaModifyBlock() throws Exception {
    KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(getClass(), kieBaseTestConfiguration, "test_JavaModifyBlock.drl");
    KieSession ksession = kbase.newKieSession();
    final List list = new ArrayList();
    ksession.setGlobal("results", list);
    final Person bob = new Person("Bob", 30);
    bob.setStatus("hungry");
    ksession.insert(bob);
    ksession.insert(new Cheese());
    ksession.insert(new Cheese());
    ksession.insert(new OuterClass.InnerClass(1));
    ksession.fireAllRules();
    assertEquals(2, list.size());
    assertEquals("full", bob.getStatus());
    assertEquals(31, bob.getAge());
    assertEquals(2, ((OuterClass.InnerClass) list.get(1)).getIntAttr());
}
Also used : OuterClass(org.drools.mvel.compiler.OuterClass) KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) ArrayList(java.util.ArrayList) List(java.util.List) Cheese(org.drools.mvel.compiler.Cheese) Person(org.drools.mvel.compiler.Person) Test(org.junit.Test)

Aggregations

Cheese (org.drools.mvel.compiler.Cheese)136 Test (org.junit.Test)129 KieSession (org.kie.api.runtime.KieSession)112 KieBase (org.kie.api.KieBase)96 ArrayList (java.util.ArrayList)90 List (java.util.List)65 Person (org.drools.mvel.compiler.Person)47 FactHandle (org.kie.api.runtime.rule.FactHandle)29 InternalKnowledgeBase (org.drools.kiesession.rulebase.InternalKnowledgeBase)24 KiePackage (org.kie.api.definition.KiePackage)23 InternalFactHandle (org.drools.core.common.InternalFactHandle)20 StatelessKieSession (org.kie.api.runtime.StatelessKieSession)20 IteratorToList (org.drools.mvel.integrationtests.IteratorToList)14 Command (org.kie.api.command.Command)10 ExecutionResults (org.kie.api.runtime.ExecutionResults)10 PackageDescr (org.drools.drl.ast.descr.PackageDescr)7 KnowledgeBuilderImpl (org.drools.compiler.builder.impl.KnowledgeBuilderImpl)6 Cheesery (org.drools.mvel.compiler.Cheesery)6 ClassObjectFilter (org.drools.core.ClassObjectFilter)5 ClassObjectType (org.drools.core.base.ClassObjectType)5