private String runCommand(StepContext steoContext, String sqlCommand) throws Exception { String msg = ""; if (sqlCommand.trim().toUpperCase().startsWith("SELECT")) { logger.debug("Executing: " + sqlCommand); List<Map<String, Object>> result = jdbcTemplate.queryForList(sqlCommand, new BeanPropertySqlParameterSource(steoContext)); msg = "Result: " + result; logger.debug(msg); } else { logger.debug("Updating : " + sqlCommand); int updated = jdbcTemplate.update(sqlCommand, new BeanPropertySqlParameterSource(steoContext)); msg = "Updated: " + updated + " rows"; logger.debug(msg); } return msg; }
private ChunkContext chunkContext () { final long JOB_EXECUTION_ID = 123L; final String STEP_NAME = "myTestStep"; JobExecution jobExecution = new JobExecution(JOB_EXECUTION_ID); StepExecution stepExecution = new StepExecution(STEP_NAME, jobExecution); StepContext stepContext = new StepContext(stepExecution); return new ChunkContext(stepContext); }
private ChunkContext getChunkContext() { JobExecution jobExecution = getJobExecution(); StepExecution stepExecution = new StepExecution("STEP1",jobExecution); StepContext stepContext = new StepContext(stepExecution); ChunkContext chunkContext = new ChunkContext(stepContext); return chunkContext; }
private StepExecution getStepExecution() { StepContext context = StepSynchronizationManager.getContext(); if (context==null) { return null; } return context.getStepExecution(); }
@Test public void testExecuteCopyWithChunkContext() throws Exception { FilesOperationTasklet aTasklet = new FilesOperationTasklet(); ResourcesFactory aSourceFactory = mock(ResourcesFactory.class); Resource aFileResource1 = mock(Resource.class); when(aFileResource1.getFile()).thenReturn(new File("src/test/resources/testFiles/input.csv")); when(aFileResource1.exists()).thenReturn(true); when(aSourceFactory.getResources(anyMapOf(Object.class, Object.class))).thenReturn(new Resource[]{aFileResource1}); ResourceFactory aDestinationFactory = mock(ResourceFactory.class); Resource aDestResource = mock(Resource.class); when(aDestResource.getFile()).thenReturn(new File("target/CP-input.csv")); when(aDestResource.exists()).thenReturn(false); Resource aRelativeResource = mock(Resource.class); when(aRelativeResource.getFile()).thenReturn(new File("target")); when(aDestResource.createRelative("/.")).thenReturn(aRelativeResource); when(aDestinationFactory.getResource(anyMapOf(Object.class, Object.class))).thenReturn(aDestResource); assertFalse(aDestResource.getFile().exists()); aTasklet.setSourceFactory(aSourceFactory); aTasklet.setDestinationFactory(aDestinationFactory); aTasklet.setOperation(Operation.COPY); aTasklet.afterPropertiesSet(); ChunkContext aChunkContext = mock(ChunkContext.class); StepContext aStepContext = mock(StepContext.class); when(aChunkContext.getStepContext()).thenReturn(aStepContext); assertEquals(RepeatStatus.FINISHED, aTasklet.execute(null, aChunkContext)); verify(aChunkContext, times(2)).getStepContext(); verify(aStepContext, times(1)).getStepExecution(); assertTrue(aDestResource.getFile().exists()); }
@Test public void testExecuteCallsService() throws Exception { when(chunkContextMock.getStepContext()).thenReturn(new StepContext(new StepExecution("stepName", new JobExecution(JOB_EXECUTION_ID), 123L))); setInternalState(jobResultsTasklet, "month", 2L); setInternalState(jobResultsTasklet, "year", 2015L); jobResultsTasklet.execute(stepContributionMock, chunkContextMock); verify(monthlyTaxReportServiceMock).generateReport(12345L, 2015, 2); }
private String getStepIdentifier() { StepContext stepContext = StepSynchronizationManager.getContext(); StepExecution stepExecution = StepSynchronizationManager.getContext().getStepExecution(); return stepContext.getJobName() + "." + stepExecution.getStepName(); }