RESOLVED - issue BATCH-977: DefaultLineMapper should check for its required dependencies

This commit is contained in:
dsyer
2008-12-30 07:56:36 +00:00
parent cbb462ca59
commit c9d7b45f14
2 changed files with 22 additions and 1 deletions

View File

@@ -2,6 +2,8 @@ package org.springframework.batch.item.file.mapping;
import org.springframework.batch.item.file.transform.FieldSet;
import org.springframework.batch.item.file.transform.LineTokenizer;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.Assert;
/**
* Two-phase {@link LineMapper} implementation consisting of tokenization of the
@@ -11,7 +13,7 @@ import org.springframework.batch.item.file.transform.LineTokenizer;
*
* @param <T> type of the item
*/
public class DefaultLineMapper<T> implements LineMapper<T> {
public class DefaultLineMapper<T> implements LineMapper<T>, InitializingBean {
private LineTokenizer tokenizer;
@@ -29,4 +31,9 @@ public class DefaultLineMapper<T> implements LineMapper<T> {
this.fieldSetMapper = fieldSetMapper;
}
public void afterPropertiesSet() {
Assert.notNull(tokenizer, "The LineTokenizer must be set");
Assert.notNull(fieldSetMapper, "The FieldSetMapper must be set");
}
}

View File

@@ -5,6 +5,7 @@ import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.batch.item.file.transform.DefaultFieldSet;
import org.springframework.batch.item.file.transform.DelimitedLineTokenizer;
import org.springframework.batch.item.file.transform.FieldSet;
import org.springframework.batch.item.file.transform.LineTokenizer;
@@ -14,6 +15,19 @@ import org.springframework.batch.item.file.transform.LineTokenizer;
public class DefaultLineMapperTests {
private DefaultLineMapper<String> tested = new DefaultLineMapper<String>();
@Test(expected=IllegalArgumentException.class)
public void testMandatoryTokenizer() throws Exception {
tested.afterPropertiesSet();
tested.mapLine("foo", 1);
}
@Test(expected=IllegalArgumentException.class)
public void testMandatoryMapper() throws Exception {
tested.setLineTokenizer(new DelimitedLineTokenizer());
tested.afterPropertiesSet();
tested.mapLine("foo", 1);
}
@Test
public void testMapping() throws Exception {