DistinctQueryResult implements QueryResult { @Override public final boolean next() { if (resultData.hasNext()) { currentRow = resultData.next(); return true; } currentRow = null; return false; } DistinctQueryResult(final Collection<QueryResult> queryResults, final List<String> distinctColumnLabels); List<DistinctQueryResult> divide(); @Override final boolean next(); @Override Object getValue(final int columnIndex, final Class<?> type); @Override Object getValue(final String columnLabel, final Class<?> type); @Override Object getCalendarValue(final int columnIndex, final Class<?> type, final Calendar calendar); @Override Object getCalendarValue(final String columnLabel, final Class<?> type, final Calendar calendar); @Override InputStream getInputStream(final int columnIndex, final String type); @Override InputStream getInputStream(final String columnLabel, final String type); @Override boolean wasNull(); @Override boolean isCaseSensitive(final int columnIndex); @Override int getColumnCount(); @Override String getColumnLabel(final int columnIndex);  }
@Test public void assertNext() { assertTrue(distinctQueryResult.next()); assertTrue(distinctQueryResult.next()); assertFalse(distinctQueryResult.next()); }
@Test public void assertGetCurrentRow() { distinctQueryResult.next(); assertThat(distinctQueryResult.getCurrentRow().getColumnValue(1), is((Object) 10)); }