Search in sources :

Example 81 with Cheese

use of org.drools.testcoverage.common.model.Cheese in project drools by kiegroup.

the class ImportsTest method testPackageImportWithMvelDialect.

@Test
public void testPackageImportWithMvelDialect() {
    // JBRULES-2244
    final String drl = "package org.drools.compiler.integrationtests.drl;\n" + "import " + Cheese.class.getCanonicalName() + "\n" + "import " + Person.class.getCanonicalName() + "\n" + "dialect \"mvel\"\n" + "rule R1 no-loop when\n" + "   $p : Person( )" + "   $c : Cheese( )" + "then\n" + "   modify($p) { setCheese($c) };\n" + "end\n";
    final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("imports-test", kieBaseTestConfiguration, drl);
    final KieSession ksession = kbase.newKieSession();
    try {
        final Person p = new Person("Mario", 38);
        ksession.insert(p);
        final Cheese c = new Cheese("Gorgonzola");
        ksession.insert(c);
        assertEquals(1, ksession.fireAllRules());
        assertSame(c, p.getCheese());
    } finally {
        ksession.dispose();
    }
}
Also used : KieBase(org.kie.api.KieBase) KieSession(org.kie.api.runtime.KieSession) Cheese(org.drools.testcoverage.common.model.Cheese) Person(org.drools.testcoverage.common.model.Person) Test(org.junit.Test)

Example 82 with Cheese

use of org.drools.testcoverage.common.model.Cheese in project drools by kiegroup.

the class ImportsTest method testImport.

@Test()
public void testImport() {
    // Same package as this test
    final String drl = "package org.drools.compiler.integrationtests.drl;\n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "import java.lang.Math;\n" + "rule \"Test Rule\"\n" + "  dialect \"mvel\"\n" + "  when\n" + "  then\n" + "    new Cheese(Cheese.STILTON);\n" + "end";
    final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("imports-test", kieBaseTestConfiguration, drl);
    final KieSession session = kbase.newKieSession();
    try {
        session.fireAllRules();
    } finally {
        session.dispose();
    }
}
Also used : KieBase(org.kie.api.KieBase) Cheese(org.drools.testcoverage.common.model.Cheese) KieSession(org.kie.api.runtime.KieSession) Test(org.junit.Test)

Example 83 with Cheese

use of org.drools.testcoverage.common.model.Cheese in project drools by kiegroup.

the class PatternTest method testPredicateAsFirstPattern.

@Test
public void testPredicateAsFirstPattern() {
    final String drl = "package oreg.drools.compiler.integrationtests.drl;\n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "\n" + "rule \"Using Predicate as first pattern\"\n" + "  when\n" + "    cheese: Cheese( type == \"Mussarela\", $price:price, eval( $price < 30 ))\n" + "  then\n" + "    cheese.setPrice(40);\n" + "end";
    final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("pattern-test", kieBaseTestConfiguration, drl);
    final KieSession ksession = kbase.newKieSession();
    try {
        final Cheese mussarela = new Cheese("Mussarela", 35);
        ksession.insert(mussarela);
        final Cheese provolone = new Cheese("Provolone", 20);
        ksession.insert(provolone);
        ksession.fireAllRules();
        assertEquals("The rule is being incorrectly fired", 35, mussarela.getPrice());
        assertEquals("Rule is incorrectly being fired", 20, provolone.getPrice());
    } finally {
        ksession.dispose();
    }
}
Also used : KieBase(org.kie.api.KieBase) Cheese(org.drools.testcoverage.common.model.Cheese) KieSession(org.kie.api.runtime.KieSession) Test(org.junit.Test)

Example 84 with Cheese

use of org.drools.testcoverage.common.model.Cheese in project drools by kiegroup.

the class PatternTest method testAutovivificationOfVariableRestrictions.

@Test
public void testAutovivificationOfVariableRestrictions() {
    final String drl = "package org.drools.compiler.integrationtests.drl;\n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "global java.util.List results;\n" + "\n" + "rule \"autovivification\"\n" + "when\n" + "     Cheese( price > oldPrice, price > this.oldPrice )\n" + "then\n" + "     results.add( \"OK\" );\n" + "end";
    final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("pattern-test", kieBaseTestConfiguration, drl);
    final KieSession ksession = kbase.newKieSession();
    try {
        final List results = new ArrayList();
        ksession.setGlobal("results", results);
        final Cheese stilton = new Cheese("stilton");
        stilton.setPrice(10);
        stilton.setOldPrice(8);
        ksession.insert(stilton);
        ksession.fireAllRules();
        assertEquals(1, results.size());
    } finally {
        ksession.dispose();
    }
}
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.testcoverage.common.model.Cheese) Test(org.junit.Test)

Example 85 with Cheese

use of org.drools.testcoverage.common.model.Cheese in project drools by kiegroup.

the class PatternTest method testBigDecimal.

@Test
public void testBigDecimal() {
    final String drl = "package org.drools.compiler.integrationtests.drl;\n" + "\n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "import " + Primitives.class.getCanonicalName() + ";\n" + "import java.math.BigDecimal;\n" + "\n" + "global java.util.List list;\n" + "\n" + "rule \"BigDec\"\n" + "\n" + "    when\n" + "        Cheese($price : price)\n" + "        p : Primitives(bigDecimal < $price)\n" + "    then\n" + "        list.add( p );\n" + "end";
    final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("pattern-test", kieBaseTestConfiguration, drl);
    final KieSession session = kbase.newKieSession();
    try {
        final List list = new ArrayList();
        session.setGlobal("list", list);
        final Primitives bill = new Primitives();
        bill.setBigDecimal(new BigDecimal("42"));
        final Primitives ben = new Primitives();
        ben.setBigDecimal(new BigDecimal("43"));
        session.insert(bill);
        session.insert(new Cheese("gorgonzola", 43));
        session.insert(ben);
        session.fireAllRules();
        assertEquals(1, ((List) session.getGlobal("list")).size());
    } finally {
        session.dispose();
    }
}
Also used : KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) Cheese(org.drools.testcoverage.common.model.Cheese) KieSession(org.kie.api.runtime.KieSession) ArrayList(java.util.ArrayList) List(java.util.List) Primitives(org.drools.testcoverage.common.model.Primitives) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Aggregations

Cheese (org.drools.testcoverage.common.model.Cheese)97 KieBase (org.kie.api.KieBase)92 KieSession (org.kie.api.runtime.KieSession)88 Test (org.junit.Test)85 ArrayList (java.util.ArrayList)65 Person (org.drools.testcoverage.common.model.Person)47 List (java.util.List)33 FactHandle (org.kie.api.runtime.rule.FactHandle)22 Cheesery (org.drools.testcoverage.common.model.Cheesery)11 Arrays.asList (java.util.Arrays.asList)4 ObjectTypeNode (org.drools.core.reteoo.ObjectTypeNode)4 BigDecimal (java.math.BigDecimal)3 LeftTupleSink (org.drools.core.reteoo.LeftTupleSink)3 AfterMatchFiredEvent (org.kie.api.event.rule.AfterMatchFiredEvent)3 AgendaEventListener (org.kie.api.event.rule.AgendaEventListener)3 InvocationTargetException (java.lang.reflect.InvocationTargetException)2 HashMap (java.util.HashMap)2 Map (java.util.Map)2 InternalFactHandle (org.drools.core.common.InternalFactHandle)2 LeftInputAdapterNode (org.drools.core.reteoo.LeftInputAdapterNode)2