@Test public void testItemValidation() throws Exception { // given JobParameters jobParameters = new JobParameters(); // when JobExecution jobExecution = this.jobLauncher.run(this.job, jobParameters); // then Assert.assertEquals(ExitStatus.COMPLETED.getExitCode(), jobExecution.getExitStatus().getExitCode()); List<? extends Person> writtenItems = this.listItemWriter.getWrittenItems(); Assert.assertEquals(1, writtenItems.size()); Assert.assertEquals("foo", writtenItems.get(0).getName()); } }
@Test public void testFunctions() throws Exception { JobRepository jobRepository = new MapJobRepositoryFactoryBean().getObject(); StepExecution execution = jobRepository.createJobExecution("foo", new JobParameters()).createStepExecution("step"); jobRepository.add(execution); PlatformTransactionManager transactionManager = new ResourcelessTransactionManager(); List<Long> items = new ArrayList<Long>() {{ add(1L); add(2L); add(3L); }}; ItemReader<Long> reader = new ListItemReader<>(items); ListItemWriter<String> itemWriter = new ListItemWriter<>(); @SuppressWarnings("unchecked") SimpleStepBuilder<Object, String> builder = new StepBuilder("step") .repository(jobRepository) .transactionManager(transactionManager) .<Object, String>chunk(3) .reader(reader) .processor((Function<Object, String>) s -> s.toString()) .writer(itemWriter) .listener(new AnnotationBasedStepExecutionListener()); builder.build().execute(execution); assertEquals(BatchStatus.COMPLETED, execution.getStatus()); List<? extends String> writtenItems = itemWriter.getWrittenItems(); assertEquals("1", writtenItems.get(0)); assertEquals("2", writtenItems.get(1)); assertEquals("3", writtenItems.get(2)); }