package droidkit.sqlite; import android.content.ContentResolver; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.test.ProviderTestCase2; import junit.framework.Assert; import droidkit.database.CursorUtils; import droidkit.sqlite.mock.User; import droidkit.test.BuildConfig; /** * @author Daniel Serdyukov */ public class SQLiteProviderTest extends ProviderTestCase2<SQLiteProvider> { private ContentResolver mDb; public SQLiteProviderTest() { super(SQLiteProvider.class, BuildConfig.APPLICATION_ID); } private static Uri insertJohn(ContentResolver db) { final ContentValues values = new ContentValues(); values.put(User.Columns.NAME, "John"); values.put(User.Columns.AGE, 26); values.put(User.Columns.BALANCE, 9.99); values.put(User.Columns.BLOCKED, false); return db.insert(User.URI, values); } @Override public void setUp() throws Exception { super.setUp(); mDb = getMockContentResolver(); } public void testInsert() throws Exception { final Uri uri = insertJohn(mDb); final Cursor cursor = mDb.query(uri, null, null, null, null); Assert.assertTrue(cursor.moveToFirst()); Assert.assertEquals(1, cursor.getCount()); Assert.assertEquals("John", CursorUtils.getString(cursor, User.Columns.NAME)); Assert.assertEquals(26, CursorUtils.getInt(cursor, User.Columns.AGE)); Assert.assertEquals(9.99, CursorUtils.getDouble(cursor, User.Columns.BALANCE)); Assert.assertFalse(CursorUtils.getBoolean(cursor, User.Columns.BLOCKED)); } public void testUpdate() throws Exception { final Uri uri = insertJohn(mDb); final ContentValues values = new ContentValues(); values.put(User.Columns.NAME, "Jane"); mDb.update(User.URI, values, User.Columns.AGE + "=?", new String[]{"26"}); final Cursor cursor = mDb.query(uri, null, null, null, null); Assert.assertTrue(cursor.moveToFirst()); Assert.assertEquals(1, cursor.getCount()); Assert.assertEquals("Jane", CursorUtils.getString(cursor, User.Columns.NAME)); Assert.assertEquals(26, CursorUtils.getInt(cursor, User.Columns.AGE)); Assert.assertEquals(9.99, CursorUtils.getDouble(cursor, User.Columns.BALANCE)); Assert.assertFalse(CursorUtils.getBoolean(cursor, User.Columns.BLOCKED)); } public void testDelete() throws Exception { final Uri uri = insertJohn(mDb); mDb.delete(User.URI, User.Columns.AGE + "=?", new String[]{"26"}); final Cursor cursor = mDb.query(uri, null, null, null, null); Assert.assertFalse(cursor.moveToFirst()); cursor.close(); } @Override public void tearDown() throws Exception { getMockContentResolver().delete(User.URI, null, null); super.tearDown(); } }