public boolean hasNext() { return recit.hasNext(); }
public Record next() { Record r = recit.next(); if (!recit.hasNext()) findNextIterator(); return r; }
@Test public void testEmptyBlank() { RecordIterator it = read("\n\n"); assertFalse("empty data source contains records", it.hasNext()); }
@Test public void testEmpty() { RecordIterator it = read(""); assertFalse("empty data source contains records", it.hasNext()); }
@Test public void testEmpty() { InMemoryDataSource src = new InMemoryDataSource(); RecordIterator it = src.getRecords(); assertFalse("empty data source contains records", it.hasNext()); }
@Test public void testSingleTriple() { setupTripleConfig1("?uri"); source.setRows(new String[][] {{"http://a/1", "http://a/name", "1"}}); RecordIterator it = source.getRecords(); assertTrue("data source contains no records", it.hasNext()); Record r = it.next(); assertEquals("wrong ID", "http://a/1", r.getValue("ID")); assertEquals("wrong NAME", "1", r.getValue("NAME")); assertEquals("wrong AGE", null, r.getValue("AGE")); assertFalse("data source contains more than one record", it.hasNext()); assertEquals("wrong number of pages", 2, source.getPages()); }
@Test public void testSingleRow() { setupTabularConfig1(); source.setRows(new String[][] {{"http://a/1", "Peter", "15"}}); RecordIterator it = source.getRecords(); assertTrue("data source contains no records", it.hasNext()); Record r = it.next(); assertEquals("wrong ID", "http://a/1", r.getValue("ID")); assertEquals("wrong NAME", "Peter", r.getValue("NAME")); assertEquals("wrong AGE", "15", r.getValue("AGE")); assertFalse("data source contains more than one record", it.hasNext()); assertEquals("wrong number of pages", 2, source.getPages()); }
@Test public void testEmpty() throws IOException { RecordIterator it = read(""); assertTrue(!it.hasNext()); }
@Test public void testEmpty() { source.setVariables(new String[] {}); source.setRows(new String[][] {}); RecordIterator it = source.getRecords(); assertFalse("empty data source contains records", it.hasNext()); assertEquals("wrong number of pages", 1, source.getPages()); }
@Test public void testEmpty() { RecordIterator it = source.getRecords(); assertTrue(!it.hasNext()); }
@Test public void testSingleRecord2() { source.addColumn(new Column("?uri", "ID", null, null)); source.addColumn(new Column("http://b", "PROP", null, null)); RecordIterator it = read("<http://a> <http://b> \"foo\" .\n" + "<http://a> <http://c> \"foo\" .\n"); Record r = it.next(); assertEquals("http://a", r.getValue("ID")); assertEquals("foo", r.getValue("PROP")); assertFalse(it.hasNext()); }
@Test public void testSingleRecord() { source.addColumn(new Column("?uri", "ID", null, null)); source.addColumn(new Column("http://b", "PROP", null, null)); RecordIterator it = read("<http://a> <http://b> \"foo\" .\n"); Record r = it.next(); assertEquals("http://a", r.getValue("ID")); assertEquals("foo", r.getValue("PROP")); assertFalse(it.hasNext()); }
@Test public void testSingleRecord2Spaces() { source.addColumn(new Column("?uri", "ID", null, null)); source.addColumn(new Column("http://b", "PROP", null, null)); RecordIterator it = read("\n<http://a> <http://b> \"foo\" .\n\n" + "<http://a> <http://c> \"foo\" .\n\n"); Record r = it.next(); assertEquals("http://a", r.getValue("ID")); assertEquals("foo", r.getValue("PROP")); assertFalse(it.hasNext()); }
@Test public void testEmptyRecord() { source.addColumn(new Column("?uri", "ID", null, null)); source.addColumn(new Column("http://b", "PROP", null, null)); RecordIterator it = read("<http://a> <http://c> \"foo\" .\n"); assertFalse("failed to filter out empty records", it.hasNext()); }
@Test public void testSingleRecordDoubleProp() { source.addColumn(new Column("?uri", "ID", null, null)); source.addColumn(new Column("http://b", "PROP", null, null)); // yes, we map b two times. might be necessary to split a compound // value into two different properties. source.addColumn(new Column("http://b", "PROP2", null, null)); RecordIterator it = read("<http://a> <http://b> \"foo\" .\n"); Record r = it.next(); assertEquals("http://a", r.getValue("ID")); assertEquals("foo", r.getValue("PROP")); assertEquals("foo", r.getValue("PROP2")); assertFalse(it.hasNext()); }
@Test public void testCleanedEmptyIsDiscarded() { source.addColumn(new Column("?uri", "ID", null, null)); source.addColumn(new Column("http://b", "PROP", null, new EmptyCleaner())); RecordIterator it = read("<http://a> <http://b> \"foo\" .\n"); assertFalse(it.hasNext()); }
@Test public void testCleanedNullIsDiscarded() { source.addColumn(new Column("?uri", "ID", null, null)); source.addColumn(new Column("http://b", "PROP", null, new NullCleaner())); RecordIterator it = read("<http://a> <http://b> \"foo\" .\n"); assertFalse(it.hasNext()); }
@Test public void testOneRowSkipColumn() { perform("insert into testdata values (1, 'foo')"); source.addColumn(new Column("ID", null, null, null)); RecordIterator it = source.getRecords(); assertTrue(it.hasNext()); Record r = it.next(); assertEquals("1", r.getValue("ID")); assertEquals(null, r.getValue("NAME")); assertFalse(it.hasNext()); }
@Test public void testOneRow() { perform("insert into testdata values (1, 'foo')"); source.addColumn(new Column("ID", null, null, null)); source.addColumn(new Column("NAME", null, null, null)); RecordIterator it = source.getRecords(); assertTrue(it.hasNext()); Record r = it.next(); assertEquals("1", r.getValue("ID")); assertEquals("foo", r.getValue("NAME")); assertFalse(it.hasNext()); }
@Test public void testNull() { perform("insert into testdata values (1, NULL)"); LowerCaseNormalizeCleaner cleaner = new LowerCaseNormalizeCleaner(); source.addColumn(new Column("ID", null, null, null)); source.addColumn(new Column("NAME", "GIVENNAME", null, cleaner)); RecordIterator it = source.getRecords(); assertTrue(it.hasNext()); Record r = it.next(); assertEquals("1", r.getValue("ID")); assertEquals(null, r.getValue("GIVENNAME")); assertFalse(it.hasNext()); }