package com.novoda.downloadmanager.lib; import android.content.ContentResolver; import android.database.CharArrayBuffer; import android.database.ContentObserver; import android.database.Cursor; import android.database.DataSetObserver; import android.net.Uri; import android.os.Bundle; import java.util.List; class MockCursorWithBatchIds implements Cursor { private final List<Long> ids; private int position = -1; public MockCursorWithBatchIds(List<Long> ids) { this.ids = ids; } @Override public int getCount() { return ids.size(); } @Override public int getPosition() { return position; } @Override public boolean move(int i) { return position + i >= 0 && position + i < ids.size(); } @Override public boolean moveToPosition(int i) { return i >= 0 && i < ids.size(); } @Override public boolean moveToFirst() { position = 0; return true; } @Override public boolean moveToLast() { position = ids.size() - 1; return false; } @Override public boolean moveToNext() { if (position < ids.size() - 1) { position++; return true; } return false; } @Override public boolean moveToPrevious() { if (position > 1) { position--; return true; } return false; } @Override public boolean isFirst() { return position == 0; } @Override public boolean isLast() { return position == ids.size() - 1; } @Override public boolean isBeforeFirst() { return false; } @Override public boolean isAfterLast() { return false; } @Override public int getColumnIndex(String s) { return 0; } @Override public int getColumnIndexOrThrow(String s) throws IllegalArgumentException { return 0; } @Override public String getColumnName(int i) { return null; } @Override public String[] getColumnNames() { return new String[0]; } @Override public int getColumnCount() { return 1; } @Override public byte[] getBlob(int i) { return new byte[0]; } @Override public String getString(int i) { return null; } @Override public void copyStringToBuffer(int i, CharArrayBuffer charArrayBuffer) { } @Override public short getShort(int i) { return 0; } @Override public int getInt(int i) { return 0; } @Override public long getLong(int i) { return ids.get(position); } @Override public float getFloat(int i) { return 0; } @Override public double getDouble(int i) { return 0; } @Override public int getType(int i) { return 0; } @Override public boolean isNull(int i) { return ids == null; } @Override public void deactivate() { } @Override public boolean requery() { return false; } @Override public void close() { } @Override public boolean isClosed() { return false; } @Override public void registerContentObserver(ContentObserver contentObserver) { } @Override public void unregisterContentObserver(ContentObserver contentObserver) { } @Override public void registerDataSetObserver(DataSetObserver dataSetObserver) { } @Override public void unregisterDataSetObserver(DataSetObserver dataSetObserver) { } @Override public void setNotificationUri(ContentResolver contentResolver, Uri uri) { } @Override public Uri getNotificationUri() { return null; } @Override public boolean getWantsAllOnMoveCalls() { return false; } @Override public Bundle getExtras() { return null; } @Override public Bundle respond(Bundle bundle) { return null; } }