package org.francho.unutopia.mycontenterprovider.test; import org.francho.unutopia.mycontenterprovider.data.MembersContract; import org.francho.unutopia.mycontenterprovider.data.MembersContract.UsersTable; import org.francho.unutopia.mycontenterprovider.data.MyContentProvider; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.test.ProviderTestCase2; import android.test.mock.MockContentResolver; public class MyContentProviderTest extends ProviderTestCase2<MyContentProvider> { private MockContentResolver mContentResolver; public MyContentProviderTest() { super(MyContentProvider.class, MembersContract.AUTHORITY); } @Override protected void setUp() throws Exception { super.setUp(); mContentResolver = getMockContentResolver(); } public void testUsersUri() { Uri expected = Uri.parse("content://org.francho.unutopia.mycontentprovider/users"); Uri actual = UsersTable.getUri(); assertEquals(expected, actual); } public void testInsert() { ContentValues values = new ContentValues(); values.put(MembersContract.UsersTable.USERNAME, "Clark Ken"); values.put(MembersContract.UsersTable.EMAIL, "super@man.com"); Uri uri = UsersTable.getUri(); Uri newUri = mContentResolver.insert(uri, values); assertNotNull(newUri); } public void testSelectOne() { ContentValues values = new ContentValues(); values.put(MembersContract.UsersTable.USERNAME, "Clark Ken"); values.put(MembersContract.UsersTable.EMAIL, "super@man.com"); Uri uri = UsersTable.getUri(); Uri newUri = mContentResolver.insert(uri, values); assertNotNull(newUri); Cursor cursor = mContentResolver.query(newUri, null, null, null, null); assertEquals(cursor.getCount(), 1); cursor.moveToFirst(); String email = cursor.getString(cursor.getColumnIndex(UsersTable.EMAIL)); String name = cursor.getString(cursor.getColumnIndex(UsersTable.USERNAME)); assertEquals("Clark Ken", name); assertEquals("super@man.com",email); cursor.close(); } /** * lanza un test en el que se actualiza un registro de la base de datos. */ public void testUpdateOne () { ContentValues values = new ContentValues (); values.put (MembersContract.UsersTable.USERNAME, "Peter Parker"); values.put (MembersContract.UsersTable.EMAIL, "spider@man"); // obtenemos la uri para acceder al registro con _id = 1; Uri uri = UsersTable.getUri (1); int testResult = mContentResolver.update (uri, values, null , null ); assertFalse (testResult == -1); } /** * Lanza un test en el que se realiza una actualizaci�n masiva de los datos de la tabla UsersTabla.TABLE_NAME */ public void testMassiveUpdate () { ContentValues values = new ContentValues (); values.put (MembersContract.UsersTable.USERNAME, "Peter Parker"); values.put (MembersContract.UsersTable.EMAIL, "spider@man"); // obtenemos la uri del content provider Uri uri = UsersTable.getUri (); int testResult = mContentResolver.update (uri, values, null , null ); assertFalse (testResult == -1); } /** * Lanza un test en el que se elimina un registro de la tabla UsersTabla.TABLE_NAME */ public void testDeleteOne () { // recuperamos la uri para el registro con id = 1; Uri uri = UsersTable.getUri (1); // lanzamos el test de borrado int testResult = mContentResolver.delete (uri, null, null); assertFalse (testResult == -1); } /** * Lanza un test en el que se realiza una borrado masivo de los datos de la tabla UsersTabla.TABLE_NAME */ public void testMassiveDelete () { // recuperamos la uri del content provider Uri uri = UsersTable.getUri (); // lanzamos el test de borrado int testResult = mContentResolver.delete (uri, UsersTable.USERNAME + " = 'Clark Kent'" , null); assertFalse (testResult == -1); } }