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());
}
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());
}
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));
}
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());
}
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());
}
Aggregations