Search in sources :

Example 21 with Cheese

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

the class FirstOrderLogicTest method testNotWithBindings.

@Test
public void testNotWithBindings() throws Exception {
    KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(getClass(), kieBaseTestConfiguration, "not_with_bindings_rule_test.drl");
    KieSession wm = kbase.newKieSession();
    final List list = new ArrayList();
    wm.setGlobal("list", list);
    final Cheese stilton = new Cheese("stilton", 5);
    final FactHandle stiltonHandle = (FactHandle) wm.insert(stilton);
    final Cheese cheddar = new Cheese("cheddar", 7);
    final FactHandle cheddarHandle = (FactHandle) wm.insert(cheddar);
    final PersonInterface paul = new Person("paul", "stilton", 12);
    wm.insert(paul);
    wm.fireAllRules();
    assertEquals(0, list.size());
    wm.retract(stiltonHandle);
    wm.fireAllRules();
    assertEquals(1, list.size());
}
Also used : PersonInterface(org.drools.mvel.compiler.PersonInterface) FactHandle(org.kie.api.runtime.rule.FactHandle) KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) List(java.util.List) ArrayList(java.util.ArrayList) Cheese(org.drools.mvel.compiler.Cheese) Person(org.drools.mvel.compiler.Person) Test(org.junit.Test)

Example 22 with Cheese

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

the class NamedConsequencesTest method testNamedConsequenceAfterNotPattern.

@Test
public void testNamedConsequenceAfterNotPattern() {
    // DROOLS-5
    String str = "import org.drools.mvel.compiler.Cheese;\n " + "global java.util.List results;\n" + "\n" + "rule R1 when\n" + "    $a: Cheese ( type == \"stilton\" )\n" + "    not Cheese ( type == \"brie\" )\n" + "    do[t1]\n" + "    $b: Cheese ( type == \"cheddar\" )\n" + "then\n" + "    results.add( $b.getType() );\n" + "then[t1]\n" + "    results.add( $a.getType() );\n" + "end\n";
    KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
    KieSession ksession = kbase.newKieSession();
    List<String> results = new ArrayList<String>();
    ksession.setGlobal("results", results);
    ksession.insert(new Cheese("stilton", 5));
    ksession.insert(new Cheese("cheddar", 7));
    ksession.fireAllRules();
    assertTrue(results.contains("stilton"));
    assertTrue(results.contains("cheddar"));
}
Also used : KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) Cheese(org.drools.mvel.compiler.Cheese) Test(org.junit.Test)

Example 23 with Cheese

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

the class NullTest method testNullHandling.

@Test
public void testNullHandling() throws Exception {
    KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(getClass(), kieBaseTestConfiguration, "test_NullHandling.drl");
    KieSession session = kbase.newKieSession();
    final List list = new ArrayList();
    session.setGlobal("list", list);
    final Cheese nullCheese = new Cheese(null, 2);
    session.insert(nullCheese);
    final Person notNullPerson = new Person("shoes butt back");
    notNullPerson.setBigDecimal(new BigDecimal("42.42"));
    session.insert(notNullPerson);
    Person nullPerson = new Person("whee");
    nullPerson.setBigDecimal(null);
    session.insert(nullPerson);
    session = SerializationHelper.getSerialisedStatefulKnowledgeSession(session, true);
    session.fireAllRules();
    // System.out.println(((List) session.getGlobal("list")).get(0));
    assertEquals(3, ((List) session.getGlobal("list")).size());
    nullPerson = new Person(null);
    session.insert(nullPerson);
    session.fireAllRules();
    assertEquals(4, ((List) session.getGlobal("list")).size());
}
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) Person(org.drools.mvel.compiler.Person) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Example 24 with Cheese

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

the class OutOfMemoryTest method testAgendaLoop.

@Test
@Ignore
public void testAgendaLoop() throws Exception {
    KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(getClass(), kieBaseTestConfiguration, "test_OutOfMemoryError.drl");
    KieSession ksession = kbase.newKieSession();
    ksession.insert(new Cheese("stilton", 1));
    ksession.fireAllRules(3000000);
// just for profiling
// Thread.currentThread().wait();
}
Also used : KieBase(org.kie.api.KieBase) KieSession(org.kie.api.runtime.KieSession) Cheese(org.drools.mvel.compiler.Cheese) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 25 with Cheese

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

the class SequentialTest method testBasicOperation.

@Test
public void testBasicOperation() throws Exception {
    final KieModule kieModule = KieUtil.getKieModuleFromClasspathResources("test", getClass(), kieBaseTestConfiguration, "simpleSequential.drl");
    final KieBase kbase = KieBaseUtil.newKieBaseFromKieModuleWithAdditionalOptions(kieModule, kieBaseTestConfiguration, SequentialOption.YES);
    StatelessKieSession ksession = kbase.newStatelessKieSession();
    final List list = new ArrayList();
    ksession.setGlobal("list", list);
    final Person p1 = new Person("p1", "stilton");
    final Person p2 = new Person("p2", "cheddar");
    final Person p3 = new Person("p3", "stilton");
    final Cheese stilton = new Cheese("stilton", 15);
    final Cheese cheddar = new Cheese("cheddar", 15);
    ksession.execute(CommandFactory.newInsertElements(Arrays.asList(new Object[] { p1, stilton, p2, cheddar, p3 })));
    assertEquals(3, list.size());
}
Also used : KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) StatelessKieSession(org.kie.api.runtime.StatelessKieSession) ArrayList(java.util.ArrayList) List(java.util.List) Cheese(org.drools.mvel.compiler.Cheese) Person(org.drools.mvel.compiler.Person) KieModule(org.kie.api.builder.KieModule) DynamicRulesTest(org.drools.mvel.integrationtests.DynamicRulesTest) 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