1package com.xtremelabs.robolectric.tester.android.database;
2
3import android.net.Uri;
4
5import java.util.ArrayList;
6import java.util.List;
7
8public class SimpleTestCursor extends TestCursor {
9    public Uri uri;
10    public String[] projection;
11    public String selection;
12    public String[] selectionArgs;
13    public String sortOrder;
14    Object[][] results = new Object[0][0];
15    List<String> columnNames= new ArrayList<String>();
16    int resultsIndex = -1;
17    boolean closeWasCalled;
18
19    @Override
20    public void setQuery(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
21        this.uri = uri;
22        this.projection = projection;
23        this.selection = selection;
24        this.selectionArgs = selectionArgs;
25        this.sortOrder = sortOrder;
26    }
27
28    @Override
29    public int getColumnIndex(String columnName) {
30        return columnNames.indexOf(columnName);
31    }
32
33    @Override
34    public String getString(int columnIndex) {
35        return (String) results[resultsIndex][columnIndex];
36    }
37
38    @Override
39    public long getLong(int columnIndex) {
40        return (Long) results[resultsIndex][columnIndex];
41    }
42
43    @Override
44    public boolean moveToNext() {
45        ++resultsIndex;
46        return resultsIndex < results.length;
47    }
48
49    @Override
50    public void close() {
51        closeWasCalled = true;
52    }
53
54    public void setColumnNames(ArrayList<String> columnNames) {
55        this.columnNames = columnNames;
56    }
57
58    public void setResults(Object[][] results) {
59        this.results = results;
60    }
61
62    public boolean getCloseWasCalled() {
63        return closeWasCalled;
64    }
65}
66