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);
}
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);
}
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));
}
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);
}
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());
}
Aggregations