Example usage for org.springframework.batch.item.support IteratorItemReader IteratorItemReader

List of usage examples for org.springframework.batch.item.support IteratorItemReader IteratorItemReader

Introduction

In this page you can find the example usage for org.springframework.batch.item.support IteratorItemReader IteratorItemReader.

Prototype

public IteratorItemReader(Iterator<T> iterator) 

Source Link

Document

Construct a new reader from this iterator directly.

Usage

From source file:de.langmi.spring.batch.examples.readers.list.IteratorItemReaderTest.java

/**
 * Test should read succesfully./*w w w .j  a  v  a2  s.  c om*/
 *
 * @throws Exception 
 */
@Test
public void testSuccessfulReading() throws Exception {
    // setup reader with test data
    List<String> testData = new TestDataFactoryBean().getObject();
    reader = new IteratorItemReader<String>(testData);
    // read
    int count = 0;
    String line;
    while ((line = reader.read()) != null) {
        assertEquals(String.valueOf(count), line);
        count++;
    }
    assertEquals(testData.size(), count);
}

From source file:de.langmi.spring.batch.examples.complex.aggregating.reader.AggregateSimpleItemsReaderTest.java

/**
 * Test with ID change, should result in two aggregated items.
 *//*from   ww w .  j a  v a 2s . c o m*/
@Test
public void testReadWithIdChange() throws Exception {
    // create first set of simple items with shared id
    int count = 5;
    int sharedId = 1000;
    int value = 1;
    List<SimpleItem> testData = createTestData(count, sharedId, value);
    // create second set of simple items with shared id
    int countSecond = 6;
    int sharedIdSecond = 2000;
    int valueSecond = 3;
    List<SimpleItem> testData2 = createTestData(countSecond, sharedIdSecond, valueSecond);
    // combine them
    testData.addAll(testData2);
    // setup wrapped delegate
    ItemReader<SimpleItem> delegate = new IteratorItemReader<SimpleItem>(testData);
    reader.setDelegate(delegate);

    // 1. aggregated item
    AggregatedItem item = reader.read();
    assertNotNull(item);
    assertEquals(sharedId, item.getId());
    assertEquals(count * value, item.getSum());
    // 2. aggregated item
    AggregatedItem itemSecond = reader.read();
    assertNotNull(itemSecond);
    assertEquals(sharedIdSecond, itemSecond.getId());
    assertEquals(countSecond * valueSecond, itemSecond.getSum());
    // there should be no next item        
    assertNull(reader.read());
}

From source file:de.langmi.spring.batch.examples.complex.aggregating.reader.AggregateSimpleItemsReaderTest.java

/**
 * Test without ID change, should result in one aggregated item only.
 */// www  .  ja v  a2 s  .co  m
@Test
public void testReadWithoutIdChange() throws Exception {
    int count = 5;
    int sharedId = 1000;
    int value = 1;
    ItemReader<SimpleItem> delegate = new IteratorItemReader<SimpleItem>(
            createTestData(count, sharedId, value));
    reader.setDelegate(delegate);

    AggregatedItem item = reader.read();
    assertNotNull(item);
    assertEquals(sharedId, item.getId());
    assertEquals(count * value, item.getSum());
    // there should be no next item
    assertNull(reader.read());
}