From 61f6cd5c0a57ad922112808fc4df9a32fbfb9ae2 Mon Sep 17 00:00:00 2001 From: Glenn Renfro Date: Tue, 20 Jun 2017 10:43:27 -0400 Subject: [PATCH] Add tests for FlatFileItemReaderBuilder's name attribute. --- .../FlatFileItemReaderBuilderTests.java | 53 ++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilderTests.java index 8c1e97af3..36c54b65d 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilderTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilderTests.java @@ -37,7 +37,9 @@ import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.Resource; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.Assert.fail; /** * @author Michael Minella @@ -271,7 +273,7 @@ public class FlatFileItemReaderBuilderTests { .name("fooReader") .resource(getResource("1,2,3")) .delimited() - .includedFields(new Integer[] {new Integer(0), new Integer(2)}) + .includedFields(new Integer[] {0, 2}) .addIncludedField(1) .names(new String[] {"first", "second", "third"}) .targetType(Foo.class) @@ -352,6 +354,55 @@ public class FlatFileItemReaderBuilderTests { assertNull(reader.read()); } + + @Test + public void testName() throws Exception { + try { + new FlatFileItemReaderBuilder() + .resource(getResource("1 2 3")) + .fixedLength() + .columns(new Range[]{new Range(1, 3), new Range(4, 6), new Range(7)}) + .names(new String[]{"first", "second", "third"}) + .targetType(Foo.class) + .build(); + fail("null name should throw exception"); + } + catch (IllegalStateException iae) { + assertEquals("A name is required when saveState is set to true.", iae.getMessage()); + } + try { + new FlatFileItemReaderBuilder() + .resource(getResource("1 2 3")) + .fixedLength() + .columns(new Range[]{new Range(1, 3), new Range(4, 6), new Range(7)}) + .names(new String[]{"first", "second", "third"}) + .targetType(Foo.class) + .name(null) + .build(); + } + catch (IllegalStateException iae) { + assertEquals("A name is required when saveState is set to true.", iae.getMessage()); + } + assertNotNull("builder should return new instance of FlatFileItemReader", new FlatFileItemReaderBuilder() + .resource(getResource("1 2 3")) + .fixedLength() + .columns(new Range[]{new Range(1, 3), new Range(4, 6), new Range(7)}) + .names(new String[]{"first", "second", "third"}) + .targetType(Foo.class) + .saveState(false) + .build()); + + assertNotNull("builder should return new instance of FlatFileItemReader", new FlatFileItemReaderBuilder() + .resource(getResource("1 2 3")) + .fixedLength() + .columns(new Range[]{new Range(1, 3), new Range(4, 6), new Range(7)}) + .names(new String[]{"first", "second", "third"}) + .targetType(Foo.class) + .name("foobar") + .build()); + + } + private Resource getResource(String contents) { return new ByteArrayResource(contents.getBytes()); }