use of com.enonic.xp.scheduler.ModifyScheduledJobParams in project xp by enonic.
the class ModifyScheduledJobHandler method doExecute.
@Override
protected ScheduledJobMapper doExecute() {
final ScheduledJob existingJob = schedulerService.get().get(name);
if (existingJob == null) {
throw new IllegalArgumentException(String.format("[%s] job not found.", name.getValue()));
}
final ModifyScheduledJobParams params = ModifyScheduledJobParams.create().name(name).editor(newJobEditor()).build();
final ScheduledJob modifiedJob = this.schedulerService.get().modify(params);
return ScheduledJobMapper.from(modifiedJob);
}
use of com.enonic.xp.scheduler.ModifyScheduledJobParams in project xp by enonic.
the class BaseScheduledJobHandlerTest method mockJob.
private void mockJob() {
jobs = new HashMap<>();
Mockito.when(schedulerService.create(Mockito.isA(CreateScheduledJobParams.class))).thenAnswer(invocation -> {
final CreateScheduledJobParams params = invocation.getArgument(0);
final ScheduledJob job = ScheduledJob.create().name(params.getName()).descriptor(params.getDescriptor()).description(params.getDescription()).calendar(params.getCalendar()).config(params.getConfig()).enabled(params.isEnabled()).user(params.getUser()).creator(PrincipalKey.from("user:system:creator")).modifier(PrincipalKey.from("user:system:creator")).createdTime(Instant.parse("2016-11-02T10:36:00Z")).modifiedTime(Instant.parse("2016-11-02T10:36:00Z")).build();
jobs.put(job.getName(), job);
return job;
});
Mockito.when(schedulerService.modify(Mockito.isA(ModifyScheduledJobParams.class))).thenAnswer(invocation -> {
final ModifyScheduledJobParams params = invocation.getArgument(0);
final EditableScheduledJob editableJob = new EditableScheduledJob(jobs.get(params.getName()));
params.getEditor().edit(editableJob);
ScheduledJob modifiedJob = editableJob.build();
modifiedJob = ScheduledJob.create().name(modifiedJob.getName()).description(modifiedJob.getDescription()).calendar(modifiedJob.getCalendar()).enabled(modifiedJob.isEnabled()).descriptor(modifiedJob.getDescriptor()).config(modifiedJob.getConfig()).user(modifiedJob.getUser()).creator(modifiedJob.getCreator()).createdTime(modifiedJob.getCreatedTime()).modifiedTime(Instant.parse("2021-02-25T10:44:33.170079900Z")).modifier(PrincipalKey.from("user:system:modifier")).build();
jobs.put(params.getName(), modifiedJob);
return modifiedJob;
});
Mockito.when(schedulerService.delete(Mockito.isA(ScheduledJobName.class))).thenAnswer(invocation -> {
final ScheduledJobName name = invocation.getArgument(0);
final ScheduledJob job = jobs.remove(name);
return job != null;
});
Mockito.when(schedulerService.get(Mockito.isA(ScheduledJobName.class))).thenAnswer(invocation -> jobs.get(invocation.getArgument(0)));
Mockito.when(schedulerService.list()).thenAnswer(invocation -> new ArrayList<>(jobs.values()));
}
use of com.enonic.xp.scheduler.ModifyScheduledJobParams in project xp by enonic.
the class ScheduleAuditLogSupportImplTest method testUpdateContent.
@Test
public void testUpdateContent() throws Exception {
final PropertyTree config = new PropertyTree();
config.addString("property", "value");
final CronCalendarImpl calendar = CronCalendarImpl.create().value("* * * * *").timeZone(TimeZone.getTimeZone("GMT+5:30")).build();
final DescriptorKey descriptor = DescriptorKey.from("appKey:descriptorName");
final String jobDescription = "Job description";
final PrincipalKey userKey = PrincipalKey.from("user:system:user");
final OneTimeCalendarImpl oneTimeCalendar = OneTimeCalendarImpl.create().value(Instant.parse("2021-04-25T10:44:33.170079900Z")).build();
final ModifyScheduledJobParams params = ModifyScheduledJobParams.create().name(name).editor(edit -> edit.calendar = oneTimeCalendar).build();
final ScheduledJob job = ScheduledJob.create().name(name).calendar(oneTimeCalendar).descriptor(descriptor).description(jobDescription).config(config).enabled(true).user(userKey).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();
context.runWith(() -> support.modify(params, job));
executor.shutdown();
executor.awaitTermination(1, TimeUnit.MINUTES);
final ArgumentCaptor<LogAuditLogParams> argumentCaptor = ArgumentCaptor.forClass(LogAuditLogParams.class);
verify(auditLogService, times(1)).log(argumentCaptor.capture());
assertEquals(user.getKey().toString(), argumentCaptor.getValue().getData().getSet("params").getString("modifier"));
assertEquals("2021-04-25T10:44:33.170079900Z", argumentCaptor.getValue().getData().getSet("result").getSet("calendar").getString("value"));
}
use of com.enonic.xp.scheduler.ModifyScheduledJobParams in project xp by enonic.
the class ScheduleAuditLogSupportImplTest method testUpdateWithoutCreator.
@Test
public // jobs were produced with an empty `creator` and `createdTime` fields from 7.7.0 to 7.7.2
void testUpdateWithoutCreator() throws Exception {
final PropertyTree config = new PropertyTree();
config.addString("property", "value");
final CronCalendarImpl calendar = CronCalendarImpl.create().value("* * * * *").timeZone(TimeZone.getTimeZone("GMT+5:30")).build();
final DescriptorKey descriptor = DescriptorKey.from("appKey:descriptorName");
final String jobDescription = "Job description";
final PrincipalKey userKey = PrincipalKey.from("user:system:user");
final OneTimeCalendarImpl oneTimeCalendar = OneTimeCalendarImpl.create().value(Instant.parse("2021-04-25T10:44:33.170079900Z")).build();
final ModifyScheduledJobParams params = ModifyScheduledJobParams.create().name(name).editor(edit -> edit.calendar = oneTimeCalendar).build();
final ScheduledJob job = ScheduledJob.create().name(name).calendar(oneTimeCalendar).descriptor(descriptor).description(jobDescription).config(config).enabled(true).user(userKey).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();
context.runWith(() -> support.modify(params, job));
executor.shutdown();
executor.awaitTermination(1, TimeUnit.MINUTES);
final ArgumentCaptor<LogAuditLogParams> argumentCaptor = ArgumentCaptor.forClass(LogAuditLogParams.class);
verify(auditLogService, times(1)).log(argumentCaptor.capture());
assertNull(argumentCaptor.getValue().getData().getSet("params").getString("creator"));
}
Aggregations