IN PROGRESS - BATCH-712: Upgrade ItemReaders to use Parameterized types

fixing warnings in tests
This commit is contained in:
robokaso
2008-07-18 11:51:47 +00:00
parent 4a91a00854
commit e15efba266
11 changed files with 76 additions and 84 deletions

View File

@@ -24,6 +24,7 @@ import org.springframework.batch.item.ExecutionContext;
import org.springframework.batch.item.file.mapping.DefaultFieldSet;
import org.springframework.batch.item.file.mapping.FieldSet;
import org.springframework.batch.item.file.mapping.FieldSetMapper;
import org.springframework.batch.item.file.mapping.PassThroughFieldSetMapper;
import org.springframework.batch.item.file.transform.LineTokenizer;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.Resource;
@@ -37,7 +38,7 @@ import org.springframework.util.ClassUtils;
public class FlatFileItemReaderAdvancedTests extends TestCase {
// object under test
private FlatFileItemReader reader = new FlatFileItemReader();
private FlatFileItemReader<FieldSet> reader = new FlatFileItemReader<FieldSet>();
// common value used for writing to a file
private String TEST_STRING = "FlatFileInputTemplate-TestData";
@@ -51,11 +52,7 @@ public class FlatFileItemReaderAdvancedTests extends TestCase {
}
};
private FieldSetMapper fieldSetMapper = new FieldSetMapper() {
public Object mapLine(FieldSet fs, int lineNum) {
return fs;
}
};
private FieldSetMapper<FieldSet> fieldSetMapper = new PassThroughFieldSetMapper();
/**
* Create inputFile, inject mock/stub dependencies for tested object, initialize the tested object

View File

@@ -29,6 +29,7 @@ import org.springframework.batch.item.ReaderNotOpenException;
import org.springframework.batch.item.file.mapping.DefaultFieldSet;
import org.springframework.batch.item.file.mapping.FieldSet;
import org.springframework.batch.item.file.mapping.FieldSetMapper;
import org.springframework.batch.item.file.mapping.PassThroughFieldSetMapper;
import org.springframework.batch.item.file.separator.DefaultRecordSeparatorPolicy;
import org.springframework.batch.item.file.transform.DelimitedLineTokenizer;
import org.springframework.batch.item.file.transform.LineTokenizer;
@@ -45,7 +46,7 @@ import org.springframework.core.io.Resource;
public class FlatFileItemReaderBasicTests extends TestCase {
// object under test
private FlatFileItemReader itemReader = new FlatFileItemReader();
private FlatFileItemReader<FieldSet> itemReader = new FlatFileItemReader<FieldSet>();
// common value used for writing to a file
private String TEST_STRING = "FlatFileInputTemplate-TestData";
@@ -60,11 +61,7 @@ public class FlatFileItemReaderBasicTests extends TestCase {
}
};
private FieldSetMapper fieldSetMapper = new FieldSetMapper() {
public Object mapLine(FieldSet fs, int lineNum) {
return fs;
}
};
private FieldSetMapper<FieldSet> fieldSetMapper = new PassThroughFieldSetMapper();
/**
* Create inputFile, inject mock/stub dependencies for tested object, initialize the tested object
@@ -112,8 +109,8 @@ public class FlatFileItemReaderBasicTests extends TestCase {
*/
public void testReadWithLineNumber() throws Exception {
final List<Integer> list = new ArrayList<Integer>();
itemReader.setFieldSetMapper(new FieldSetMapper() {
public Object mapLine(FieldSet fs, int lineNum) {
itemReader.setFieldSetMapper(new FieldSetMapper<FieldSet>() {
public FieldSet mapLine(FieldSet fs, int lineNum) {
list.add(lineNum);
return fs;
}
@@ -144,8 +141,8 @@ public class FlatFileItemReaderBasicTests extends TestCase {
}
public void testReadWithMapperError() throws Exception {
itemReader.setFieldSetMapper(new FieldSetMapper() {
public Object mapLine(FieldSet fs, int lineNum) {
itemReader.setFieldSetMapper(new FieldSetMapper<FieldSet>() {
public FieldSet mapLine(FieldSet fs, int lineNum) {
throw new RuntimeException("foo");
}
});
@@ -161,7 +158,7 @@ public class FlatFileItemReaderBasicTests extends TestCase {
}
public void testReadBeforeOpen() throws Exception {
itemReader = new FlatFileItemReader();
itemReader = new FlatFileItemReader<FieldSet>();
itemReader.setResource(getInputResource(TEST_STRING));
itemReader.setFieldSetMapper(fieldSetMapper);
try {
@@ -173,7 +170,7 @@ public class FlatFileItemReaderBasicTests extends TestCase {
}
public void testCloseBeforeOpen() throws Exception {
itemReader = new FlatFileItemReader();
itemReader = new FlatFileItemReader<FieldSet>();
itemReader.setResource(getInputResource(TEST_STRING));
itemReader.setFieldSetMapper(fieldSetMapper);
itemReader.close(null);
@@ -183,7 +180,7 @@ public class FlatFileItemReaderBasicTests extends TestCase {
}
public void testInitializationWithNullResource() throws Exception {
itemReader = new FlatFileItemReader();
itemReader = new FlatFileItemReader<FieldSet>();
try {
itemReader.afterPropertiesSet();
fail("Expected IllegalArgumentException");
@@ -198,7 +195,7 @@ public class FlatFileItemReaderBasicTests extends TestCase {
}
public void testSetValidEncoding() throws Exception {
itemReader = new FlatFileItemReader();
itemReader = new FlatFileItemReader<FieldSet>();
itemReader.setEncoding("UTF-8");
itemReader.setResource(getInputResource(TEST_STRING));
itemReader.setFieldSetMapper(fieldSetMapper);
@@ -207,7 +204,7 @@ public class FlatFileItemReaderBasicTests extends TestCase {
}
public void testSetNullEncoding() throws Exception {
itemReader = new FlatFileItemReader();
itemReader = new FlatFileItemReader<FieldSet>();
itemReader.setEncoding(null);
itemReader.setResource(getInputResource(TEST_STRING));
try {
@@ -219,7 +216,7 @@ public class FlatFileItemReaderBasicTests extends TestCase {
}
public void testSetInvalidEncoding() throws Exception {
itemReader = new FlatFileItemReader();
itemReader = new FlatFileItemReader<FieldSet>();
itemReader.setEncoding("foo");
itemReader.setResource(getInputResource(TEST_STRING));
try {
@@ -254,7 +251,7 @@ public class FlatFileItemReaderBasicTests extends TestCase {
public void testColumnNamesInHeader() throws Exception {
final String INPUT = "name1|name2\nvalue1|value2\nvalue3|value4";
itemReader = new FlatFileItemReader();
itemReader = new FlatFileItemReader<FieldSet>();
itemReader.setResource(getInputResource(INPUT));
itemReader.setLineTokenizer(new DelimitedLineTokenizer('|'));
itemReader.setFieldSetMapper(fieldSetMapper);
@@ -262,11 +259,11 @@ public class FlatFileItemReaderBasicTests extends TestCase {
itemReader.afterPropertiesSet();
itemReader.open(executionContext);
FieldSet fs = (FieldSet) itemReader.read();
FieldSet fs = itemReader.read();
assertEquals("value1", fs.readString("name1"));
assertEquals("value2", fs.readString("name2"));
fs = (FieldSet) itemReader.read();
fs = itemReader.read();
assertEquals("value3", fs.readString("name1"));
assertEquals("value4", fs.readString("name2"));
}
@@ -277,7 +274,7 @@ public class FlatFileItemReaderBasicTests extends TestCase {
public void testLinesToSkip() throws Exception {
final String INPUT = "foo bar spam\none two\nthree four";
itemReader = new FlatFileItemReader();
itemReader = new FlatFileItemReader<FieldSet>();
itemReader.setResource(getInputResource(INPUT));
itemReader.setLineTokenizer(new DelimitedLineTokenizer(' '));
itemReader.setFieldSetMapper(fieldSetMapper);
@@ -285,11 +282,11 @@ public class FlatFileItemReaderBasicTests extends TestCase {
itemReader.afterPropertiesSet();
itemReader.open(executionContext);
FieldSet fs = (FieldSet) itemReader.read();
FieldSet fs = itemReader.read();
assertEquals("one", fs.readString(0));
assertEquals("two", fs.readString(1));
fs = (FieldSet) itemReader.read();
fs = itemReader.read();
assertEquals("three", fs.readString(0));
assertEquals("four", fs.readString(1));
}
@@ -298,7 +295,7 @@ public class FlatFileItemReaderBasicTests extends TestCase {
Resource resource = new NonExistentResource();
FlatFileItemReader testReader = new FlatFileItemReader();
FlatFileItemReader<FieldSet> testReader = new FlatFileItemReader<FieldSet>();
testReader.setResource(resource);
testReader.setLineTokenizer(tokenizer);
testReader.setFieldSetMapper(fieldSetMapper);
@@ -320,7 +317,7 @@ public class FlatFileItemReaderBasicTests extends TestCase {
Resource resource = new NonExistentResource();
FlatFileItemReader testReader = new FlatFileItemReader();
FlatFileItemReader<FieldSet> testReader = new FlatFileItemReader<FieldSet>();
testReader.setResource(resource);
testReader.setLineTokenizer(tokenizer);
testReader.setFieldSetMapper(fieldSetMapper);

View File

@@ -13,12 +13,12 @@ public class FlatFileItemReaderCommonTests extends CommonItemStreamItemReaderTes
private static final String FOOS = "1 \n 2 \n 3 \n 4 \n 5 \n";
protected ItemReader getItemReader() throws Exception {
FlatFileItemReader tested = new FlatFileItemReader();
protected ItemReader<Foo> getItemReader() throws Exception {
FlatFileItemReader<Foo> tested = new FlatFileItemReader<Foo>();
Resource resource = new ByteArrayResource(FOOS.getBytes());
tested.setResource(resource);
tested.setFieldSetMapper(new FieldSetMapper() {
public Object mapLine(FieldSet fs, int lineNum) {
tested.setFieldSetMapper(new FieldSetMapper<Foo>() {
public Foo mapLine(FieldSet fs, int lineNum) {
Foo foo = new Foo();
foo.setValue(fs.readInt(0));
return foo;
@@ -30,8 +30,8 @@ public class FlatFileItemReaderCommonTests extends CommonItemStreamItemReaderTes
return tested;
}
protected void pointToEmptyInput(ItemReader tested) throws Exception {
FlatFileItemReader reader = (FlatFileItemReader) tested;
protected void pointToEmptyInput(ItemReader<Foo> tested) throws Exception {
FlatFileItemReader<Foo> reader = (FlatFileItemReader<Foo>) tested;
reader.close(new ExecutionContext());
reader.setResource(new ByteArrayResource("".getBytes()));

View File

@@ -12,14 +12,14 @@ import org.springframework.batch.item.support.AggregateItemReader;
public class AggregateItemReaderTests extends TestCase {
private MockControl inputControl;
private ItemReader input;
private ItemReader<Object> input;
private AggregateItemReader provider;
public void setUp() {
//create mock for input
inputControl = MockControl.createControl(ItemReader.class);
input = (ItemReader) inputControl.getMock();
input = (ItemReader<Object>) inputControl.getMock();
//create provider
provider = new AggregateItemReader();

View File

@@ -20,7 +20,6 @@ import junit.framework.TestCase;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemStream;
/**
* Unit test for {@link DelegatingItemReader}
@@ -30,28 +29,28 @@ import org.springframework.batch.item.ItemStream;
public class DelegatingItemReaderTests extends TestCase {
// object under test
private DelegatingItemReader itemProvider = new DelegatingItemReader();
private DelegatingItemReader<Object> itemReader = new DelegatingItemReader<Object>();
private ItemReader source;
private ItemReader<Object> delegateReader;
private ExecutionContext executionContext;
// create input template and inject it to data provider
protected void setUp() throws Exception {
executionContext = new ExecutionContext();
source = new MockItemReader(this, executionContext);
itemProvider.setItemReader(source);
delegateReader = new MockItemReader(this, executionContext);
itemReader.setItemReader(delegateReader);
}
public void testAfterPropertiesSet() throws Exception {
// shouldn't throw an exception since the input source is set
itemProvider.afterPropertiesSet();
itemReader.afterPropertiesSet();
}
public void testNullItemReader() {
try {
itemProvider.setItemReader(null);
itemProvider.afterPropertiesSet();
itemReader.setItemReader(null);
itemReader.afterPropertiesSet();
fail();
}
catch (Exception ex) {
@@ -64,11 +63,11 @@ public class DelegatingItemReaderTests extends TestCase {
* @throws Exception
*/
public void testNext() throws Exception {
Object result = itemProvider.read();
Object result = itemReader.read();
assertSame("domain object is provided by the input template", this, result);
}
private static class MockItemReader extends AbstractItemReader implements ItemReader, ItemStream {
private static class MockItemReader extends AbstractItemStreamItemReader<Object> {
private Object value;

View File

@@ -26,21 +26,21 @@ import junit.framework.TestCase;
public class ListItemReaderTests extends TestCase {
ListItemReader provider = new ListItemReader(Arrays.asList(new String[] { "a", "b", "c" }));
ListItemReader<String> reader = new ListItemReader<String>(Arrays.asList(new String[] { "a", "b", "c" }));
public void testNext() throws Exception {
assertEquals("a", provider.read());
assertEquals("b", provider.read());
assertEquals("c", provider.read());
assertEquals(null, provider.read());
assertEquals("a", reader.read());
assertEquals("b", reader.read());
assertEquals("c", reader.read());
assertEquals(null, reader.read());
}
public void testChangeList() throws Exception {
List<String> list = new ArrayList<String>(Arrays.asList(new String[] { "a", "b", "c" }));
provider = new ListItemReader(list);
assertEquals("a", provider.read());
reader = new ListItemReader<String>(list);
assertEquals("a", reader.read());
list.clear();
assertEquals(0, list.size());
assertEquals("b", provider.read());
assertEquals("b", reader.read());
}
}

View File

@@ -35,13 +35,14 @@ public class TransactionAwareListItemReaderTests extends TestCase {
// TransactionAwareListItemProvider provider = new
// TransactionAwareListItemProvider(Arrays.asList(new String[] { "a",
// "b", "c" }));
ListItemReader reader;
ListItemReader<String> reader;
@SuppressWarnings("unchecked")
protected void setUp() throws Exception {
super.setUp();
TransactionAwareProxyFactory factory = new TransactionAwareProxyFactory(Arrays.asList(new String[] { "a", "b",
"c" }));
reader = new ListItemReader((List<?>) factory.createInstance());
reader = new ListItemReader<String>((List<String>) factory.createInstance());
}
public void testNext() throws Exception {

View File

@@ -27,8 +27,8 @@ import org.springframework.batch.item.support.AbstractItemReader;
*/
public class ValidatingItemReaderTests extends TestCase {
ItemReader inputSource;
ValidatingItemReader itemProvider;
ItemReader<Object> inputSource;
ValidatingItemReader<Object> itemProvider;
Validator validator;
MockControl validatorControl = MockControl.createControl(Validator.class);
@@ -40,7 +40,7 @@ public class ValidatingItemReaderTests extends TestCase {
inputSource = new MockItemReader(this);
validator = (Validator)validatorControl.getMock();
itemProvider = new ValidatingItemReader();
itemProvider = new ValidatingItemReader<Object>();
itemProvider.setItemReader(inputSource);
itemProvider.setValidator(validator);
}
@@ -98,7 +98,7 @@ public class ValidatingItemReaderTests extends TestCase {
validatorControl.verify();
}
private static class MockItemReader extends AbstractItemReader {
private static class MockItemReader extends AbstractItemReader<Object> {
Object value;

View File

@@ -15,12 +15,12 @@ public class StaxEventItemReaderCommonTests extends CommonItemStreamItemReaderTe
private final String FOOS = "<foos> <foo value=\"1\"/> <foo value=\"2\"/> <foo value=\"3\"/> <foo value=\"4\"/> <foo value=\"5\"/> </foos>";
protected ItemReader getItemReader() throws Exception {
StaxEventItemReader reader = new StaxEventItemReader();
protected ItemReader<Foo> getItemReader() throws Exception {
StaxEventItemReader<Foo> reader = new StaxEventItemReader<Foo>();
reader.setResource(new ByteArrayResource(FOOS.getBytes()));
reader.setFragmentRootElementName("foo");
reader.setFragmentDeserializer(new EventReaderDeserializer() {
public Object deserializeFragment(XMLEventReader eventReader) {
reader.setFragmentDeserializer(new EventReaderDeserializer<Foo>() {
public Foo deserializeFragment(XMLEventReader eventReader) {
Attribute attr;
try {
assertTrue(eventReader.nextEvent().isStartDocument());
@@ -41,8 +41,8 @@ public class StaxEventItemReaderCommonTests extends CommonItemStreamItemReaderTe
return reader;
}
protected void pointToEmptyInput(ItemReader tested) throws Exception {
StaxEventItemReader reader = (StaxEventItemReader) tested;
protected void pointToEmptyInput(ItemReader<Foo> tested) throws Exception {
StaxEventItemReader<Foo> reader = (StaxEventItemReader<Foo>) tested;
reader.close(new ExecutionContext());
reader.setResource(new ByteArrayResource("<foos />".getBytes()));

View File

@@ -29,12 +29,12 @@ import org.springframework.util.ClassUtils;
public class StaxEventItemReaderTests extends TestCase {
// object under test
private StaxEventItemReader source;
private StaxEventItemReader<List<XMLEvent>> source;
// test xml input
private String xml = "<root> <fragment> <misc1/> </fragment> <misc2/> <fragment> testString </fragment> </root>";
private EventReaderDeserializer deserializer = new MockFragmentDeserializer();
private EventReaderDeserializer<List<XMLEvent>> deserializer = new MockFragmentDeserializer();
private static final String FRAGMENT_ROOT_ELEMENT = "fragment";
@@ -111,18 +111,17 @@ public class StaxEventItemReaderTests extends TestCase {
/**
* Save restart data and restore from it.
*/
@SuppressWarnings("unchecked")
public void testRestart() throws Exception {
source.open(executionContext);
source.read();
source.update(executionContext);
System.out.println(executionContext);
assertEquals(1, executionContext.getLong(ClassUtils.getShortName(StaxEventItemReader.class) + ".read.count"));
List<XMLEvent> expectedAfterRestart = (List<XMLEvent>) source.read();
List<XMLEvent> expectedAfterRestart = source.read();
source = createNewInputSouce();
source.open(executionContext);
List<XMLEvent> afterRestart = (List<XMLEvent>) source.read();
List<XMLEvent> afterRestart = source.read();
assertEquals(expectedAfterRestart.size(), afterRestart.size());
}
@@ -150,13 +149,12 @@ public class StaxEventItemReaderTests extends TestCase {
/**
* Rollback to last commited record.
*/
@SuppressWarnings("unchecked")
public void testRollback() throws Exception{
source.open(executionContext);
// rollback between deserializing records
List<XMLEvent> first = (List<XMLEvent>) source.read();
List<XMLEvent> first = source.read();
source.mark();
List<XMLEvent> second = (List<XMLEvent>) source.read();
List<XMLEvent> second = source.read();
assertFalse(first.equals(second));
source.reset();
@@ -265,10 +263,10 @@ public class StaxEventItemReaderTests extends TestCase {
source.read();
}
private StaxEventItemReader createNewInputSouce() {
private StaxEventItemReader<List<XMLEvent>> createNewInputSouce() {
Resource resource = new ByteArrayResource(xml.getBytes());
StaxEventItemReader newSource = new StaxEventItemReader();
StaxEventItemReader<List<XMLEvent>> newSource = new StaxEventItemReader<List<XMLEvent>>();
newSource.setResource(resource);
newSource.setFragmentRootElementName(FRAGMENT_ROOT_ELEMENT);
@@ -282,7 +280,7 @@ public class StaxEventItemReaderTests extends TestCase {
* A simple XMLEvent deserializer mock - check for the start and end document events for the fragment root & end
* tags + skips the fragment contents.
*/
private static class MockFragmentDeserializer implements EventReaderDeserializer {
private static class MockFragmentDeserializer implements EventReaderDeserializer<List<XMLEvent>> {
/**
* A simple mapFragment implementation checking the StaxEventReaderItemReader basic read functionality.
@@ -290,7 +288,7 @@ public class StaxEventItemReaderTests extends TestCase {
* @param eventReader
* @return list of the events from fragment body
*/
public Object deserializeFragment(XMLEventReader eventReader) {
public List<XMLEvent> deserializeFragment(XMLEventReader eventReader) {
List<XMLEvent> fragmentContent;
try {
// first event should be StartDocument
@@ -340,7 +338,7 @@ public class StaxEventItemReaderTests extends TestCase {
}
private static class MockStaxEventItemReader extends StaxEventItemReader {
private static class MockStaxEventItemReader extends StaxEventItemReader<List<XMLEvent>> {
private boolean openCalled = false;

View File

@@ -21,7 +21,7 @@ import org.springframework.oxm.Unmarshaller;
public class UnmarshallingFragmentDeserializerTests extends TestCase {
// object under test
private UnmarshallingEventReaderDeserializer deserializer;
private UnmarshallingEventReaderDeserializer<?> deserializer;
private XMLEventReader eventReader;
private String xml = "<root> </root>";
@@ -36,7 +36,7 @@ public class UnmarshallingFragmentDeserializerTests extends TestCase {
eventReader = XMLInputFactory.newInstance().createXMLEventReader(input.getInputStream());
unmarshaller = (Unmarshaller) unmarshallerControl.getMock();
unmarshallerControl.setDefaultMatcher(MockControl.ALWAYS_MATCHER);
deserializer = new UnmarshallingEventReaderDeserializer(unmarshaller);
deserializer = new UnmarshallingEventReaderDeserializer<Object>(unmarshaller);
}
/**
@@ -80,7 +80,7 @@ public class UnmarshallingFragmentDeserializerTests extends TestCase {
*/
public void testExceptionOnNullUnmarshaller() {
try {
deserializer = new UnmarshallingEventReaderDeserializer(null);
deserializer = new UnmarshallingEventReaderDeserializer<Object>(null);
fail("Exception expected");
}
catch (IllegalArgumentException e) {