Fixed FlatFileItemReaderBuilder LineTokenizer validation
Fixed validation for the FlatFileItemReaderBuilder where no LineTokenizer had been provided. Resolves: #3688
This commit is contained in:
committed by
Michael Minella
parent
c165d5f173
commit
46ff95f12d
@@ -449,7 +449,7 @@ public class FlatFileItemReaderBuilder<T> {
|
||||
reader.setLineMapper(this.lineMapper);
|
||||
}
|
||||
else {
|
||||
Assert.state(validatorValue == 1 || validatorValue == 2 || validatorValue == 4,
|
||||
Assert.state(validatorValue == 0 || validatorValue == 1 || validatorValue == 2 || validatorValue == 4,
|
||||
"Only one LineTokenizer option may be configured");
|
||||
|
||||
DefaultLineMapper<T> lineMapper = new DefaultLineMapper<>();
|
||||
|
||||
@@ -536,6 +536,18 @@ public class FlatFileItemReaderBuilderTests {
|
||||
assertEquals("No FieldSetMapper implementation was provided.", exceptionMessage);
|
||||
}
|
||||
}
|
||||
@Test
|
||||
public void testErrorMessageWhenNoLineTokenizerWasProvided() {
|
||||
try {
|
||||
new FlatFileItemReaderBuilder<Foo>()
|
||||
.name("fooReader")
|
||||
.resource(getResource("1;2;3"))
|
||||
.build();
|
||||
} catch (IllegalStateException exception) {
|
||||
String exceptionMessage = exception.getMessage();
|
||||
assertEquals("No LineTokenizer implementation was provided.", exceptionMessage);
|
||||
}
|
||||
}
|
||||
|
||||
private Resource getResource(String contents) {
|
||||
return new ByteArrayResource(contents.getBytes());
|
||||
|
||||
Reference in New Issue
Block a user