JobService { public void keepAlive(final String jobId) { jobRepository.setLastUpdate(jobId, now(clock)); } JobService();   JobService(final JobRepository jobRepository,
               final JobMetaService jobMetaService,
               final List<JobRunnable> jobRunnables,
               final ScheduledExecutorService executor,
               final ApplicationEventPublisher applicationEventPublisher,
               final Clock clock,
               final SystemInfo systemInfo,
               final UuidProvider uuidProvider); @PostConstruct void postConstruct(); Optional<String> startAsyncJob(String jobType); Optional<JobInfo> findJob(final String id); List<JobInfo> findJobs(final Optional<String> type, final int count); List<JobInfo> findJobsDistinct(); void deleteJobs(final Optional<String> type); void stopJob(final String jobId); void killJobsDeadSince(final int seconds); void killJob(final String jobId); void appendMessage(final String jobId,
                              final JobMessage jobMessage); void keepAlive(final String jobId); void markSkipped(final String jobId); void markRestarted(final String jobId); void handleTooBigJobLogs();  }
@Test public void shouldUpdateTimeStampOnKeepAlive() { jobService.keepAlive(JOB_ID); OffsetDateTime now = OffsetDateTime.now(clock); verify(jobRepository).setLastUpdate(JOB_ID, now); }