Search in sources :

Example 1 with State

use of org.drools.testcoverage.common.model.State 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)

Aggregations

ArrayList (java.util.ArrayList)1 List (java.util.List)1 Cheese (org.drools.testcoverage.common.model.Cheese)1 Person (org.drools.testcoverage.common.model.Person)1 State (org.drools.testcoverage.common.model.State)1 Test (org.junit.Test)1 KieBase (org.kie.api.KieBase)1 KieSession (org.kie.api.runtime.KieSession)1