Search in sources :

Example 51 with Cheese

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

the class ExecutionFlowControlTest method testLockOnActive.

@Test
public void testLockOnActive() throws Exception {
    KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(this.getClass(), kieBaseTestConfiguration, "test_LockOnActive.drl");
    KieSession ksession = kbase.newKieSession();
    final List list = new ArrayList();
    ksession.setGlobal("list", list);
    // AgendaGroup "group1" is not active, so should receive activation
    final Cheese brie12 = new Cheese("brie", 12);
    ksession.insert(brie12);
    ((InternalWorkingMemory) ksession).flushPropagations();
    InternalAgenda agenda = ((InternalAgenda) ksession.getAgenda());
    final AgendaGroup group1 = agenda.getAgendaGroupsManager().getAgendaGroup("group1");
    assertEquals(1, group1.size());
    ksession.getAgenda().getAgendaGroup("group1").setFocus();
    // AgendaqGroup "group1" is now active, so should not receive activations
    final Cheese brie10 = new Cheese("brie", 10);
    ksession.insert(brie10);
    assertEquals(1, group1.size());
    final Cheese cheddar20 = new Cheese("cheddar", 20);
    ksession.insert(cheddar20);
    final AgendaGroup group2 = agenda.getAgendaGroupsManager().getAgendaGroup("group1");
    assertEquals(1, group2.size());
    agenda.getAgendaGroupsManager().setFocus(group2);
    final Cheese cheddar17 = new Cheese("cheddar", 17);
    ksession.insert(cheddar17);
    assertEquals(1, group2.size());
}
Also used : InternalWorkingMemory(org.drools.core.common.InternalWorkingMemory) InternalAgenda(org.drools.core.common.InternalAgenda) AgendaGroup(org.drools.core.spi.AgendaGroup) 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) Test(org.junit.Test)

Example 52 with Cheese

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

the class ExecutionFlowControlTest method testNoLoopWithModify.

@Test
public void testNoLoopWithModify() throws Exception {
    KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(this.getClass(), kieBaseTestConfiguration, "no-loop_with_modify.drl");
    KieSession ksession = kbase.newKieSession();
    final List list = new ArrayList();
    ksession.setGlobal("list", list);
    final Cheese brie = new Cheese("brie", 12);
    ksession.insert(brie);
    ksession.fireAllRules();
    assertEquals("Should not loop  and thus size should be 1", 1, list.size());
    assertEquals(50, brie.getPrice());
}
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) Cheese(org.drools.mvel.compiler.Cheese) Test(org.junit.Test)

Example 53 with Cheese

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

the class ExecutionFlowControlTest method testActivationGroups.

@Test
public void testActivationGroups() throws Exception {
    KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(this.getClass(), kieBaseTestConfiguration, "test_ActivationGroups.drl");
    KieSession ksession = kbase.newKieSession();
    final List list = new ArrayList();
    ksession.setGlobal("list", list);
    final Cheese brie = new Cheese("brie", 12);
    ksession.insert(brie);
    ksession.fireAllRules();
    assertEquals(2, list.size());
    assertEquals("rule0", list.get(0));
    assertEquals("rule2", list.get(1));
}
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) Cheese(org.drools.mvel.compiler.Cheese) Test(org.junit.Test)

Example 54 with Cheese

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

the class ExecutionFlowControlTest method testInsertRetractNoloop.

@Test
public void testInsertRetractNoloop() throws Exception {
    // read in the source
    KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(this.getClass(), kieBaseTestConfiguration, "test_Insert_Retract_Noloop.drl");
    KieSession ksession = kbase.newKieSession();
    ksession.insert(new Cheese("stilton", 15));
    ksession.fireAllRules();
    assertEquals(0, ksession.getObjects().size());
}
Also used : KieBase(org.kie.api.KieBase) KieSession(org.kie.api.runtime.KieSession) Cheese(org.drools.mvel.compiler.Cheese) Test(org.junit.Test)

Example 55 with Cheese

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

the class MVELTest method testMVELSoundexNoCharParam.

@Test
public void testMVELSoundexNoCharParam() throws Exception {
    // read in the source
    KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(getClass(), kieBaseTestConfiguration, "MVEL_soundexNPE2500.drl");
    KieSession ksession = kbase.newKieSession();
    ksession = SerializationHelper.getSerialisedStatefulKnowledgeSession(ksession, true);
    final Cheese foobarCheese = new Cheese("foobar", 2);
    final Cheese nullCheese = new Cheese(null, 2);
    final Cheese starCheese = new Cheese("*", 2);
    ksession.insert(foobarCheese);
    ksession.insert(nullCheese);
    ksession.insert(starCheese);
    ksession.fireAllRules();
    assertEquals(42, foobarCheese.getPrice());
    assertEquals(2, nullCheese.getPrice());
    assertEquals(2, starCheese.getPrice());
}
Also used : KieBase(org.kie.api.KieBase) StatelessKieSession(org.kie.api.runtime.StatelessKieSession) KieSession(org.kie.api.runtime.KieSession) Cheese(org.drools.mvel.compiler.Cheese) 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