use of com.enonic.xp.scheduler.ScheduledJob in project xp by enonic.
the class RescheduleTaskTest method mockJobs.
private void mockJobs() {
final ScheduledJob job1 = ScheduledJob.create().name(ScheduledJobName.from("task1")).calendar(CronCalendarImpl.create().value("* * * * *").timeZone(TimeZone.getDefault()).build()).descriptor(DescriptorKey.from(ApplicationKey.from("com.enonic.app.test"), "task1")).config(new PropertyTree()).enabled(false).creator(PrincipalKey.from("user:system:creator")).modifier(PrincipalKey.from("user:system:creator")).createdTime(Instant.parse("2021-02-25T10:44:33.170079900Z")).modifiedTime(Instant.parse("2021-02-25T10:44:33.170079900Z")).build();
final ScheduledJob job2 = ScheduledJob.create().name(ScheduledJobName.from("task2")).calendar(CronCalendarImpl.create().value("* * * * *").timeZone(TimeZone.getDefault()).build()).descriptor(DescriptorKey.from(ApplicationKey.from("com.enonic.app.test"), "task2")).config(new PropertyTree()).enabled(true).creator(PrincipalKey.from("user:system:creator")).modifier(PrincipalKey.from("user:system:modifier")).createdTime(Instant.parse("2021-02-25T10:44:33.170079900Z")).modifiedTime(Instant.parse("2021-02-25T10:44:53.170079900Z")).build();
final ScheduledJob job3 = ScheduledJob.create().name(ScheduledJobName.from("task3")).calendar(OneTimeCalendarImpl.create().value(Instant.now().minus(Duration.of(1, ChronoUnit.SECONDS))).build()).descriptor(DescriptorKey.from(ApplicationKey.from("com.enonic.app.test"), "task3")).config(new PropertyTree()).enabled(true).creator(PrincipalKey.from("user:system:creator")).modifier(PrincipalKey.from("user:system:creator")).createdTime(Instant.parse("2021-02-26T10:44:33.170079900Z")).modifiedTime(Instant.parse("2021-02-26T10:44:33.170079900Z")).build();
final ScheduledJob job4 = ScheduledJob.create().name(ScheduledJobName.from("task4")).calendar(CronCalendarImpl.create().value("* * * * *").timeZone(TimeZone.getDefault()).build()).descriptor(DescriptorKey.from(ApplicationKey.from("com.enonic.app.test"), "task4")).config(new PropertyTree()).creator(PrincipalKey.from("user:system:creator")).modifier(PrincipalKey.from("user:system:modifier")).createdTime(Instant.parse("2021-02-25T10:44:33.170079900Z")).modifiedTime(Instant.parse("2021-02-25T11:44:33.170079900Z")).enabled(true).build();
when(schedulerService.list()).thenReturn(List.of(job1, job2, job3, job4));
}
use of com.enonic.xp.scheduler.ScheduledJob in project xp by enonic.
the class SchedulerServiceImplTest method get.
@Test
void get() {
final ScheduledJobName name = ScheduledJobName.from("test");
final DescriptorKey descriptor = DescriptorKey.from(ApplicationKey.from("com.enonic.app.features"), "landing");
final CronCalendar calendar = calendarService.cron("* * * * *", TimeZone.getDefault());
final PropertyTree config = new PropertyTree();
config.addString("string", "value");
adminContext().callWith(() -> schedulerService.create(CreateScheduledJobParams.create().name(name).descriptor(descriptor).calendar(calendar).config(config).description("description").build()));
final ScheduledJob scheduledJob = adminContext().callWith(() -> schedulerService.get(name));
assertEquals(name, scheduledJob.getName());
assertEquals(descriptor, scheduledJob.getDescriptor());
assertEquals(calendar.getCronValue(), ((CronCalendar) scheduledJob.getCalendar()).getCronValue());
assertEquals(calendar.getTimeZone(), ((CronCalendar) scheduledJob.getCalendar()).getTimeZone());
assertEquals(config, scheduledJob.getConfig());
assertEquals("description", scheduledJob.getDescription());
}
use of com.enonic.xp.scheduler.ScheduledJob in project xp by enonic.
the class SchedulerServiceImplTest method modify.
@Test
void modify() throws Exception {
final ScheduledJobName name = ScheduledJobName.from("test");
adminContext().callWith(() -> schedulerService.create(CreateScheduledJobParams.create().name(name).descriptor(DescriptorKey.from(ApplicationKey.from("com.enonic.app.test"), "task1")).calendar(calendarService.cron("* * * * *", TimeZone.getTimeZone("GMT+5:30"))).config(new PropertyTree()).build()));
final Instant now = Instant.now();
Thread.sleep(100);
final User user = User.create().key(PrincipalKey.ofUser(IdProviderKey.system(), "user1")).displayName("User 1").email("user1@enonic.com").login("user1").build();
final Context adminContext = adminContext();
final Context userAdminContext = ContextBuilder.from(adminContext).authInfo(AuthenticationInfo.copyOf(adminContext.getAuthInfo()).user(user).build()).build();
final ScheduledJob modifiedJob = userAdminContext.callWith(() -> schedulerService.modify(ModifyScheduledJobParams.create().name(name).editor(edit -> {
edit.enabled = true;
edit.description = "new description";
edit.descriptor = DescriptorKey.from(ApplicationKey.from("com.enonic.app.test"), "task2");
edit.config.addString("string", "value");
edit.user = PrincipalKey.from("user:provider:user");
edit.calendar = calendarService.oneTime(Instant.parse("2021-02-25T10:44:33.170079900Z"));
}).build()));
assertEquals(name, modifiedJob.getName());
assertEquals(DescriptorKey.from(ApplicationKey.from("com.enonic.app.test"), "task2"), modifiedJob.getDescriptor());
assertEquals("new description", modifiedJob.getDescription());
assertEquals("2021-02-25T10:44:33.170079900Z", ((OneTimeCalendar) modifiedJob.getCalendar()).getValue().toString());
assertEquals(ScheduleCalendarType.ONE_TIME, modifiedJob.getCalendar().getType());
assertEquals("value", modifiedJob.getConfig().getString("string"));
assertEquals(PrincipalKey.from("user:provider:user"), modifiedJob.getUser());
assertEquals(PrincipalKey.from("user:system:repo-test-user"), modifiedJob.getCreator());
assertEquals(PrincipalKey.from("user:system:user1"), modifiedJob.getModifier());
assertEquals(user.getKey(), modifiedJob.getModifier());
assertTrue(now.isBefore(modifiedJob.getModifiedTime()));
assertTrue(Instant.now().isAfter(modifiedJob.getModifiedTime()));
assertTrue(Instant.now().isAfter(modifiedJob.getCreatedTime()));
}
use of com.enonic.xp.scheduler.ScheduledJob in project xp by enonic.
the class SchedulerServiceImplTest method createOneTimeJob.
@Test
void createOneTimeJob() throws Exception {
final ScheduledJobName name = ScheduledJobName.from("test");
final DescriptorKey descriptor = DescriptorKey.from(ApplicationKey.from("com.enonic.app.features"), "landing");
final ScheduleCalendar calendar = calendarService.oneTime(Instant.parse("2021-02-25T10:44:33.170079900Z"));
final PropertyTree config = new PropertyTree();
config.addString("string", "value");
final PrincipalKey user = PrincipalKey.from("user:system:user");
final CreateScheduledJobParams params = CreateScheduledJobParams.create().name(name).descriptor(descriptor).calendar(calendar).config(config).description("description").enabled(true).user(user).build();
final Instant now = Instant.now();
Thread.sleep(100);
final ScheduledJob scheduledJob = adminContext().callWith(() -> schedulerService.create(params));
assertEquals("2021-02-25T10:44:33.170079900Z", ((OneTimeCalendar) scheduledJob.getCalendar()).getValue().toString());
assertEquals(ScheduleCalendarType.ONE_TIME, scheduledJob.getCalendar().getType());
assertEquals("user:system:repo-test-user", scheduledJob.getCreator().toString());
assertEquals("user:system:repo-test-user", scheduledJob.getModifier().toString());
assertTrue(now.isBefore(scheduledJob.getModifiedTime()));
assertTrue(now.isBefore(scheduledJob.getCreatedTime()));
}
use of com.enonic.xp.scheduler.ScheduledJob in project xp by enonic.
the class SchedulerServiceImplTest method create.
@Test
void create() throws Exception {
final ScheduledJobName name = ScheduledJobName.from("test");
final DescriptorKey descriptor = DescriptorKey.from(ApplicationKey.from("com.enonic.app.features"), "landing");
final CronCalendar calendar = calendarService.cron("* * * * *", TimeZone.getDefault());
final PropertyTree config = new PropertyTree();
config.addString("string", "value");
final PrincipalKey user = PrincipalKey.from("user:system:user");
final CreateScheduledJobParams params = CreateScheduledJobParams.create().name(name).descriptor(descriptor).calendar(calendar).config(config).description("description").enabled(true).user(user).build();
final Instant now = Instant.now();
Thread.sleep(100);
final ScheduledJob scheduledJob = adminContext().callWith(() -> schedulerService.create(params));
assertEquals(name, scheduledJob.getName());
assertEquals(descriptor, scheduledJob.getDescriptor());
assertEquals(calendar.getCronValue(), ((CronCalendar) scheduledJob.getCalendar()).getCronValue());
assertEquals(calendar.getTimeZone(), ((CronCalendar) scheduledJob.getCalendar()).getTimeZone());
assertEquals(config, scheduledJob.getConfig());
assertEquals("description", scheduledJob.getDescription());
assertEquals(user, scheduledJob.getUser());
assertEquals("user:system:repo-test-user", scheduledJob.getModifier().toString());
assertEquals("user:system:repo-test-user", scheduledJob.getCreator().toString());
assertTrue(now.isBefore(scheduledJob.getCreatedTime()));
assertTrue(now.isBefore(scheduledJob.getModifiedTime()));
assertTrue(scheduledJob.isEnabled());
}
Aggregations