use of com.google.cloud.talent.v4.Job in project pentaho-platform by pentaho.
the class SchedulerServiceTest method testGetJobInfo.
@Test
public void testGetJobInfo() throws Exception {
String jobId = "jobId";
Job mockJob = mock(Job.class);
doReturn(mockJob).when(schedulerService).getJob(jobId);
IPentahoSession mockPentahoSession = mock(IPentahoSession.class);
doReturn(mockPentahoSession).when(schedulerService).getSession();
String sessionName = "sessionName";
doReturn(sessionName).when(mockPentahoSession).getName();
doReturn(sessionName).when(mockJob).getUserName();
Map<String, Serializable> mockJobParams = mock(Map.class);
doReturn(mockJobParams).when(mockJob).getJobParams();
Set<String> jobParamsKeyset = new HashSet<>();
doReturn(jobParamsKeyset).when(mockJobParams).keySet();
String jobParamKey = "key";
jobParamsKeyset.add(jobParamKey);
String value = "value";
String[] testArray = new String[] { value };
doReturn(testArray).when(mockJobParams).get(jobParamKey);
// Test 1
Job testJob = schedulerService.getJobInfo(jobId);
assertEquals(mockJob, testJob);
// Test 2
testJob = schedulerService.getJobInfo(jobId);
assertEquals(mockJob, testJob);
verify(mockJobParams, times(2)).put(eq(jobParamKey), any(Serializable.class));
verify(schedulerService, times(2)).getJob(jobId);
verify(schedulerService, times(2)).getSession();
verify(mockPentahoSession, times(2)).getName();
verify(mockJob, times(2)).getUserName();
verify(mockJob, times(6)).getJobParams();
verify(mockJobParams, times(2)).keySet();
verify(mockJobParams, times(2)).get(jobParamKey);
verify(schedulerService, times(2)).canAdminister(null);
}
use of com.google.cloud.talent.v4.Job in project pentaho-platform by pentaho.
the class SchedulerServiceTest method testPauseJobException.
@Test
public void testPauseJobException() throws SchedulerException {
Job job = mock(Job.class);
doReturn(job).when(schedulerService).getJob(nullable(String.class));
doReturn(true).when(schedulerService).isScheduleAllowed();
doThrow(new SchedulerException("pause-exception")).when(schedulerService.scheduler).pauseJob(nullable(String.class));
try {
schedulerService.pauseJob("job-id");
} catch (SchedulerException e) {
assertEquals("pause-exception", e.getMessage());
}
}
use of com.google.cloud.talent.v4.Job in project pentaho-platform by pentaho.
the class SchedulerServiceTest method testResumeJobException.
@Test
public void testResumeJobException() throws SchedulerException {
Job job = mock(Job.class);
doReturn(job).when(schedulerService).getJob(nullable(String.class));
doReturn(true).when(schedulerService).isScheduleAllowed();
doThrow(new SchedulerException("pause-exception")).when(schedulerService.scheduler).resumeJob(nullable(String.class));
try {
schedulerService.resumeJob("job-id");
} catch (SchedulerException e) {
assertEquals("pause-exception", e.getMessage());
}
}
use of com.google.cloud.talent.v4.Job in project pentaho-platform by pentaho.
the class SchedulerServiceTest method testCreateJob.
@Test
public void testCreateJob() throws Exception {
List<JobScheduleParam> jobParameters = new ArrayList<>();
JobScheduleParam jobScheduleParam1 = mock(JobScheduleParam.class);
doReturn("name1").when(jobScheduleParam1).getName();
doReturn("value1").when(jobScheduleParam1).getValue();
jobParameters.add(jobScheduleParam1);
Job job = mock(Job.class);
JobScheduleRequest scheduleRequest = mock(JobScheduleRequest.class);
doReturn("className").when(scheduleRequest).getActionClass();
doReturn("jobName").when(scheduleRequest).getJobName();
doReturn(jobParameters).when(scheduleRequest).getJobParameters();
doNothing().when(scheduleRequest).setJobName(nullable(String.class));
doReturn("timezone").when(scheduleRequest).getTimeZone();
doNothing().when(schedulerService).updateStartDateForTimeZone(scheduleRequest);
doReturn(true).when(schedulerService).isPdiFile(any(RepositoryFile.class));
doReturn(false).when(schedulerService).isPdiFile(null);
SchedulerOutputPathResolver schedulerOutputPathResolver = mock(SchedulerOutputPathResolver.class);
doReturn("outputFile").when(schedulerOutputPathResolver).resolveOutputFilePath();
doReturn(schedulerOutputPathResolver).when(schedulerService).getSchedulerOutputPathResolver(any(JobScheduleRequest.class));
SimpleJobTrigger simpleJobTrigger = mock(SimpleJobTrigger.class);
RepositoryFile repositoryFile = mock(RepositoryFile.class);
doReturn("file.ext").when(repositoryFile).getName();
Map<String, Serializable> metadata = mock(Map.class);
doReturn(metadata).when(schedulerService.repository).getFileMetadata(nullable(String.class));
doReturn(true).when(metadata).containsKey(RepositoryFile.SCHEDULABLE_KEY);
doReturn("true").when(metadata).get(RepositoryFile.SCHEDULABLE_KEY);
doReturn(simpleJobTrigger).when(scheduleRequest).getSimpleJobTrigger();
doReturn(true).when(schedulerService.policy).isAllowed(SchedulerAction.NAME);
doReturn("file.ext").when(scheduleRequest).getInputFile();
doReturn(repositoryFile).when(schedulerService.repository).getFile(nullable(String.class));
doReturn(true).when(schedulerService).getAutoCreateUniqueFilename(any(JobScheduleRequest.class));
doReturn(job).when(schedulerService.scheduler).createJob(nullable(String.class), nullable(String.class), any(Map.class), any(IJobTrigger.class), any(IBackgroundExecutionStreamProvider.class));
doReturn(Class.class).when(schedulerService).getAction(nullable(String.class));
doReturn(job).when(schedulerService.scheduler).createJob(nullable(String.class), any(Class.class), any(Map.class), any(IJobTrigger.class));
// Test 1
schedulerService.createJob(scheduleRequest);
// Test 2
doReturn("").when(scheduleRequest).getJobName();
schedulerService.createJob(scheduleRequest);
// Test 3
doReturn("").when(scheduleRequest).getInputFile();
doReturn("").when(scheduleRequest).getActionClass();
schedulerService.createJob(scheduleRequest);
verify(scheduleRequest, times(15)).getSimpleJobTrigger();
verify(scheduleRequest, times(9)).getInputFile();
verify(schedulerService.policy, times(3)).isAllowed(SchedulerAction.NAME);
verify(schedulerService.repository, times(2)).getFile(nullable(String.class));
verify(scheduleRequest, times(6)).getJobName();
verify(scheduleRequest, times(3)).setJobName(nullable(String.class));
verify(scheduleRequest, times(5)).getActionClass();
verify(schedulerService.repository, times(2)).getFileMetadata(nullable(String.class));
verify(schedulerService, times(3)).isPdiFile(nullable(RepositoryFile.class));
verify(schedulerService, times(2)).handlePDIScheduling(any(RepositoryFile.class), any(HashMap.class), any(HashMap.class));
verify(schedulerService, times(2)).getSchedulerOutputPathResolver(any(JobScheduleRequest.class));
verify(scheduleRequest, times(5)).getActionClass();
verify(schedulerService).getAction(nullable(String.class));
verify(schedulerService, times(3)).updateStartDateForTimeZone(scheduleRequest);
verify(schedulerService.scheduler).createJob(nullable(String.class), any(Class.class), any(Map.class), any(IJobTrigger.class));
}
use of com.google.cloud.talent.v4.Job in project pentaho-platform by pentaho.
the class SchedulerServiceTest method testCreateJobException.
@Test
public void testCreateJobException() throws Exception {
List<JobScheduleParam> jobParameters = new ArrayList<>();
JobScheduleParam jobScheduleParam1 = mock(JobScheduleParam.class);
doReturn("name1").when(jobScheduleParam1).getName();
doReturn("value1").when(jobScheduleParam1).getValue();
jobParameters.add(jobScheduleParam1);
Job job = mock(Job.class);
JobScheduleRequest scheduleRequest = mock(JobScheduleRequest.class);
doReturn("className").when(scheduleRequest).getActionClass();
doReturn("jobName").when(scheduleRequest).getJobName();
doReturn(jobParameters).when(scheduleRequest).getJobParameters();
doNothing().when(scheduleRequest).setJobName(nullable(String.class));
doReturn(true).when(schedulerService).isPdiFile(nullable(RepositoryFile.class));
SchedulerOutputPathResolver schedulerOutputPathResolver = mock(SchedulerOutputPathResolver.class);
SimpleJobTrigger simpleJobTrigger = mock(SimpleJobTrigger.class);
RepositoryFile repositoryFile = mock(RepositoryFile.class);
Map<String, Serializable> metadata = mock(Map.class);
doReturn(metadata).when(schedulerService.repository).getFileMetadata(nullable(String.class));
doReturn(true).when(metadata).containsKey(RepositoryFile.SCHEDULABLE_KEY);
doReturn(simpleJobTrigger).when(scheduleRequest).getSimpleJobTrigger();
doReturn(false).when(schedulerService.policy).isAllowed(SchedulerAction.NAME);
doReturn("file.ext").when(scheduleRequest).getInputFile();
doReturn(repositoryFile).when(schedulerService.repository).getFile(nullable(String.class));
// Test 1
try {
schedulerService.createJob(scheduleRequest);
fail();
} catch (SecurityException e) {
// Should catch it
}
// Test 2
doReturn(true).when(schedulerService.policy).isAllowed(SchedulerAction.NAME);
doReturn("false").when(metadata).get(RepositoryFile.SCHEDULABLE_KEY);
try {
schedulerService.createJob(scheduleRequest);
fail();
} catch (IllegalAccessException e) {
// Should catch it
}
// Test 3
doReturn("").when(scheduleRequest).getInputFile();
doThrow(new ClassNotFoundException()).when(schedulerService).getAction(nullable(String.class));
try {
schedulerService.createJob(scheduleRequest);
fail();
} catch (RuntimeException e) {
// Should catch it
}
verify(scheduleRequest, times(7)).getSimpleJobTrigger();
verify(scheduleRequest, times(3)).getInputFile();
verify(schedulerService.policy, times(3)).isAllowed(SchedulerAction.NAME);
verify(schedulerService.repository, times(1)).getFile(nullable(String.class));
verify(scheduleRequest, times(1)).getJobName();
verify(scheduleRequest, times(2)).setJobName(nullable(String.class));
verify(scheduleRequest, times(7)).getActionClass();
verify(schedulerService.repository, times(1)).getFileMetadata(nullable(String.class));
verify(schedulerService, times(1)).isPdiFile(nullable(RepositoryFile.class));
verify(schedulerService, times(1)).handlePDIScheduling(nullable(RepositoryFile.class), any(HashMap.class), any(HashMap.class));
verify(scheduleRequest, times(7)).getActionClass();
verify(schedulerService).getAction(nullable(String.class));
}
Aggregations