Adding convenience methods to MockContentProvider
Change-Id: Ifbf5387c0472dfc1a9ce32bf9f4c0104457a9bcb
diff --git a/tests/src/com/android/contacts/tests/mocks/ContactsMockPackageManager.java b/tests/src/com/android/contacts/tests/mocks/ContactsMockPackageManager.java
index 3095d69..0f893fe 100644
--- a/tests/src/com/android/contacts/tests/mocks/ContactsMockPackageManager.java
+++ b/tests/src/com/android/contacts/tests/mocks/ContactsMockPackageManager.java
@@ -17,7 +17,6 @@
import android.content.ComponentName;
import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.test.mock.MockPackageManager;
diff --git a/tests/src/com/android/contacts/tests/mocks/MockContentProvider.java b/tests/src/com/android/contacts/tests/mocks/MockContentProvider.java
index 14d563c..3acb52d 100644
--- a/tests/src/com/android/contacts/tests/mocks/MockContentProvider.java
+++ b/tests/src/com/android/contacts/tests/mocks/MockContentProvider.java
@@ -44,6 +44,9 @@
private String[] mSelectionArgs;
private String mSortOrder;
private ArrayList<Object[]> mRows = new ArrayList<Object[]>();
+ private boolean mAnyProjection;
+ private boolean mAnySelection;
+ private boolean mAnySortOrder;
public Query(Uri uri) {
mUri = uri;
@@ -64,41 +67,61 @@
return this;
}
+ public Query withAnyProjection() {
+ mAnyProjection = true;
+ return this;
+ }
+
public Query withSelection(String selection, String... selectionArgs) {
mSelection = selection;
mSelectionArgs = selectionArgs;
return this;
}
+ public Query withAnySelection() {
+ mAnySelection = true;
+ return this;
+ }
+
public Query withSortOrder(String sortOrder) {
mSortOrder = sortOrder;
return this;
}
+ public Query withAnySortOrder() {
+ mAnySortOrder = true;
+ return this;
+ }
+
public Query returnRow(Object... row) {
mRows.add(row);
return this;
}
+ public Query returnEmptyCursor() {
+ mRows.clear();
+ return this;
+ }
+
public boolean equals(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
if (!uri.equals(mUri)) {
return false;
}
- if (!equals(projection, mProjection)) {
+ if (!mAnyProjection && !equals(projection, mProjection)) {
return false;
}
- if (!TextUtils.equals(selection, mSelection)) {
+ if (!mAnySelection && !TextUtils.equals(selection, mSelection)) {
return false;
}
- if (!equals(selectionArgs, mSelectionArgs)) {
+ if (!mAnySelection && !equals(selectionArgs, mSelectionArgs)) {
return false;
}
- if (!TextUtils.equals(sortOrder, mSortOrder)) {
+ if (!mAnySortOrder && !TextUtils.equals(sortOrder, mSortOrder)) {
return false;
}
@@ -126,7 +149,21 @@
}
public Cursor getResult() {
- String[] columnNames = mProjection != null ? mProjection : mDefaultProjection;
+ String[] columnNames;
+ if (mAnyProjection) {
+ if (mRows.size() > 0) {
+ int columnCount = mRows.get(0).length;
+ columnNames = new String[columnCount];
+ for (int i = 0; i < columnNames.length; i++) {
+ columnNames[i] = "column" + (i+1);
+ }
+ } else {
+ columnNames = new String[]{"unspecified"};
+ }
+ } else {
+ columnNames = mProjection != null ? mProjection : mDefaultProjection;
+ }
+
MatrixCursor cursor = new MatrixCursor(columnNames);
for (Object[] row : mRows) {
cursor.addRow(row);