private void assertBounds( Cursor[] cursors, int expectedLength ) { cursor = new MergeCursor( cursors ); assertThat(cursor.getCount()).isEqualTo(expectedLength); assertThat(cursor.moveToFirst()).isTrue(); for ( int i = 0; i < expectedLength; i++ ) { assertThat(cursor.moveToPosition(i)).isTrue(); assertThat(cursor.isAfterLast()).isFalse(); } assertThat(cursor.moveToNext()).isFalse(); assertThat(cursor.isAfterLast()).isTrue(); assertThat(cursor.moveToPosition(expectedLength)).isFalse(); }
@Test public void testColumnNamesMultipleCursors() throws Exception { Cursor[] cursors = new Cursor[2]; cursors[0] = dbCursor1; cursors[1] = dbCursor2; cursor = new MergeCursor( cursors ); for ( int i = 0; i < TABLE_1_INSERTS.length; i++ ) { cursor.moveToPosition(i); String[] columnNames = cursor.getColumnNames(); assertColumnNamesCursor1(columnNames); } for ( int i = 0; i < TABLE_2_INSERTS.length; i++ ) { cursor.moveToPosition(i + TABLE_1_INSERTS.length); String[] columnNames = cursor.getColumnNames(); assertColumnNamesCursor2(columnNames); } }
@Test public void testMoveToPositionEmptyCursor() throws Exception { Cursor[] cursors = new Cursor[2]; cursors[0] = null; cursors[1] = null; cursor = new MergeCursor( cursors ); assertThat(cursor.getCount()).isEqualTo(0); assertThat(cursor.getColumnNames()).isNotNull(); cursor.moveToPosition(0); assertThat(cursor.getColumnNames()).isNotNull(); }
@Test public void testColumnNamesSingleCursor() throws Exception { Cursor[] cursors = new Cursor[1]; cursors[0] = dbCursor1; cursor = new MergeCursor( cursors ); for ( int i = 0; i < TABLE_1_INSERTS.length; i++ ) { cursor.moveToPosition(i); String[] columnNames = cursor.getColumnNames(); assertColumnNamesCursor1(columnNames); } }