@Override @Nullable public String getExitStatus() { return exitStatusSet.get() ? jobExecution.getExitStatus().getExitCode() : null; }
@Test public void testValidRun() throws Exception { JobExecution jobExecution = launcher.run(job1, new JobParameters()); //Ensure job completed successfully. Assert.isTrue(jobExecution.getExitStatus().equals(ExitStatus.COMPLETED), "Step Execution did not complete normally: " + jobExecution.getExitStatus()); //Check output. Assert.isTrue(actual.exists(), "Actual does not exist."); Assert.isTrue(compareFiles(expected.getFile(), actual.getFile()), "Files were not equal"); }
@Test public void testValidRun() throws Exception { JobExecution jobExecution = jobLauncher.run(job1, new JobParameters()); //Ensure job completed successfully. Assert.isTrue(jobExecution.getExitStatus().equals(ExitStatus.COMPLETED), "Step Execution did not complete normally: " + jobExecution.getExitStatus()); //Check output. Assert.isTrue(actual.exists(), "Actual does not exist."); compareFiles(expected.getFile(), actual.getFile()); }
@Test public void testResourceNotExists() throws Exception { JobExecution jobExecution = launcher.run(job2, new JobParameters()); Assert.isTrue(jobExecution.getExitStatus().getExitCode().equals("FAILED"), "The job exit status is not FAILED."); Assert.isTrue(jobExecution.getAllFailureExceptions().get(0).getMessage().contains("Failed to initialize the reader"), "The job failed for the wrong reason."); }
@Test public void testStepExecutionWithJavaConfig() { ApplicationContext context = new AnnotationConfigApplicationContext(TestJobConfiguration.class); JobLauncherTestUtils testUtils = context.getBean(JobLauncherTestUtils.class); JobExecution execution = testUtils.launchStep("step1"); assertEquals(ExitStatus.COMPLETED, execution.getExitStatus()); }
@Test public void testResourceNotExists() throws Exception { JobExecution jobExecution = jobLauncher.run(job2, new JobParameters()); Assert.isTrue(jobExecution.getExitStatus().getExitCode().equals("FAILED"), "The job exit status is not FAILED."); Assert.isTrue(jobExecution.getAllFailureExceptions().get(0).getMessage().contains("Failed to initialize the reader"), "The job failed for the wrong reason."); }
@Test @SuppressWarnings("resource") public void testReadRetryExhausted() throws Exception { ApplicationContext context = new ClassPathXmlApplicationContext("org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerExhausted.xml"); JobLauncher jobLauncher = context.getBean(JobLauncher.class); JobExecution jobExecution = jobLauncher.run(context.getBean(Job.class), new JobParameters()); List<Throwable> failureExceptions = jobExecution.getAllFailureExceptions(); assertTrue("Expected 1 failure exceptions", failureExceptions.size() == 1); assertTrue("Failure exception must be of type RetryException", (failureExceptions.get(0) instanceof RetryException)); assertTrue("Exception cause must be of type IllegalArgumentException", (failureExceptions.get(0).getCause() instanceof IllegalArgumentException)); assertEquals(ExitStatus.FAILED, jobExecution.getExitStatus()); }
@Test @SuppressWarnings("resource") public void testReadRetryExceptionInListener() throws Exception { ApplicationContext context = new ClassPathXmlApplicationContext("org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerListenerException.xml"); JobLauncher jobLauncher = context.getBean(JobLauncher.class); JobExecution jobExecution = jobLauncher.run(context.getBean(Job.class), new JobParameters()); List<Throwable> failureExceptions = jobExecution.getAllFailureExceptions(); assertTrue("Failure exceptions must equal one", failureExceptions.size() == 1); assertTrue("Failure exception must be of type RetryException", (failureExceptions.get(0) instanceof RetryException)); assertTrue("Exception cause must be of type BatchRuntimeException", (failureExceptions.get(0).getCause() instanceof BatchRuntimeException)); assertEquals(ExitStatus.FAILED, jobExecution.getExitStatus()); }
@Test public void testJsonReadingAndWriting() throws Exception { ApplicationContext context = new AnnotationConfigApplicationContext(JobConfiguration.class); JobLauncher jobLauncher = context.getBean(JobLauncher.class); Job job = context.getBean(Job.class); JobExecution jobExecution = jobLauncher.run(job, new JobParameters()); Assert.assertEquals(ExitStatus.COMPLETED.getExitCode(), jobExecution.getExitStatus().getExitCode()); assertFileEquals( new File(INPUT_FILE_DIRECTORY + "trades.json"), new File(OUTPUT_FILE_DIRECTORY + "trades.json")); }
/** * Test method for * {@link org.springframework.batch.core.JobExecution#getExitStatus()}. */ @Test public void testGetExitCode() { assertEquals(ExitStatus.UNKNOWN, execution.getExitStatus()); execution.setExitStatus(new ExitStatus("23")); assertEquals("23", execution.getExitStatus().getExitCode()); }
@Test public void testExitStatus() { context.setExitStatus("my exit status"); verify(execution).setExitStatus(new ExitStatus("my exit status")); when(execution.getExitStatus()).thenReturn(new ExitStatus("exit")); assertEquals("exit", context.getExitStatus()); }
@Test public void testRemotePartitioningJob() throws Exception { // when JobExecution jobExecution = this.jobLauncherTestUtils.launchJob(); // then Assert.assertEquals(ExitStatus.COMPLETED.getExitCode(), jobExecution.getExitStatus().getExitCode()); Assert.assertEquals(4, jobExecution.getStepExecutions().size()); // master + 3 workers }
private void validateJobExecution(JobExecution lhs, JobExecution rhs) { // equals operator only checks id assertEquals(lhs, rhs); assertEquals(lhs.getStartTime(), rhs.getStartTime()); assertEquals(lhs.getEndTime(), rhs.getEndTime()); assertEquals(lhs.getStatus(), rhs.getStatus()); assertEquals(lhs.getExitStatus(), rhs.getExitStatus()); }
@Test public void testPropertySubstitutionSimple() throws Exception { JobExecution jobExecution = jobLauncher.run(job, new JobParametersBuilder() .addString("testParam", "testParamValue") .addString("file.name.junit", "myfile2") .toJobParameters()); assertEquals(ExitStatus.COMPLETED, jobExecution.getExitStatus()); }
@Test public void testFailTransitionDefaultStatus() throws Exception { JobExecution jobExecution = createJobExecution(); job.execute(jobExecution); assertEquals(1, stepNamesList.size()); assertTrue(stepNamesList.contains("s1")); assertEquals(BatchStatus.FAILED, jobExecution.getStatus()); assertEquals(ExitStatus.FAILED, jobExecution.getExitStatus()); StepExecution stepExecution1 = getStepExecution(jobExecution, "s1"); assertEquals(BatchStatus.COMPLETED, stepExecution1.getStatus()); assertEquals(ExitStatus.COMPLETED, stepExecution1.getExitStatus()); }
private void checkRepository(BatchStatus status, ExitStatus exitStatus) { assertEquals(jobInstance, jobInstanceDao.getJobInstance(job.getName(), jobParameters)); // because map DAO stores in memory, it can be checked directly JobExecution jobExecution = jobExecutionDao.findJobExecutions(jobInstance).get(0); assertEquals(jobInstance.getId(), jobExecution.getJobId()); assertEquals(status, jobExecution.getStatus()); if (exitStatus != null) { assertEquals(exitStatus.getExitCode(), jobExecution.getExitStatus().getExitCode()); } }
@Test public void testLaunchFailedJob() throws Exception { tasklet.setFail(true); JobExecution jobExecution = jobLauncher.run(job, new JobParametersBuilder().addLong("run.id", 2L).toJobParameters()); assertEquals(BatchStatus.FAILED, jobExecution.getStatus()); assertEquals(ExitStatus.FAILED, jobExecution.getExitStatus()); }
private void launchAndAssert(String stepNames) throws JobInstanceAlreadyCompleteException, JobRestartException, JobExecutionAlreadyRunningException { JobExecution jobExecution = createJobExecution(); job.execute(jobExecution); assertEquals(stepNames, stepNamesList.toString()); assertEquals(BatchStatus.STOPPED, jobExecution.getStatus()); assertEquals(ExitStatus.STOPPED.getExitCode(), jobExecution.getExitStatus().getExitCode()); StepExecution stepExecution1 = getStepExecution(jobExecution, "fail"); assertEquals(BatchStatus.FAILED, stepExecution1.getStatus()); assertEquals(ExitStatus.FAILED.getExitCode(), stepExecution1.getExitStatus().getExitCode()); }
@Test public void testBuildWithCustomEndState() throws Exception { SimpleJobBuilder builder = new JobBuilder("flow").repository(jobRepository).start(step1); builder.on("COMPLETED").end("FOO"); builder.preventRestart(); builder.build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals("FOO", execution.getExitStatus().getExitCode()); assertEquals(1, execution.getStepExecutions().size()); }
@Test public void testBuildWithStop() throws Exception { SimpleJobBuilder builder = new JobBuilder("flow").repository(jobRepository).start(step1); builder.on("COMPLETED").stop(); builder.preventRestart(); builder.build().execute(execution); assertEquals(BatchStatus.STOPPED, execution.getStatus()); assertEquals("STOPPED", execution.getExitStatus().getExitCode()); assertEquals(1, execution.getStepExecutions().size()); }