Search in sources :

Example 1 with Alarm

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

Example 2 with Alarm

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

the class TimerAndCalendarWithPseudoTimeTest method testDurationMemoryLeakonRepeatedUpdate.

@Test(timeout = 10000)
public void testDurationMemoryLeakonRepeatedUpdate() {
    final String drl = "package org.drools.compiler.test\n" + "import " + Alarm.class.getCanonicalName() + "\n" + "global java.util.List list;" + "rule \"COMPTEUR\"\n" + "  timer (int: 50s)\n" + "  when\n" + "    $alarm : Alarm( number < 5 )\n" + "  then\n" + "    $alarm.incrementNumber();\n" + "    list.add( $alarm );\n" + "    update($alarm);\n" + "end\n";
    final KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("timer-and-calendar-test", kieBaseTestConfiguration, drl);
    final KieSession ksession = kbase.newKieSession(KieSessionTestConfiguration.STATEFUL_PSEUDO.getKieSessionConfiguration(), null);
    try {
        final PseudoClockScheduler timeService = ksession.getSessionClock();
        timeService.advanceTime(new Date().getTime(), TimeUnit.MILLISECONDS);
        final List list = new ArrayList();
        ksession.setGlobal("list", list);
        ksession.insert(new Alarm());
        ksession.fireAllRules();
        for (int i = 0; i < 6; i++) {
            timeService.advanceTime(55, TimeUnit.SECONDS);
            ksession.fireAllRules();
        }
        assertEquals(5, list.size());
    } finally {
        ksession.dispose();
    }
}
Also used : KieBase(org.kie.api.KieBase) Alarm(org.drools.testcoverage.common.model.Alarm) ArrayList(java.util.ArrayList) KieSession(org.kie.api.runtime.KieSession) ArrayList(java.util.ArrayList) Arrays.asList(java.util.Arrays.asList) List(java.util.List) PseudoClockScheduler(org.drools.core.time.impl.PseudoClockScheduler) Date(java.util.Date) EntryPoint(org.kie.api.runtime.rule.EntryPoint) Test(org.junit.Test)

Aggregations

Alarm (org.drools.testcoverage.common.model.Alarm)2 KieSession (org.kie.api.runtime.KieSession)2 ArrayList (java.util.ArrayList)1 Arrays.asList (java.util.Arrays.asList)1 Date (java.util.Date)1 List (java.util.List)1 PseudoClockScheduler (org.drools.core.time.impl.PseudoClockScheduler)1 Sensor (org.drools.testcoverage.common.model.Sensor)1 Test (org.junit.Test)1 KieBase (org.kie.api.KieBase)1 EntryPoint (org.kie.api.runtime.rule.EntryPoint)1