diff --git a/spring-batch-samples/.springBeans b/spring-batch-samples/.springBeans
index ce943fa31..77ce05a70 100644
--- a/spring-batch-samples/.springBeans
+++ b/spring-batch-samples/.springBeans
@@ -18,14 +18,12 @@
src/main/resources/jobs/adhocLoopJob.xml
src/main/resources/jobs/infiniteLoopJob.xml
src/main/resources/data-source-context-init.xml
- src/main/resources/jobs/hibernateJob.xml
src/main/resources/jobs/ibatisJob.xml
src/main/resources/jobs/footballJob.xml
src/main/resources/jobs/delegatingJob.xml
src/main/resources/jobs/parallelJob.xml
src/main/resources/jobs/retrySample.xml
src/main/resources/simple-job-launcher-context.xml
- src/main/resources/jobs/batchUpdateJob.xml
src/main/resources/adhoc-job-launcher-context.xml
src/main/resources/alt-data-source-context.xml
src/main/resources/quartz-job-launcher-context.xml
@@ -49,6 +47,7 @@
src/main/resources/jobs/iosample/multiRecordType.xml
src/main/resources/jobs/iosample/multiResource.xml
src/main/resources/jobs/iosample/xml.xml
+ src/main/resources/jobs/iosample/hibernate.xml
@@ -205,7 +204,6 @@
src/main/resources/data-source-context.xml
src/main/resources/data-source-context-init.xml
- src/main/resources/jobs/batchUpdateJob.xml
src/main/resources/simple-job-launcher-context.xml
src/main/resources/org/springframework/batch/sample/config/common-context.xml
@@ -289,7 +287,6 @@
false
src/main/resources/data-source-context.xml
- src/main/resources/jobs/hibernateJob.xml
src/main/resources/simple-job-launcher-context.xml
src/main/resources/org/springframework/batch/sample/config/common-context.xml
src/main/resources/hibernate-context.xml
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/trade/internal/CustomerCreditIncreaseProcessor.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/trade/internal/CustomerCreditIncreaseProcessor.java
index 7c686cfa1..8c5f4c565 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/trade/internal/CustomerCreditIncreaseProcessor.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/trade/internal/CustomerCreditIncreaseProcessor.java
@@ -12,7 +12,7 @@ import org.springframework.batch.sample.domain.trade.CustomerCredit;
*/
public class CustomerCreditIncreaseProcessor implements ItemProcessor {
- public static final BigDecimal FIXED_AMOUNT = new BigDecimal("1000");
+ public static final BigDecimal FIXED_AMOUNT = new BigDecimal("5");
public CustomerCredit process(CustomerCredit item) throws Exception {
return item.increaseCreditBy(FIXED_AMOUNT);
diff --git a/spring-batch-samples/src/main/resources/data/iosample/input/delimited.csv b/spring-batch-samples/src/main/resources/data/iosample/input/delimited.csv
index a39b2d4b8..8c8c3989e 100644
--- a/spring-batch-samples/src/main/resources/data/iosample/input/delimited.csv
+++ b/spring-batch-samples/src/main/resources/data/iosample/input/delimited.csv
@@ -1,6 +1,6 @@
-UK21341EAH45,978,98.34,customer1
-UK21341EAH46,112,18.12,customer2
-UK21341EAH47,245,12.78,customer3
-UK21341EAH48,108,109.25,customer4
-UK21341EAH49,854,123.39,customer5
-UK21341EAH50,234,32.45,customer6
+customer1,10
+customer2,20
+customer3,30
+customer4,40
+customer5,50
+customer6,60
\ No newline at end of file
diff --git a/spring-batch-samples/src/main/resources/data/iosample/input/delimited2.csv b/spring-batch-samples/src/main/resources/data/iosample/input/delimited2.csv
index d1d68d574..59bce0497 100644
--- a/spring-batch-samples/src/main/resources/data/iosample/input/delimited2.csv
+++ b/spring-batch-samples/src/main/resources/data/iosample/input/delimited2.csv
@@ -1,2 +1,2 @@
-UK21341EAH51,643,594.23,customer7
-UK21341EAH52,393,65.21,customer8
+customer7,70
+customer8,80
\ No newline at end of file
diff --git a/spring-batch-samples/src/main/resources/data/iosample/input/fixedLength.txt b/spring-batch-samples/src/main/resources/data/iosample/input/fixedLength.txt
index c31971514..a22f8e7aa 100644
--- a/spring-batch-samples/src/main/resources/data/iosample/input/fixedLength.txt
+++ b/spring-batch-samples/src/main/resources/data/iosample/input/fixedLength.txt
@@ -1,6 +1,6 @@
-UK21341EAH45978 98.34customer1
-UK21341EAH46112 18.12customer2
-UK21341EAH47245 12.78customer3
-UK21341EAH48108109.25customer4
-UK21341EAH49854123.39customer5
-UK21341EAH50234 32.45customer6
+customer110
+customer220
+customer330
+customer440
+customer550
+customer660
\ No newline at end of file
diff --git a/spring-batch-samples/src/main/resources/data/iosample/input/input.xml b/spring-batch-samples/src/main/resources/data/iosample/input/input.xml
index 8330402e8..41bd56fb9 100644
--- a/spring-batch-samples/src/main/resources/data/iosample/input/input.xml
+++ b/spring-batch-samples/src/main/resources/data/iosample/input/input.xml
@@ -1,39 +1,23 @@
-
-
- UK21341EAH45
- 978
- 98.34
- customer1
-
-
- UK21341EAH46
- 112
- 18.12
- customer2
-
-
- UK21341EAH47
- 245
- 12.78
- customer3
-
-
- UK21341EAH48
- 108
- 109.25
- customer4
-
-
- UK21341EAH49
- 854
- 123.39
- customer5
-
-
- UK21341EAH50
- 234
- 32.45
- customer6
-
-
+
+
+ customer1
+ 10
+
+
+ customer2
+ 20
+
+
+ customer3
+ 30
+
+
+ customer4
+ 40
+
+
+ customer5
+ 50
+
+
\ No newline at end of file
diff --git a/spring-batch-samples/src/main/resources/jobs/batchUpdateJob.xml b/spring-batch-samples/src/main/resources/jobs/batchUpdateJob.xml
deleted file mode 100644
index 26517580c..000000000
--- a/spring-batch-samples/src/main/resources/jobs/batchUpdateJob.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
- Example for SQL Batch Update integration.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/spring-batch-samples/src/main/resources/jobs/ioSampleJob.xml b/spring-batch-samples/src/main/resources/jobs/ioSampleJob.xml
index 39237c544..dfe64ac15 100644
--- a/spring-batch-samples/src/main/resources/jobs/ioSampleJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/ioSampleJob.xml
@@ -17,6 +17,9 @@
+
+
+
diff --git a/spring-batch-samples/src/main/resources/jobs/iosample/delimited.xml b/spring-batch-samples/src/main/resources/jobs/iosample/delimited.xml
index a38f98f8b..45196b0f7 100644
--- a/spring-batch-samples/src/main/resources/jobs/iosample/delimited.xml
+++ b/spring-batch-samples/src/main/resources/jobs/iosample/delimited.xml
@@ -18,27 +18,34 @@
+
-
+
+
+
-
+
+
+
+
+
diff --git a/spring-batch-samples/src/main/resources/jobs/iosample/fixedLength.xml b/spring-batch-samples/src/main/resources/jobs/iosample/fixedLength.xml
index 815b9f8ac..b0730c430 100644
--- a/spring-batch-samples/src/main/resources/jobs/iosample/fixedLength.xml
+++ b/spring-batch-samples/src/main/resources/jobs/iosample/fixedLength.xml
@@ -1,9 +1,7 @@
-
-
+
+
+
-
+
+
+
-
+
-
+
-
-
+
+
+
+
+
diff --git a/spring-batch-samples/src/main/resources/jobs/iosample/hibernate.xml b/spring-batch-samples/src/main/resources/jobs/iosample/hibernate.xml
new file mode 100644
index 000000000..cee706487
--- /dev/null
+++ b/spring-batch-samples/src/main/resources/jobs/iosample/hibernate.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/spring-batch-samples/src/main/resources/jobs/iosample/jdbcCursor.xml b/spring-batch-samples/src/main/resources/jobs/iosample/jdbcCursor.xml
index e83ce038f..e3cedda39 100644
--- a/spring-batch-samples/src/main/resources/jobs/iosample/jdbcCursor.xml
+++ b/spring-batch-samples/src/main/resources/jobs/iosample/jdbcCursor.xml
@@ -19,16 +19,13 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/spring-batch-samples/src/main/resources/jobs/iosample/multiLine.xml b/spring-batch-samples/src/main/resources/jobs/iosample/multiLine.xml
index 53f3e435a..e93244550 100644
--- a/spring-batch-samples/src/main/resources/jobs/iosample/multiLine.xml
+++ b/spring-batch-samples/src/main/resources/jobs/iosample/multiLine.xml
@@ -1,27 +1,39 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -29,12 +41,15 @@
-
+
-
+
-
+
diff --git a/spring-batch-samples/src/main/resources/jobs/iosample/multiRecordType.xml b/spring-batch-samples/src/main/resources/jobs/iosample/multiRecordType.xml
index da6ad91d3..1cc4e88d8 100644
--- a/spring-batch-samples/src/main/resources/jobs/iosample/multiRecordType.xml
+++ b/spring-batch-samples/src/main/resources/jobs/iosample/multiRecordType.xml
@@ -1,9 +1,7 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
-
+
-
-
+
diff --git a/spring-batch-samples/src/main/resources/jobs/iosample/multiResource.xml b/spring-batch-samples/src/main/resources/jobs/iosample/multiResource.xml
index 2cfedd7c8..b804d9dcb 100644
--- a/spring-batch-samples/src/main/resources/jobs/iosample/multiResource.xml
+++ b/spring-batch-samples/src/main/resources/jobs/iosample/multiResource.xml
@@ -1,9 +1,7 @@
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
diff --git a/spring-batch-samples/src/main/resources/jobs/iosample/xml.xml b/spring-batch-samples/src/main/resources/jobs/iosample/xml.xml
index c3eef37e9..2c80f2882 100644
--- a/spring-batch-samples/src/main/resources/jobs/iosample/xml.xml
+++ b/spring-batch-samples/src/main/resources/jobs/iosample/xml.xml
@@ -1,9 +1,7 @@
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/HibernateJobFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/HibernateJobFunctionalTests.java
deleted file mode 100644
index 245554a20..000000000
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/HibernateJobFunctionalTests.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.springframework.batch.sample;
-
-import org.junit.runner.RunWith;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-/**
- * Test for HibernateJob - checks that customer credit has been updated to expected value.
- *
- * @author Robert Kasanicky
- */
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration()
-public class HibernateJobFunctionalTests extends AbstractCustomerCreditIncreaseTests {
-
-}
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/JdbcBatchJobFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/JdbcBatchJobFunctionalTests.java
deleted file mode 100644
index 5fe58328c..000000000
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/JdbcBatchJobFunctionalTests.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.springframework.batch.sample;
-
-import org.junit.runner.RunWith;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-/**
- * Test for JdbcBatchItemWriterJob - checks that customer credit has been updated to expected value.
- *
- * @author Robert Kasanicky
- */
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration
-public class JdbcBatchJobFunctionalTests extends AbstractCustomerCreditIncreaseTests {
-
-}
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/AbstractIoSampleTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/AbstractIoSampleTests.java
new file mode 100644
index 000000000..74d8ddaf6
--- /dev/null
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/AbstractIoSampleTests.java
@@ -0,0 +1,99 @@
+package org.springframework.batch.sample.iosample;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+import org.springframework.batch.core.BatchStatus;
+import org.springframework.batch.core.JobExecution;
+import org.springframework.batch.item.ExecutionContext;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.item.ItemStream;
+import org.springframework.batch.sample.domain.trade.CustomerCredit;
+import org.springframework.batch.sample.domain.trade.internal.CustomerCreditIncreaseProcessor;
+import org.springframework.batch.test.AbstractJobTests;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * Base class for IoSample tests that increase input customer credit by fixed
+ * amount. Assumes inputs and outputs are in the same format and uses the job's
+ * {@link ItemReader} to parse the outputs.
+ *
+ * @author Robert Kasanicky
+ */
+public abstract class AbstractIoSampleTests extends AbstractJobTests {
+
+ @Autowired
+ private ItemReader reader;
+
+ /**
+ * Check the resulting credits correspond to inputs increased by fixed
+ * amount.
+ */
+ @Test
+ public void testUpdateCredit() throws Exception {
+
+ open(reader);
+ List inputs = getCredits(reader);
+ close(reader);
+
+ JobExecution jobExecution = this.launchJob();
+ assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus());
+
+ pointReaderToOutput(reader);
+ open(reader);
+ List outputs = getCredits(reader);
+ close(reader);
+
+ assertEquals(inputs.size(), outputs.size());
+ int itemCount = inputs.size();
+ assertTrue(itemCount > 0);
+
+ for (int i = 0; i < itemCount; i++) {
+ assertEquals(inputs.get(i).getCredit().add(CustomerCreditIncreaseProcessor.FIXED_AMOUNT).intValue(),
+ outputs.get(i).getCredit().intValue());
+ }
+
+ }
+
+ /**
+ * Configure the reader to read outputs (if necessary). Required for
+ * file-to-file jobs jobs, usually no-op for database jobs where inputs are
+ * updated (rather than outputs created).
+ */
+ protected abstract void pointReaderToOutput(ItemReader reader);
+
+ /**
+ * Read all credits using the provided reader.
+ */
+ private List getCredits(ItemReader reader) throws Exception {
+ CustomerCredit credit;
+ List result = new ArrayList();
+ while ((credit = reader.read()) != null) {
+ result.add(credit);
+ }
+ return result;
+
+ }
+
+ /**
+ * Open the reader if applicable.
+ */
+ private void open(ItemReader> reader) {
+ if (reader instanceof ItemStream) {
+ ((ItemStream) reader).open(new ExecutionContext());
+ }
+ }
+
+ /**
+ * Close the reader if applicable.
+ */
+ private void close(ItemReader> reader) {
+ if (reader instanceof ItemStream) {
+ ((ItemStream) reader).close();
+ }
+ }
+
+}
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/DelimitedFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/DelimitedFunctionalTests.java
index cb48259ae..03a7e8e3f 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/DelimitedFunctionalTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/DelimitedFunctionalTests.java
@@ -16,11 +16,12 @@
package org.springframework.batch.sample.iosample;
-import org.junit.Test;
import org.junit.runner.RunWith;
-import org.springframework.batch.test.AbstractJobTests;
-import org.springframework.batch.test.AssertFile;
-import org.springframework.core.io.FileSystemResource;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.item.file.FlatFileItemReader;
+import org.springframework.batch.sample.domain.trade.CustomerCredit;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.Resource;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -31,17 +32,15 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/simple-job-launcher-context.xml", "/jobs/ioSampleJob.xml",
"/jobs/iosample/delimited.xml" })
-public class DelimitedFunctionalTests extends AbstractJobTests {
+public class DelimitedFunctionalTests extends AbstractIoSampleTests {
- private static final String OUTPUT_FILE = "target/test-outputs/delimitedOutput.csv";
- private static final String INPUT_FILE = "src/main/resources/data/iosample/input/delimited.csv";
-
- /**
- * Output should be the same as input
- */
- @Test
- public void testJob() throws Exception {
- this.launchJob();
- AssertFile.assertFileEquals(new FileSystemResource(OUTPUT_FILE), new FileSystemResource(INPUT_FILE));
+ @Autowired
+ private Resource outputResource;
+
+ @Override
+ protected void pointReaderToOutput(ItemReader reader) {
+ FlatFileItemReader fileReader = (FlatFileItemReader) reader;
+ fileReader.setResource(outputResource);
}
+
}
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/FixedLengthFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/FixedLengthFunctionalTests.java
index e010a01b3..214e7955d 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/FixedLengthFunctionalTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/FixedLengthFunctionalTests.java
@@ -16,28 +16,26 @@
package org.springframework.batch.sample.iosample;
-import org.junit.Test;
import org.junit.runner.RunWith;
-import org.springframework.batch.test.AbstractJobTests;
-import org.springframework.batch.test.AssertFile;
-import org.springframework.core.io.FileSystemResource;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.item.file.FlatFileItemReader;
+import org.springframework.batch.sample.domain.trade.CustomerCredit;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.Resource;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/simple-job-launcher-context.xml", "/jobs/ioSampleJob.xml",
"/jobs/iosample/fixedLength.xml" })
-public class FixedLengthFunctionalTests extends AbstractJobTests {
+public class FixedLengthFunctionalTests extends AbstractIoSampleTests {
- private static final String OUTPUT_FILE = "target/test-outputs/fixedLengthOutput.txt";
- private static final String INPUT_FILE = "src/main/resources/data/iosample/input/fixedLength.txt";
+ @Autowired
+ private Resource outputResource;
- /**
- * Output should be the same as input
- */
- @Test
- public void testJob() throws Exception {
- this.launchJob();
- AssertFile.assertFileEquals(new FileSystemResource(OUTPUT_FILE), new FileSystemResource(INPUT_FILE));
+ @Override
+ protected void pointReaderToOutput(ItemReader reader) {
+ FlatFileItemReader> fileReader = (FlatFileItemReader>) reader;
+ fileReader.setResource(outputResource);
}
}
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/HibernateFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/HibernateFunctionalTests.java
new file mode 100644
index 000000000..9a5805e00
--- /dev/null
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/HibernateFunctionalTests.java
@@ -0,0 +1,19 @@
+package org.springframework.batch.sample.iosample;
+
+import org.junit.runner.RunWith;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.sample.domain.trade.CustomerCredit;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = { "/simple-job-launcher-context.xml", "/hibernate-context.xml",
+ "/jobs/ioSampleJob.xml", "/jobs/iosample/hibernate.xml" })
+public class HibernateFunctionalTests extends AbstractIoSampleTests {
+
+ @Override
+ protected void pointReaderToOutput(ItemReader reader) {
+ // no-op
+ }
+
+}
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/JdbcCursorFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/JdbcCursorFunctionalTests.java
index 0f768988f..cb8764a4b 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/JdbcCursorFunctionalTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/JdbcCursorFunctionalTests.java
@@ -16,18 +16,11 @@
package org.springframework.batch.sample.iosample;
-import static org.junit.Assert.assertEquals;
-
-import javax.sql.DataSource;
-
-import org.junit.Test;
import org.junit.runner.RunWith;
-import org.springframework.batch.test.AbstractJobTests;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.sample.domain.trade.CustomerCredit;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.jdbc.SimpleJdbcTestUtils;
/**
* @author Dan Garrette
@@ -36,28 +29,11 @@ import org.springframework.test.jdbc.SimpleJdbcTestUtils;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/simple-job-launcher-context.xml", "/jobs/ioSampleJob.xml",
"/jobs/iosample/jdbcCursor.xml" })
-public class JdbcCursorFunctionalTests extends AbstractJobTests {
+public class JdbcCursorFunctionalTests extends AbstractIoSampleTests {
- private SimpleJdbcTemplate simpleJdbcTemplate;
-
- @Autowired
- public void setDataSource(DataSource dataSource) {
- this.simpleJdbcTemplate = new SimpleJdbcTemplate(dataSource);
+ @Override
+ protected void pointReaderToOutput(ItemReader reader) {
+ // no-op
}
- /**
- * Output should be the same as input
- */
- @Test
- public void testJob() throws Exception {
- this.simpleJdbcTemplate.update("delete from TRADE");
-
- this.launchJob();
-
- assertEquals(4, SimpleJdbcTestUtils.countRowsInTable(simpleJdbcTemplate, "TRADE"));
- for (int i = 1; i <= 4; i++) {
- String sql = "select count(*) from TRADE where CUSTOMER = ?";
- assertEquals(1, simpleJdbcTemplate.queryForInt(sql, "customer" + i));
- }
- }
}
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiLineFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiLineFunctionalTests.java
index fe583814d..afd8020fd 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiLineFunctionalTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiLineFunctionalTests.java
@@ -29,11 +29,11 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
* @since 2.0
*/
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = { "/simple-job-launcher-context.xml", "/jobs/ioSampleJob.xml",
- "/jobs/iosample/multiLine.xml" })
+@ContextConfiguration(locations = { "/simple-job-launcher-context.xml", "/jobs/iosample/multiLine.xml" })
public class MultiLineFunctionalTests extends AbstractJobTests {
private static final String OUTPUT_FILE = "target/test-outputs/multiLineOutput.txt";
+
private static final String INPUT_FILE = "src/main/resources/data/iosample/input/multiLine.txt";
/**
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiRecordTypeFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiRecordTypeFunctionalTests.java
index 84dcd7c97..bc2641177 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiRecordTypeFunctionalTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiRecordTypeFunctionalTests.java
@@ -29,11 +29,11 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
* @since 2.0
*/
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = { "/simple-job-launcher-context.xml", "/jobs/ioSampleJob.xml",
- "/jobs/iosample/multiRecordType.xml" })
+@ContextConfiguration(locations = { "/simple-job-launcher-context.xml", "/jobs/iosample/multiRecordType.xml" })
public class MultiRecordTypeFunctionalTests extends AbstractJobTests {
private static final String OUTPUT_FILE = "target/test-outputs/multiRecordTypeOutput.txt";
+
private static final String INPUT_FILE = "src/main/resources/data/iosample/input/multiRecordType.txt";
/**
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiResourceFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiResourceFunctionalTests.java
index 0cc3d62ed..20cb31951 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiResourceFunctionalTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/MultiResourceFunctionalTests.java
@@ -16,11 +16,12 @@
package org.springframework.batch.sample.iosample;
-import org.junit.Test;
import org.junit.runner.RunWith;
-import org.springframework.batch.test.AbstractJobTests;
-import org.springframework.batch.test.AssertFile;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.item.file.MultiResourceItemReader;
+import org.springframework.batch.sample.domain.trade.CustomerCredit;
import org.springframework.core.io.FileSystemResource;
+import org.springframework.core.io.Resource;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -31,18 +32,15 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/simple-job-launcher-context.xml", "/jobs/ioSampleJob.xml",
"/jobs/iosample/multiResource.xml" })
-public class MultiResourceFunctionalTests extends AbstractJobTests {
+public class MultiResourceFunctionalTests extends AbstractIoSampleTests {
- /**
- * Output should be the same as input
- */
- @Test
- public void testJob() throws Exception {
- this.launchJob();
+ @Override
+ protected void pointReaderToOutput(ItemReader reader) {
+ MultiResourceItemReader> multiReader = (MultiResourceItemReader>) reader;
+ multiReader.setResources(new Resource[] {
+ new FileSystemResource("target/test-outputs/multiResourceOutput.csv.1"),
+ new FileSystemResource("target/test-outputs/multiResourceOutput.csv.2") });
- AssertFile.assertFileEquals(new FileSystemResource("target/test-outputs/multiResourceOutput.csv.1"),
- new FileSystemResource("src/main/resources/data/iosample/input/delimited.csv"));
- AssertFile.assertFileEquals(new FileSystemResource("target/test-outputs/multiResourceOutput.csv.2"),
- new FileSystemResource("src/main/resources/data/iosample/input/delimited2.csv"));
}
+
}
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/XmlFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/XmlFunctionalTests.java
index 448d1617b..567e6d7f7 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/XmlFunctionalTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/iosample/XmlFunctionalTests.java
@@ -16,13 +16,12 @@
package org.springframework.batch.sample.iosample;
-import java.io.FileReader;
-
-import org.custommonkey.xmlunit.XMLAssert;
-import org.custommonkey.xmlunit.XMLUnit;
-import org.junit.Test;
import org.junit.runner.RunWith;
-import org.springframework.batch.test.AbstractJobTests;
+import org.springframework.batch.item.ItemReader;
+import org.springframework.batch.item.xml.StaxEventItemReader;
+import org.springframework.batch.sample.domain.trade.CustomerCredit;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.Resource;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -33,18 +32,16 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/simple-job-launcher-context.xml", "/jobs/ioSampleJob.xml",
"/jobs/iosample/xml.xml" })
-public class XmlFunctionalTests extends AbstractJobTests {
+public class XmlFunctionalTests extends AbstractIoSampleTests {
- private static final String OUTPUT_FILE = "target/test-outputs/output.xml";
- private static final String INPUT_FILE = "src/main/resources/data/iosample/input/input.xml";
-
- /**
- * Output should be the same as input
- */
- @Test
- public void testJob() throws Exception {
- this.launchJob();
- XMLUnit.setIgnoreWhitespace(true);
- XMLAssert.assertXMLEqual(new FileReader(INPUT_FILE), new FileReader(OUTPUT_FILE));
+ @Autowired
+ private Resource outputResource;
+
+ @Override
+ protected void pointReaderToOutput(ItemReader reader) {
+ StaxEventItemReader> xmlReader = (StaxEventItemReader>) reader;
+ xmlReader.setResource(outputResource);
}
+
+
}
diff --git a/spring-batch-samples/src/test/resources/org/springframework/batch/sample/HibernateJobFunctionalTests-context.xml b/spring-batch-samples/src/test/resources/org/springframework/batch/sample/HibernateJobFunctionalTests-context.xml
deleted file mode 100644
index a907d541b..000000000
--- a/spring-batch-samples/src/test/resources/org/springframework/batch/sample/HibernateJobFunctionalTests-context.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/spring-batch-samples/src/test/resources/org/springframework/batch/sample/JdbcBatchJobFunctionalTests-context.xml b/spring-batch-samples/src/test/resources/org/springframework/batch/sample/JdbcBatchJobFunctionalTests-context.xml
deleted file mode 100644
index decb1e3f0..000000000
--- a/spring-batch-samples/src/test/resources/org/springframework/batch/sample/JdbcBatchJobFunctionalTests-context.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-