IN PROGRESS - issue BATCH-352: SimpleFlatFileItemReader vs. DefaultFlatFileItemReader
http://jira.springframework.org/browse/BATCH-352 DefaultFlatFileItemReader renamed to FlatFileItemReader
This commit is contained in:
@@ -34,15 +34,15 @@ import org.springframework.core.io.ByteArrayResource;
|
||||
import org.springframework.core.io.Resource;
|
||||
|
||||
/**
|
||||
* Tests for {@link SimpleFlatFileItemReaderTests}
|
||||
* Tests for {@link FlatFileItemReader} - the fundamental item reading functionality.
|
||||
*
|
||||
* @see FlatFileItemReaderTests
|
||||
* @author Dave Syer
|
||||
*
|
||||
*/
|
||||
public class SimpleFlatFileItemReaderTests extends TestCase {
|
||||
public class BasicFlatFileItemReaderTests extends TestCase {
|
||||
|
||||
// object under test
|
||||
private DefaultFlatFileItemReader itemReader = new DefaultFlatFileItemReader();
|
||||
private FlatFileItemReader itemReader = new FlatFileItemReader();
|
||||
|
||||
// common value used for writing to a file
|
||||
private String TEST_STRING = "FlatFileInputTemplate-TestData";
|
||||
@@ -136,14 +136,14 @@ public class SimpleFlatFileItemReaderTests extends TestCase {
|
||||
}
|
||||
|
||||
public void testReadBeforeOpen() throws Exception {
|
||||
itemReader = new DefaultFlatFileItemReader();
|
||||
itemReader = new FlatFileItemReader();
|
||||
itemReader.setResource(getInputResource(TEST_STRING));
|
||||
itemReader.setFieldSetMapper(fieldSetMapper);
|
||||
assertEquals("[FlatFileInputTemplate-TestData]", itemReader.read().toString());
|
||||
}
|
||||
|
||||
public void testCloseBeforeOpen() throws Exception {
|
||||
itemReader = new DefaultFlatFileItemReader();
|
||||
itemReader = new FlatFileItemReader();
|
||||
itemReader.setResource(getInputResource(TEST_STRING));
|
||||
itemReader.setFieldSetMapper(fieldSetMapper);
|
||||
itemReader.close();
|
||||
@@ -152,7 +152,7 @@ public class SimpleFlatFileItemReaderTests extends TestCase {
|
||||
}
|
||||
|
||||
public void testInitializationWithNullResource() throws Exception {
|
||||
itemReader = new DefaultFlatFileItemReader();
|
||||
itemReader = new FlatFileItemReader();
|
||||
try {
|
||||
itemReader.afterPropertiesSet();
|
||||
fail("Expected IllegalArgumentException");
|
||||
@@ -168,7 +168,7 @@ public class SimpleFlatFileItemReaderTests extends TestCase {
|
||||
}
|
||||
|
||||
public void testSetValidEncoding() throws Exception {
|
||||
itemReader = new DefaultFlatFileItemReader();
|
||||
itemReader = new FlatFileItemReader();
|
||||
itemReader.setEncoding("UTF-8");
|
||||
itemReader.setResource(getInputResource(TEST_STRING));
|
||||
itemReader.setFieldSetMapper(fieldSetMapper);
|
||||
@@ -176,7 +176,7 @@ public class SimpleFlatFileItemReaderTests extends TestCase {
|
||||
}
|
||||
|
||||
public void testSetNullEncoding() throws Exception {
|
||||
itemReader = new DefaultFlatFileItemReader();
|
||||
itemReader = new FlatFileItemReader();
|
||||
itemReader.setEncoding(null);
|
||||
itemReader.setResource(getInputResource(TEST_STRING));
|
||||
try {
|
||||
@@ -189,7 +189,7 @@ public class SimpleFlatFileItemReaderTests extends TestCase {
|
||||
}
|
||||
|
||||
public void testSetInvalidEncoding() throws Exception {
|
||||
itemReader = new DefaultFlatFileItemReader();
|
||||
itemReader = new FlatFileItemReader();
|
||||
itemReader.setEncoding("foo");
|
||||
itemReader.setResource(getInputResource(TEST_STRING));
|
||||
try {
|
||||
@@ -224,7 +224,7 @@ public class SimpleFlatFileItemReaderTests extends TestCase {
|
||||
public void testColumnNamesInHeader() throws Exception {
|
||||
final String INPUT = "name1|name2\nvalue1|value2\nvalue3|value4";
|
||||
|
||||
itemReader = new DefaultFlatFileItemReader();
|
||||
itemReader = new FlatFileItemReader();
|
||||
itemReader.setResource(getInputResource(INPUT));
|
||||
itemReader.setLineTokenizer(new DelimitedLineTokenizer('|'));
|
||||
itemReader.setFieldSetMapper(fieldSetMapper);
|
||||
@@ -247,7 +247,7 @@ public class SimpleFlatFileItemReaderTests extends TestCase {
|
||||
public void testLinesToSkip() throws Exception {
|
||||
final String INPUT = "foo bar spam\none two\nthree four";
|
||||
|
||||
itemReader = new DefaultFlatFileItemReader();
|
||||
itemReader = new FlatFileItemReader();
|
||||
itemReader.setResource(getInputResource(INPUT));
|
||||
itemReader.setLineTokenizer(new DelimitedLineTokenizer(' '));
|
||||
itemReader.setFieldSetMapper(fieldSetMapper);
|
||||
@@ -268,7 +268,7 @@ public class SimpleFlatFileItemReaderTests extends TestCase {
|
||||
|
||||
Resource resource = new NonExistentResource();
|
||||
|
||||
DefaultFlatFileItemReader testReader = new DefaultFlatFileItemReader();
|
||||
FlatFileItemReader testReader = new FlatFileItemReader();
|
||||
testReader.setResource(resource);
|
||||
testReader.setLineTokenizer(tokenizer);
|
||||
testReader.setFieldSetMapper(fieldSetMapper);
|
||||
@@ -290,7 +290,7 @@ public class SimpleFlatFileItemReaderTests extends TestCase {
|
||||
|
||||
Resource resource = new NonExistentResource();
|
||||
|
||||
DefaultFlatFileItemReader testReader = new DefaultFlatFileItemReader();
|
||||
FlatFileItemReader testReader = new FlatFileItemReader();
|
||||
testReader.setResource(resource);
|
||||
testReader.setLineTokenizer(tokenizer);
|
||||
testReader.setFieldSetMapper(fieldSetMapper);
|
||||
@@ -30,13 +30,14 @@ import org.springframework.core.io.ByteArrayResource;
|
||||
import org.springframework.core.io.Resource;
|
||||
|
||||
/**
|
||||
* Tests for {@link DefaultFlatFileItemReader}
|
||||
* Tests for {@link FlatFileItemReader} - skip and restart functionality.
|
||||
*
|
||||
* @see FlatFileItemReaderBasicTests
|
||||
*/
|
||||
public class DefaultFlatFileItemReaderTests extends TestCase {
|
||||
public class FlatFileItemReaderTests extends TestCase {
|
||||
|
||||
// object under test
|
||||
private DefaultFlatFileItemReader inputSource = new DefaultFlatFileItemReader();
|
||||
private FlatFileItemReader reader = new FlatFileItemReader();
|
||||
|
||||
// common value used for writing to a file
|
||||
private String TEST_STRING = "FlatFileInputTemplate-TestData";
|
||||
@@ -60,19 +61,19 @@ public class DefaultFlatFileItemReaderTests extends TestCase {
|
||||
*/
|
||||
protected void setUp() throws Exception {
|
||||
|
||||
inputSource.setResource(getInputResource(TEST_STRING));
|
||||
inputSource.setLineTokenizer(tokenizer);
|
||||
inputSource.setFieldSetMapper(fieldSetMapper);
|
||||
reader.setResource(getInputResource(TEST_STRING));
|
||||
reader.setLineTokenizer(tokenizer);
|
||||
reader.setFieldSetMapper(fieldSetMapper);
|
||||
// context argument is necessary only for the FileLocator, which
|
||||
// is mocked
|
||||
inputSource.open();
|
||||
reader.open();
|
||||
}
|
||||
|
||||
/**
|
||||
* Release resources and delete the temporary file
|
||||
*/
|
||||
protected void tearDown() throws Exception {
|
||||
inputSource.close();
|
||||
reader.close();
|
||||
}
|
||||
|
||||
private Resource getInputResource(String input) {
|
||||
@@ -85,25 +86,25 @@ public class DefaultFlatFileItemReaderTests extends TestCase {
|
||||
*/
|
||||
public void testSkip() throws Exception {
|
||||
|
||||
inputSource.close();
|
||||
inputSource.setResource(getInputResource("testLine1\ntestLine2\ntestLine3\ntestLine4\ntestLine5\ntestLine6"));
|
||||
inputSource.open();
|
||||
reader.close();
|
||||
reader.setResource(getInputResource("testLine1\ntestLine2\ntestLine3\ntestLine4\ntestLine5\ntestLine6"));
|
||||
reader.open();
|
||||
|
||||
// read some records
|
||||
inputSource.read(); // #1
|
||||
inputSource.read(); // #2
|
||||
reader.read(); // #1
|
||||
reader.read(); // #2
|
||||
// commit them
|
||||
inputSource.mark();
|
||||
reader.mark();
|
||||
// read next record
|
||||
inputSource.read(); // # 3
|
||||
reader.read(); // # 3
|
||||
// mark record as skipped
|
||||
inputSource.skip();
|
||||
reader.skip();
|
||||
// read next records
|
||||
inputSource.reset();
|
||||
reader.reset();
|
||||
|
||||
// we should now process all records after first commit point, that are
|
||||
// not marked as skipped
|
||||
assertEquals("[testLine4]", inputSource.read().toString());
|
||||
assertEquals("[testLine4]", reader.read().toString());
|
||||
|
||||
// TODO update
|
||||
// Map statistics = template.getStatistics();
|
||||
@@ -120,79 +121,79 @@ public class DefaultFlatFileItemReaderTests extends TestCase {
|
||||
*/
|
||||
public void testSkipFirstChunk() throws Exception {
|
||||
|
||||
inputSource.close();
|
||||
inputSource.setResource(getInputResource("testLine1\ntestLine2\ntestLine3\ntestLine4\ntestLine5\ntestLine6"));
|
||||
inputSource.open();
|
||||
reader.close();
|
||||
reader.setResource(getInputResource("testLine1\ntestLine2\ntestLine3\ntestLine4\ntestLine5\ntestLine6"));
|
||||
reader.open();
|
||||
|
||||
// read some records
|
||||
inputSource.read(); // #1
|
||||
inputSource.read(); // #2
|
||||
inputSource.read(); // #3
|
||||
reader.read(); // #1
|
||||
reader.read(); // #2
|
||||
reader.read(); // #3
|
||||
// mark record as skipped
|
||||
inputSource.skip();
|
||||
reader.skip();
|
||||
// rollback
|
||||
inputSource.reset();
|
||||
reader.reset();
|
||||
// read next record
|
||||
inputSource.read(); // should be #1
|
||||
reader.read(); // should be #1
|
||||
|
||||
// we should now process all records after first commit point, that are
|
||||
// not marked as skipped
|
||||
assertEquals("[testLine2]", inputSource.read().toString());
|
||||
assertEquals("[testLine2]", reader.read().toString());
|
||||
|
||||
}
|
||||
|
||||
public void testRestartFromNullData() throws Exception {
|
||||
inputSource.restoreFrom(null);
|
||||
assertEquals("[FlatFileInputTemplate-TestData]", inputSource.read().toString());
|
||||
reader.restoreFrom(null);
|
||||
assertEquals("[FlatFileInputTemplate-TestData]", reader.read().toString());
|
||||
}
|
||||
|
||||
public void testRestartBeforeOpen() throws Exception {
|
||||
inputSource = new DefaultFlatFileItemReader();
|
||||
inputSource.setResource(getInputResource(TEST_STRING));
|
||||
inputSource.setFieldSetMapper(fieldSetMapper);
|
||||
reader = new FlatFileItemReader();
|
||||
reader.setResource(getInputResource(TEST_STRING));
|
||||
reader.setFieldSetMapper(fieldSetMapper);
|
||||
// do not open the template...
|
||||
try {
|
||||
inputSource.restoreFrom(inputSource.getExecutionAttributes());
|
||||
reader.restoreFrom(reader.getExecutionAttributes());
|
||||
} catch (StreamException e) {
|
||||
assertTrue("Message does not contain open: "+e.getMessage(), e.getMessage().contains("open"));
|
||||
}
|
||||
assertEquals("[FlatFileInputTemplate-TestData]", inputSource.read().toString());
|
||||
assertEquals("[FlatFileInputTemplate-TestData]", reader.read().toString());
|
||||
}
|
||||
|
||||
public void testRestart() throws Exception {
|
||||
|
||||
inputSource.close();
|
||||
inputSource.setResource(getInputResource("testLine1\ntestLine2\ntestLine3\ntestLine4\ntestLine5\ntestLine6"));
|
||||
inputSource.open();
|
||||
reader.close();
|
||||
reader.setResource(getInputResource("testLine1\ntestLine2\ntestLine3\ntestLine4\ntestLine5\ntestLine6"));
|
||||
reader.open();
|
||||
|
||||
// read some records
|
||||
inputSource.read();
|
||||
inputSource.read();
|
||||
reader.read();
|
||||
reader.read();
|
||||
// commit them
|
||||
inputSource.mark();
|
||||
reader.mark();
|
||||
// read next two records
|
||||
inputSource.read();
|
||||
inputSource.read();
|
||||
reader.read();
|
||||
reader.read();
|
||||
|
||||
// get restart data
|
||||
ExecutionAttributes streamContext = inputSource.getExecutionAttributes();
|
||||
ExecutionAttributes streamContext = reader.getExecutionAttributes();
|
||||
assertEquals("4", (String) streamContext.getProperties().getProperty(
|
||||
DefaultFlatFileItemReader.READ_STATISTICS_NAME));
|
||||
FlatFileItemReader.READ_STATISTICS_NAME));
|
||||
// close input
|
||||
inputSource.close();
|
||||
reader.close();
|
||||
|
||||
inputSource.setResource(getInputResource("testLine1\ntestLine2\ntestLine3\ntestLine4\ntestLine5\ntestLine6"));
|
||||
reader.setResource(getInputResource("testLine1\ntestLine2\ntestLine3\ntestLine4\ntestLine5\ntestLine6"));
|
||||
|
||||
// init for restart
|
||||
inputSource.open();
|
||||
inputSource.restoreFrom(streamContext);
|
||||
reader.open();
|
||||
reader.restoreFrom(streamContext);
|
||||
|
||||
// read remaining records
|
||||
assertEquals("[testLine5]", inputSource.read().toString());
|
||||
assertEquals("[testLine6]", inputSource.read().toString());
|
||||
assertEquals("[testLine5]", reader.read().toString());
|
||||
assertEquals("[testLine6]", reader.read().toString());
|
||||
|
||||
ExecutionAttributes statistics = inputSource.getExecutionAttributes();
|
||||
assertEquals(6, statistics.getLong(DefaultFlatFileItemReader.READ_STATISTICS_NAME));
|
||||
ExecutionAttributes statistics = reader.getExecutionAttributes();
|
||||
assertEquals(6, statistics.getLong(FlatFileItemReader.READ_STATISTICS_NAME));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -18,7 +18,7 @@ package org.springframework.batch.repeat.support;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.springframework.batch.io.file.DefaultFlatFileItemReader;
|
||||
import org.springframework.batch.io.file.FlatFileItemReader;
|
||||
import org.springframework.batch.io.file.mapping.FieldSet;
|
||||
import org.springframework.batch.io.file.mapping.FieldSetMapper;
|
||||
import org.springframework.batch.item.reader.DelegatingItemReader;
|
||||
@@ -51,7 +51,7 @@ public abstract class AbstractTradeBatchTests extends TestCase {
|
||||
|
||||
protected TradeItemReader(Resource resource) throws Exception {
|
||||
super();
|
||||
DefaultFlatFileItemReader inputSource = new DefaultFlatFileItemReader();
|
||||
FlatFileItemReader inputSource = new FlatFileItemReader();
|
||||
inputSource.setResource(resource);
|
||||
inputSource.setFieldSetMapper(new TradeMapper());
|
||||
inputSource.afterPropertiesSet();
|
||||
|
||||
Reference in New Issue
Block a user