package io.pivotal.arca.dispatcher;
import android.net.Uri;
import android.os.Parcel;
import android.test.AndroidTestCase;
import java.util.Arrays;
public class QueryTest extends AndroidTestCase {
public void testQueryParcelableDescribeContents() {
final Uri uri = Uri.parse("content://empty");
final Query request = new Query(uri);
assertEquals(0, request.describeContents());
}
public void testQueryParcelableCreatorArray() {
final Query[] request = Query.CREATOR.newArray(1);
assertEquals(1, request.length);
}
public void testQueryParcelableCreator() {
final Uri uri = Uri.parse("content://empty");
final String[] projection = { "_id" };
final String where = "test = ?";
final String[] whereArgs = { "true" };
final String sortOrder = "_id desc";
final boolean forceUpdate = true;
final Query request = new Query(uri);
request.setProjection(projection);
request.setWhere(where, whereArgs);
request.setSortOrder(sortOrder);
request.setForceUpdate(forceUpdate);
final Parcel parcel = Parcel.obtain();
request.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
final Query parceled = Query.CREATOR.createFromParcel(parcel);
assertEquals(uri, parceled.getUri());
assertTrue(Arrays.deepEquals(projection, parceled.getProjection()));
assertEquals(where, parceled.getWhereClause());
assertTrue(Arrays.deepEquals(whereArgs, parceled.getWhereArgs()));
assertEquals(sortOrder, parceled.getSortOrder());
assertEquals(forceUpdate, parceled.shouldForceUpdate());
parcel.recycle();
}
public void testQueryAddWhere() {
final Uri uri = Uri.parse("content://empty");
final Query request = new Query(uri);
final String where1 = "test1 = ?";
final String[] whereArgs1 = { "true" };
final String where2 = "test2 = ?";
final String[] whereArgs2 = { "false" };
assertEquals(null, request.getWhereArgs());
assertEquals(null, request.getWhereClause());
request.addWhere(where1, whereArgs1);
assertEquals("test1 = ?", request.getWhereClause());
assertTrue(Arrays.deepEquals(new String[] { "true" }, request.getWhereArgs()));
request.addWhere(where2, whereArgs2);
assertEquals("test1 = ? AND test2 = ?", request.getWhereClause());
assertTrue(Arrays.deepEquals(new String[] { "true", "false" }, request.getWhereArgs()));
}
}