Search in sources :

Example 6 with Cheese

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

the class NestingTest method testNestedConditionalElements.

@Test
public void testNestedConditionalElements() {
    final String drl = "package org.drools.compiler.integrationtests.drl;\n" + "import " + Person.class.getCanonicalName() + ";\n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "import " + State.class.getCanonicalName() + ";\n" + "global java.util.List results\n" + "\n" + "rule \"test nested CEs\"  salience 100\n" + "    when\n" + "        not ( State( $state : state ) and\n" + "              not( Person( name == $state, $likes : likes ) and\n" + "                   Cheese( type == $likes ) ) )\n" + "    then\n" + "        results.add(\"OK1\");\n" + "end";
    final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("nesting-test", kieBaseTestConfiguration, drl);
    final KieSession ksession = kbase.newKieSession();
    try {
        final List list = new ArrayList();
        ksession.setGlobal("results", list);
        final State state = new State("SP");
        ksession.insert(state);
        final Person bob = new Person(state.getState());
        bob.setLikes("stilton");
        ksession.insert(bob);
        ksession.fireAllRules();
        assertEquals(0, list.size());
        ksession.insert(new Cheese(bob.getLikes(), 10));
        ksession.fireAllRules();
        assertEquals(1, list.size());
    } finally {
        ksession.dispose();
    }
}
Also used : KieBase(org.kie.api.KieBase) State(org.drools.testcoverage.common.model.State) 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) Person(org.drools.testcoverage.common.model.Person) Test(org.junit.Test)

Example 7 with Cheese

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

the class PatternTest method testImplicitDeclarations.

@Test
public void testImplicitDeclarations() {
    final String drl = "package org.drools.compiler.integrationtests.drl;\n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "global java.util.List results;\n" + "\n" + "global java.lang.Double factor;\n" + "\n" + "rule \"test implicit declarations\"\n" + "    when\n" + "         // implicit binding\n" + "        Cheese( type == \"stilton\", eval( price < 20*factor ) )\n" + "        // late declaration\n" + "        Cheese( price < ( price * factor ), eval( price < price * factor ), price : price  )\n" + "    then\n" + "        results.add( \"Rule Fired\" );\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);
        ksession.setGlobal("factor", 1.2);
        final Cheese cheese = new Cheese("stilton", 10);
        ksession.insert(cheese);
        ksession.fireAllRules();
        assertEquals(1, results.size());
    } finally {
        ksession.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) Test(org.junit.Test)

Example 8 with Cheese

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

the class PatternTest method testSelfReference2.

@Test
public void testSelfReference2() {
    final String drl = "package org.drools.compiler.integrationtests.drl;\n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "global java.util.List results;\n" + "\n" + "rule \"reversed references\"\n" + "when\n" + "    $cheese : Cheese( )\n" + "    Cheese( this != $cheese )\n" + "then\n" + "    results.add( $cheese );\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);
        ksession.insert(new Cheese());
        ksession.fireAllRules();
        assertEquals(0, results.size());
    } finally {
        ksession.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) Test(org.junit.Test)

Example 9 with Cheese

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

the class PatternTest method testEmptyPattern.

@Test
public void testEmptyPattern() {
    final String drl = "package org.drools.compiler.integrationtests.drl;\n" + " \n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "\n" + "global java.util.List list;\n" + " \n" + "rule \"simple rule\"\n" + "    when\n" + "        cheese : Cheese( )\n" + "    then\n" + "        list.add( new Integer(5) );\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 Cheese stilton = new Cheese("stilton", 5);
        session.insert(stilton);
        session.fireAllRules();
        assertEquals(5, ((List) session.getGlobal("list")).get(0));
    } 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) Test(org.junit.Test)

Example 10 with Cheese

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

the class PatternTest method testQualifiedFieldReference.

@Test
public void testQualifiedFieldReference() {
    final String drl = "package org.drools.compiler.integrationtests.drl;\n" + "import " + Person.class.getCanonicalName() + ";\n" + "import " + Cheese.class.getCanonicalName() + ";\n" + "global java.util.List results;\n" + "\n" + "rule \"test qualified field reference\"\n" + "when\n" + "    $p : Person( $p.name == \"bob\" );\n" + "    $c : Cheese( $c.type == $p.likes )\n" + "then\n" + "    results.add( $p );\n" + "end";
    final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("pattern-test", kieBaseTestConfiguration, drl);
    final KieSession ksession = kbase.newKieSession();
    try {
        final List list = new ArrayList();
        ksession.setGlobal("results", list);
        final Person bob = new Person("bob");
        bob.setLikes("stilton");
        final Cheese stilton = new Cheese("stilton", 12);
        ksession.insert(bob);
        ksession.insert(stilton);
        ksession.fireAllRules();
        assertEquals(1, list.size());
        assertEquals(bob, list.get(0));
    } finally {
        ksession.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) Person(org.drools.testcoverage.common.model.Person) 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