package com.twelvemonkeys.io; import com.twelvemonkeys.lang.StringUtil; import com.twelvemonkeys.util.CollectionUtil; import org.junit.Test; import java.io.Reader; import java.io.IOException; import java.io.StringReader; import java.util.List; import java.util.ArrayList; import static org.junit.Assert.*; /** * CompoundReaderTestCase * <p/> * * @author <a href="mailto:harald.kuhr@gmail.com">Harald Kuhr</a> * @author last modified by $Author: haku $ * @version $Id: //depot/branches/personal/haraldk/twelvemonkeys/release-2/twelvemonkeys-core/src/test/java/com/twelvemonkeys/io/CompoundReaderTestCase.java#2 $ */ public class CompoundReaderTestCase extends ReaderAbstractTestCase { protected Reader makeReader(String pInput) { // Split String[] input = StringUtil.toStringArray(pInput, " "); List<Reader> readers = new ArrayList<Reader>(input.length); // Reappend spaces... // TODO: Add other readers for (int i = 0; i < input.length; i++) { if (i != 0) { input[i] = " " + input[i]; } readers.add(new StringReader(input[i])); } return new CompoundReader(readers.iterator()); } @Test public void testNullConstructor() { try { new CompoundReader(null); fail("Should not allow null argument"); } catch (RuntimeException e) { assertNotNull(e.getMessage()); } } @Test public void testEmptyIteratorConstructor() throws IOException { Reader reader = new CompoundReader(CollectionUtil.iterator(new Reader[0])); assertEquals(-1, reader.read()); } @Test public void testIteratorWithNullConstructor() throws IOException { try { new CompoundReader(CollectionUtil.iterator(new Reader[] {null})); fail("Should not allow null in iterator argument"); } catch (RuntimeException e) { assertNotNull(e.getMessage()); } } }