Search in sources :

Example 1 with Sensor

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

the class PatternTest method testDeclaringAndUsingBindsInSamePattern.

@Test
public void testDeclaringAndUsingBindsInSamePattern() {
    final String drl = "package org.drools.compiler.integrationtests.drl;\n" + "import " + Sensor.class.getCanonicalName() + ";\n" + "\n" + "global java.util.List sensors;\n" + "\n" + "rule \"BindsTest1_returnValue\"\n" + "    when\n" + "        $sensor1 : Sensor( $temp1 : temperature, pressure < $temp1 )\n" + "        $sensor2 : Sensor( $temp2 : temperature, pressure < ( $temp1 + $temp2 ) )\n" + "    then\n" + "        sensors.add( $sensor1 );\n" + "end\n" + "\n" + "rule \"BindsTest2_predicate\"\n" + "    when\n" + "        $sensor1 : Sensor( $temp1 : temperature, pressure < $temp1 )\n" + "        $sensor2 : Sensor( $temp2 : temperature, $p : pressure,  eval ( $p < ($temp1 + $temp2 ) ) )\n" + "    then\n" + "        sensors.add( $sensor1 );\n" + "end\n" + "\n" + "rule \"BindsTest3_eval\"\n" + "    when\n" + "        $sensor1 : Sensor( $temp1 : temperature, pressure < $temp1 )\n" + "        $sensor2 : Sensor( $temp2 : temperature, $p : pressure )\n" + "        eval( $p < $temp1 + $temp2 )\n" + "    then\n" + "        sensors.add( $sensor1 );\n" + "end";
    final KieModule kieModule = KieUtil.getKieModuleFromDrls("pattern-test", kieBaseTestConfiguration, drl);
    final KieContainer kieContainer = KieServices.get().newKieContainer(kieModule.getReleaseId());
    final KieBaseConfiguration kieBaseConfiguration = kieBaseTestConfiguration.getKieBaseConfiguration();
    kieBaseConfiguration.setOption(RemoveIdentitiesOption.YES);
    final KieBase kbase = kieContainer.newKieBase(kieBaseConfiguration);
    final KieSession ksession = kbase.newKieSession();
    try {
        final List sensors = new ArrayList();
        ksession.setGlobal("sensors", sensors);
        final Sensor sensor1 = new Sensor(100, 150);
        ksession.insert(sensor1);
        ksession.fireAllRules();
        assertEquals(0, sensors.size());
        final Sensor sensor2 = new Sensor(200, 150);
        ksession.insert(sensor2);
        ksession.fireAllRules();
        assertEquals(3, sensors.size());
    } finally {
        ksession.dispose();
    }
}
Also used : KieBaseConfiguration(org.kie.api.KieBaseConfiguration) KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) ArrayList(java.util.ArrayList) List(java.util.List) KieModule(org.kie.api.builder.KieModule) Sensor(org.drools.testcoverage.common.model.Sensor) KieContainer(org.kie.api.runtime.KieContainer) Test(org.junit.Test)

Example 2 with Sensor

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

the class ActivateAndDeleteOnListenerTest method testActivateOnMatch.

private void testActivateOnMatch(final AgendaEventListener listener) {
    final String drl = "package org.drools.compiler.integrationtests \n" + "import " + Alarm.class.getCanonicalName() + " \n" + "import " + Sensor.class.getCanonicalName() + " \n" + "rule StringRule  @Propagation(EAGER) ruleflow-group \"DROOLS_SYSTEM\"\n" + " when \n" + " $a : Alarm() \n" + " $s : Sensor() \n" + " then \n" + "end \n";
    final KieSession ksession = getSessionWithEagerActivation(drl);
    try {
        ksession.addEventListener(listener);
        // go !
        final Alarm alarm = new Alarm();
        alarm.setMessage("test");
        alarm.setNumber(123);
        ksession.insert(alarm);
        final Sensor sensor = new Sensor();
        sensor.setPressure(1);
        sensor.setTemperature(25);
        ksession.insert(sensor);
    } finally {
        ksession.dispose();
    }
}
Also used : Alarm(org.drools.testcoverage.common.model.Alarm) KieSession(org.kie.api.runtime.KieSession) Sensor(org.drools.testcoverage.common.model.Sensor)

Aggregations

Sensor (org.drools.testcoverage.common.model.Sensor)2 KieSession (org.kie.api.runtime.KieSession)2 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Alarm (org.drools.testcoverage.common.model.Alarm)1 Test (org.junit.Test)1 KieBase (org.kie.api.KieBase)1 KieBaseConfiguration (org.kie.api.KieBaseConfiguration)1 KieModule (org.kie.api.builder.KieModule)1 KieContainer (org.kie.api.runtime.KieContainer)1