Search in sources :

Example 1 with IntervalTrigger

use of org.kie.kogito.timer.impl.IntervalTrigger in project kogito-apps by kiegroup.

the class ScheduledJobAdapterTest method testOfJobDetailsInterval.

@Test
void testOfJobDetailsInterval() {
    JobDetails jobDetails = getJobDetailsCommonBuilder().trigger(new IntervalTrigger(0, DateUtil.toDate(TIME), null, REPEAT_LIMIT, 0, INTERVAL, null, null)).build();
    ScheduledJob scheduledJob = ScheduledJobAdapter.of(jobDetails);
    assertScheduledJob(scheduledJob);
    assertThat(scheduledJob.getRepeatLimit()).isEqualTo(REPEAT_LIMIT);
    assertThat(scheduledJob.getRepeatInterval()).isEqualTo(INTERVAL);
}
Also used : ScheduledJob(org.kie.kogito.jobs.service.model.ScheduledJob) IntervalTrigger(org.kie.kogito.timer.impl.IntervalTrigger) Test(org.junit.jupiter.api.Test)

Example 2 with IntervalTrigger

use of org.kie.kogito.timer.impl.IntervalTrigger in project kogito-apps by kiegroup.

the class ScheduledJobAdapterTest method testToJobDetailsInterval.

@Test
void testToJobDetailsInterval() {
    JobBuilder jobBuilder = JobBuilder.builder().repeatLimit(REPEAT_LIMIT).repeatInterval(INTERVAL);
    ScheduledJob scheduledJob = getScheduledJobCommonBuilder(jobBuilder).build();
    JobDetails jobDetails = ScheduledJobAdapter.to(scheduledJob);
    assertJobDetails(jobDetails);
    assertThat(jobDetails.getTrigger()).isInstanceOf(IntervalTrigger.class);
    IntervalTrigger intervalTrigger = (IntervalTrigger) jobDetails.getTrigger();
    assertThat(intervalTrigger.getNextFireTime()).isEqualTo(DateUtil.toDate(TIME));
    assertThat(intervalTrigger.getRepeatLimit()).isEqualTo(REPEAT_LIMIT);
    assertThat(intervalTrigger.getPeriod()).isEqualTo(INTERVAL);
}
Also used : ScheduledJob(org.kie.kogito.jobs.service.model.ScheduledJob) JobBuilder(org.kie.kogito.jobs.api.JobBuilder) IntervalTrigger(org.kie.kogito.timer.impl.IntervalTrigger) Test(org.junit.jupiter.api.Test)

Example 3 with IntervalTrigger

use of org.kie.kogito.timer.impl.IntervalTrigger in project kogito-apps by kiegroup.

the class TriggerMarshaller method readFrom.

@Override
public Trigger readFrom(ProtoStreamReader reader) throws IOException {
    String classType = reader.readString("classType");
    Date startTime = fromInstant(reader.readInstant("startTime"));
    Date endTime = fromInstant(reader.readInstant("endTime"));
    Integer repeatLimit = reader.readInt("repeatLimit");
    Integer repeatCount = reader.readInt("repeatCount");
    Date nextFireTime = fromInstant(reader.readInstant("nextFireTime"));
    Long period = reader.readLong("period");
    return Optional.ofNullable(classType).filter(IntervalTrigger.class.getName()::equals).<Trigger>map(c -> {
        IntervalTrigger intervalTrigger = new IntervalTrigger();
        intervalTrigger.setStartTime(startTime);
        intervalTrigger.setEndTime(endTime);
        intervalTrigger.setRepeatLimit(repeatLimit);
        intervalTrigger.setRepeatCount(repeatCount);
        intervalTrigger.setNextFireTime(nextFireTime);
        intervalTrigger.setPeriod(period);
        return intervalTrigger;
    }).orElseGet(() -> Optional.ofNullable(nextFireTime).map(Date::getTime).map(t -> new PointInTimeTrigger(t, null, null)).orElse(null));
}
Also used : Trigger(org.kie.kogito.timer.Trigger) PointInTimeTrigger(org.kie.kogito.timer.impl.PointInTimeTrigger) Date(java.util.Date) Optional(java.util.Optional) IntervalTrigger(org.kie.kogito.timer.impl.IntervalTrigger) IOException(java.io.IOException) PointInTimeTrigger(org.kie.kogito.timer.impl.PointInTimeTrigger) Date(java.util.Date) IntervalTrigger(org.kie.kogito.timer.impl.IntervalTrigger)

Example 4 with IntervalTrigger

use of org.kie.kogito.timer.impl.IntervalTrigger in project kogito-apps by kiegroup.

the class TriggerMarshallerTest method marshallIntervalTrigger.

@Test
void marshallIntervalTrigger() {
    Date startTime = new Date();
    Date endTime = new Date();
    Date nextFireTime = new Date();
    Random random = new Random();
    int repeatLimit = random.nextInt();
    int repeatCount = random.nextInt();
    long period = random.nextLong();
    IntervalTrigger trigger = new IntervalTrigger();
    trigger.setStartTime(startTime);
    trigger.setEndTime(endTime);
    trigger.setRepeatLimit(repeatLimit);
    trigger.setRepeatCount(repeatCount);
    trigger.setNextFireTime(nextFireTime);
    trigger.setPeriod(period);
    JsonObject jsonObject = marshaller.marshall(trigger);
    assertEquals(new JsonObject().put("startTime", startTime.getTime()).put("endTime", endTime.getTime()).put("nextFireTime", nextFireTime.getTime()).put("repeatLimit", repeatLimit).put("repeatCount", repeatCount).put("period", period).put("classType", IntervalTrigger.class.getName()), jsonObject);
}
Also used : Random(java.util.Random) JsonObject(io.vertx.core.json.JsonObject) Date(java.util.Date) IntervalTrigger(org.kie.kogito.timer.impl.IntervalTrigger) Test(org.junit.jupiter.api.Test)

Example 5 with IntervalTrigger

use of org.kie.kogito.timer.impl.IntervalTrigger in project kogito-apps by kiegroup.

the class TriggerMarshallerTest method unmarshallIntervalTrigger.

@Test
void unmarshallIntervalTrigger() {
    Date startTime = new Date();
    Date endTime = new Date();
    Date nextFireTime = new Date();
    Random random = new Random();
    int repeatLimit = random.nextInt();
    int repeatCount = random.nextInt();
    long period = random.nextLong();
    JsonObject jsonObject = new JsonObject().put("startTime", startTime.getTime()).put("endTime", endTime.getTime()).put("nextFireTime", nextFireTime.getTime()).put("repeatLimit", repeatLimit).put("repeatCount", repeatCount).put("period", period).put("classType", IntervalTrigger.class.getName());
    Trigger trigger = marshaller.unmarshall(jsonObject);
    IntervalTrigger expected = new IntervalTrigger();
    expected.setStartTime(startTime);
    expected.setEndTime(endTime);
    expected.setRepeatLimit(repeatLimit);
    expected.setRepeatCount(repeatCount);
    expected.setNextFireTime(nextFireTime);
    expected.setPeriod(period);
    assertEquals(expected.toString(), trigger.toString());
}
Also used : Trigger(org.kie.kogito.timer.Trigger) PointInTimeTrigger(org.kie.kogito.timer.impl.PointInTimeTrigger) IntervalTrigger(org.kie.kogito.timer.impl.IntervalTrigger) Random(java.util.Random) JsonObject(io.vertx.core.json.JsonObject) Date(java.util.Date) IntervalTrigger(org.kie.kogito.timer.impl.IntervalTrigger) Test(org.junit.jupiter.api.Test)

Aggregations

IntervalTrigger (org.kie.kogito.timer.impl.IntervalTrigger)5 Test (org.junit.jupiter.api.Test)4 Date (java.util.Date)3 JsonObject (io.vertx.core.json.JsonObject)2 Random (java.util.Random)2 ScheduledJob (org.kie.kogito.jobs.service.model.ScheduledJob)2 Trigger (org.kie.kogito.timer.Trigger)2 PointInTimeTrigger (org.kie.kogito.timer.impl.PointInTimeTrigger)2 IOException (java.io.IOException)1 Optional (java.util.Optional)1 JobBuilder (org.kie.kogito.jobs.api.JobBuilder)1