diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractJobExecutionDaoTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractJobExecutionDaoTests.java index 93d41e073..24d6263fc 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractJobExecutionDaoTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractJobExecutionDaoTests.java @@ -1,5 +1,9 @@ package org.springframework.batch.core.repository.dao; +import static org.junit.Assert.*; +import org.junit.Before; +import org.junit.Test; + import java.util.Date; import java.util.List; @@ -7,13 +11,14 @@ import org.springframework.batch.core.BatchStatus; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.JobInstance; import org.springframework.batch.core.JobParameters; -import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests; +import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; +import org.springframework.transaction.annotation.Transactional; -public abstract class AbstractJobExecutionDaoTests extends AbstractTransactionalDataSourceSpringContextTests { +public abstract class AbstractJobExecutionDaoTests extends AbstractTransactionalJUnit4SpringContextTests { JobExecutionDao dao; - JobInstance jobInstance = new JobInstance(new Long(1), new JobParameters(), "execTestJob"); + JobInstance jobInstance = new JobInstance((long) 1, new JobParameters(), "execTestJob"); JobExecution execution = new JobExecution(jobInstance); @@ -22,13 +27,15 @@ public abstract class AbstractJobExecutionDaoTests extends AbstractTransactional */ protected abstract JobExecutionDao getJobExecutionDao(); - protected void onSetUp() throws Exception { + @Before + public void onSetUp() throws Exception { dao = getJobExecutionDao(); } /** * Save and find a job execution. */ + @Transactional @Test public void testSaveAndFind() { dao.saveJobExecution(execution); @@ -41,6 +48,7 @@ public abstract class AbstractJobExecutionDaoTests extends AbstractTransactional /** * Saving sets id to the entity. */ + @Transactional @Test public void testSaveAddsIdAndVersion() { assertNull(execution.getId()); @@ -54,6 +62,7 @@ public abstract class AbstractJobExecutionDaoTests extends AbstractTransactional * Update and retrieve job execution - check attributes have changed as * expected. */ + @Transactional @Test public void testUpdateExecution() { execution.setStatus(BatchStatus.STARTED); dao.saveJobExecution(execution); @@ -61,7 +70,7 @@ public abstract class AbstractJobExecutionDaoTests extends AbstractTransactional execution.setStatus(BatchStatus.COMPLETED); dao.updateJobExecution(execution); - JobExecution updated = (JobExecution) dao.findJobExecutions(jobInstance).get(0); + JobExecution updated = dao.findJobExecutions(jobInstance).get(0); assertEquals(execution, updated); assertEquals(BatchStatus.COMPLETED, updated.getStatus()); } @@ -69,6 +78,7 @@ public abstract class AbstractJobExecutionDaoTests extends AbstractTransactional /** * Check the execution with most recent start time is returned */ + @Transactional @Test public void testGetLastExecution() { JobExecution exec1 = new JobExecution(jobInstance); exec1.setCreateTime(new Date(0)); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDaoTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDaoTests.java index 62278cbe7..db6f49bad 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDaoTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDaoTests.java @@ -1,22 +1,21 @@ package org.springframework.batch.core.repository.dao; -import org.springframework.util.ClassUtils; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.junit.runner.RunWith; +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(locations = {"sql-dao-test.xml"}) public class JdbcJobExecutionDaoTests extends AbstractJobExecutionDaoTests { protected JobExecutionDao getJobExecutionDao() { - deleteFromTables(new String[] { "BATCH_EXECUTION_CONTEXT", "BATCH_STEP_EXECUTION", "BATCH_JOB_EXECUTION", - "BATCH_JOB_PARAMS", "BATCH_JOB_INSTANCE" }); + deleteFromTables("BATCH_EXECUTION_CONTEXT", "BATCH_STEP_EXECUTION", "BATCH_JOB_EXECUTION", + "BATCH_JOB_PARAMS", "BATCH_JOB_INSTANCE"); // job instance needs to exist before job execution can be created - getJdbcTemplate() - .execute( - "insert into BATCH_JOB_INSTANCE (JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, VERSION) values (1,'execTestJob', '', 0)"); - return (JobExecutionDao) getApplicationContext().getBean("jobExecutionDao"); - } - - protected String[] getConfigLocations() { - return new String[] { ClassUtils.addResourcePathToPackagePath(getClass(), "sql-dao-test.xml") }; + simpleJdbcTemplate.getJdbcOperations().execute( + "insert into BATCH_JOB_INSTANCE (JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, VERSION) values (1,'execTestJob', '', 0)"); + return (JobExecutionDao) applicationContext.getBean("jobExecutionDao"); } } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/MapJobExecutionDaoTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/MapJobExecutionDaoTests.java index 17ab9abc8..a731f003e 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/MapJobExecutionDaoTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/MapJobExecutionDaoTests.java @@ -1,6 +1,9 @@ package org.springframework.batch.core.repository.dao; +import org.junit.runner.RunWith; +import org.junit.internal.runners.JUnit4ClassRunner; +@RunWith(JUnit4ClassRunner.class) public class MapJobExecutionDaoTests extends AbstractJobExecutionDaoTests { protected JobExecutionDao getJobExecutionDao() {