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();
}
private Uri insertRecord(String name, String email) {
ContentValues values = new ContentValues();
values.put(MembersContract.UsersTable.USERNAME, name);
values.put(MembersContract.UsersTable.EMAIL, email);
Uri uri = UsersTable.getUri();
Uri newUri = mContentResolver.insert(uri, values);
return newUri;
}
public void testUsersUri() {
Uri expected = Uri
.parse("content://org.francho.unutopia.mycontentprovider/users");
Uri actual = UsersTable.getUri();
assertEquals(expected, actual);
}
public void testInsert() {
Uri newUri = insertRecord("Clark Ken", "super@man.com");
assertNotNull(newUri);
}
public void testSelectOne() {
Uri newUri = insertRecord("Clark Ken", "super@man.com");
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();
}
public void testSelectMany() {
insertRecord("Clark Ken", "super@man.com");
insertRecord("Peter Parker", "spider@man.com");
insertRecord("Tony Stark","iron@man.com");
Uri uri = UsersTable.getUri();
Cursor cursor = mContentResolver.query(uri, null, null, null, null);
assertEquals(cursor.getCount(), 3);
cursor.close();
cursor = mContentResolver.query(uri, null, UsersTable.USERNAME + " like ?", new String[]{"Tony Stark"}, null);
assertEquals(cursor.getCount(), 1);
cursor.close();
}
public void testUpdateOne() {
Uri newUri = insertRecord("Clark Ken", "super@man.com");
}
}