package charts.builder.spreadsheet; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import java.util.List; import java.util.NoSuchElementException; import org.junit.Assert; import org.junit.Test; import com.google.common.collect.Lists; import charts.builder.Value; public class XlsxDataSourceTest extends SpreadsheetDataSourceTest { @Override SpreadsheetDataSource datasource() throws IOException { return datasource(new FileInputStream("test/extref.xlsx")); } @Override SpreadsheetDataSource datasource(InputStream in) throws IOException { return new XlsxDataSource(in); } @Test public void rangeSelectTest() throws IOException { SpreadsheetDataSource ds = new XlsxDataSource(new FileInputStream("test/test.xlsx")); testRange(ds.rangeSelect(0, 2, 2, 2), Lists.newArrayList("c1", "c2", "c3")); testRange(ds.rangeSelect(2, 0, 0, 0), Lists.newArrayList("a3", "a2", "a1")); testRange(ds.rangeSelect(1, 0, 1, 2), Lists.newArrayList("a2", "b2", "c2")); testRange(ds.rangeSelect(2, 2, 2, 0), Lists.newArrayList("c3", "b3", "a3")); } private void testRange(Iterable<Value> iterable, List<String> expected) { Assert.assertNotNull("iterable is null", iterable); Iterator<Value> iter = iterable.iterator(); Assert.assertNotNull("iterator is null", iter); for(int i = 0;i<expected.size();i++) { Assert.assertTrue("expected hasNext == true", iter.hasNext()); Assert.assertEquals(expected.get(i), iter.next().asString()); } Assert.assertFalse(iter.hasNext()); try { iter.next(); Assert.fail("NoSuchElementException expected"); } catch(NoSuchElementException e) {} } }