// Copyright (C) 2011-2012 CRS4. // // This file is part of Seal. // // Seal is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by the Free // Software Foundation, either version 3 of the License, or (at your option) // any later version. // // Seal is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License // for more details. // // You should have received a copy of the GNU General Public License along // with Seal. If not, see <http://www.gnu.org/licenses/>. package tests.it.crs4.it.common; import org.junit.*; import static org.junit.Assert.*; import it.crs4.seal.common.LineReader; import org.apache.hadoop.io.Text; import java.io.ByteArrayInputStream; import java.io.IOException; public class TestLineReader { public static final String input10 = "0123456789"; public static final String input22 = "0123456789\n0987654321\n"; private LineReader reader; private Text dest = new Text(); @Test public void testReadBufferedLine() throws IOException { reader = new LineReader(new ByteArrayInputStream(input22.getBytes()), 22); reader.readLine(dest); assertEquals("0123456789", dest.toString()); } @Test public void testSkipOnBufferedLine() throws IOException { reader = new LineReader(new ByteArrayInputStream(input22.getBytes()), 22); long skipped = reader.skip(1); assertEquals(1, skipped); reader.readLine(dest); assertEquals("123456789", dest.toString()); } @Test public void testReadBeyondBuffer() throws IOException { reader = new LineReader(new ByteArrayInputStream(input22.getBytes()), 5); reader.readLine(dest); assertEquals("0123456789", dest.toString()); } @Test public void testSkipBeyondBuffer() throws IOException { reader = new LineReader(new ByteArrayInputStream(input22.getBytes()), 5); long skipped = reader.skip(11); assertEquals(11, skipped); reader.readLine(dest); assertEquals("0987654321", dest.toString()); } @Test public void testSkipBeyondInput() throws IOException { reader = new LineReader(new ByteArrayInputStream(input10.getBytes()), 5); long skipped = reader.skip(11); assertEquals(10, skipped); skipped = reader.skip(11); assertEquals(0, skipped); } }