package org.agilespain.kitaos; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.test.ProviderTestCase2; import org.agilespain.kitaos.provider.KitaosContract; import org.agilespain.kitaos.provider.KitaosProvider; /** * Test the content provider * @author francho */ public class KitaosProviderTest extends ProviderTestCase2<KitaosProvider> { private KitaosProvider mProvider; public KitaosProviderTest(){ super(KitaosProvider.class, KitaosContract.CONTENT_AUTHORITY); } @Override protected void setUp() throws Exception { super.setUp(); // mContext = getMockContext(); // mResolver = getMockContentResolver(); // mDb = getProvider().getDatabase(); mProvider = getProvider(); } public void testQuery() { Uri uri = KitaosContract.Talks.uri(2); Cursor cursor = mProvider.query(uri, null, null, null, null); assertNotNull(cursor); try { mProvider.query(Uri.parse("definitelywrong"), null, null, null, null); // we're wrong if we get until here! fail(); } catch (IllegalArgumentException e) { assertTrue(true); } Uri uri1 = KitaosContract.Speakers.uri(2); Cursor cursor1 = mProvider.query(uri1, null, null, null, null); assertNotNull(cursor1); try { mProvider.query(Uri.parse("definitelywrong"), null, null, null, null); // we're wrong if we get until here! fail(); } catch (IllegalArgumentException e) { assertTrue(true); } } public void testInsertSpeaker() throws Exception { final ContentValues values = new ContentValues(); int id = 123; String firstName = "David"; String lastName="Pina L�pez"; String email = "dpinalopez68@gmail.com"; String twitter ="@dpinalopez68"; String blog ="http://dpinalopez68.wordpress.com/"; values.put(KitaosContract.Speakers._ID, id); values.put(KitaosContract.Speakers.FIRSTNAME, firstName); values.put(KitaosContract.Speakers.LASTNAME, lastName); values.put(KitaosContract.Speakers.EMAIL, email); values.put(KitaosContract.Speakers.TWITTER, twitter); values.put(KitaosContract.Speakers.BLOG, blog); mProvider.insert(KitaosContract.Speakers.uri(),values); String[] projection = { KitaosContract.Speakers._ID, KitaosContract.Speakers.FIRSTNAME, KitaosContract.Speakers.LASTNAME, KitaosContract.Speakers.EMAIL, KitaosContract.Speakers.TWITTER, KitaosContract.Speakers.BLOG, }; Cursor cursor = mProvider.query(KitaosContract.Speakers.uri(id),projection,null,null,null); cursor.moveToFirst(); assertEquals(id, cursor.getInt(0)); assertEquals(firstName, cursor.getString(1)); assertEquals(lastName, cursor.getString(2)); assertEquals(email, cursor.getString(3)); assertEquals(twitter, cursor.getString(4)); assertEquals(blog, cursor.getString(5)); cursor.close(); } public void testInsert() throws Exception { final ContentValues values = new ContentValues(); int id = 123; String title = "title"; String description="description"; String date = "2012-05-23 10:30"; double duration = 2; String room = "room"; String speaker = "speaker"; String speaker_email = "em@ail.com"; String speaker_twitter = "cocoliso"; values.put(KitaosContract.Talks._ID, id); values.put(KitaosContract.Talks.TITLE, title); values.put(KitaosContract.Talks.DESCRIPTION, description); values.put(KitaosContract.Talks.START_DATE, date); values.put(KitaosContract.Talks.END_DATE, duration); values.put(KitaosContract.Talks.ROOM, room); values.put(KitaosContract.Talks.SPEAKER, speaker); values.put(KitaosContract.Talks.SPEAKER_TWITTER, speaker_twitter); values.put(KitaosContract.Talks.SPEAKER_EMAIL, speaker_email); mProvider.insert(KitaosContract.Talks.uri(),values); String[] projection = { KitaosContract.Talks._ID, KitaosContract.Talks.TITLE, KitaosContract.Talks.DESCRIPTION, KitaosContract.Talks.START_DATE, KitaosContract.Talks.END_DATE, KitaosContract.Talks.ROOM, KitaosContract.Talks.SPEAKER, KitaosContract.Talks.SPEAKER_TWITTER, KitaosContract.Talks.SPEAKER_EMAIL, }; Cursor cursor = mProvider.query(KitaosContract.Talks.uri(id),projection,null,null,null); cursor.moveToFirst(); assertEquals(id, cursor.getInt(0)); assertEquals(title, cursor.getString(1)); assertEquals(description, cursor.getString(2)); assertEquals(date, cursor.getString(3)); assertEquals(duration, cursor.getDouble(4)); assertEquals(room, cursor.getString(5)); assertEquals(speaker, cursor.getString(6)); assertEquals(speaker_twitter, cursor.getString(7)); assertEquals(speaker_email, cursor.getString(8)); cursor.close(); } public void testDeleteSpeaker() throws Exception { int id = 999; final ContentValues values = new ContentValues(); values.put(KitaosContract.Speakers._ID, id); Cursor cursor; mProvider.insert(KitaosContract.Speakers.uri(),values); cursor = mProvider.query(KitaosContract.Speakers.uri(id),null,null,null,null); assertEquals(1,cursor.getCount()); mProvider.delete(KitaosContract.Speakers.uri(id),null,null); cursor = mProvider.query(KitaosContract.Speakers.uri(id),null,null,null,null); assertEquals(0,cursor.getCount()); } public void testDelete() throws Exception { int id = 999; final ContentValues values = new ContentValues(); values.put(KitaosContract.Talks._ID, id); Cursor cursor; mProvider.insert(KitaosContract.Talks.uri(),values); cursor = mProvider.query(KitaosContract.Talks.uri(id),null,null,null,null); assertEquals(1,cursor.getCount()); mProvider.delete(KitaosContract.Talks.uri(id),null,null); cursor = mProvider.query(KitaosContract.Talks.uri(id),null,null,null,null); assertEquals(0,cursor.getCount()); } public void testUpdate() throws Exception { final int id = 343; final Uri uri = KitaosContract.Talks.uri(id); final ContentValues values = new ContentValues(); values.put(KitaosContract.Talks._ID, id); values.put(KitaosContract.Talks.TITLE, "title"); mProvider.insert(KitaosContract.Talks.uri(),values); values.put(KitaosContract.Talks.TITLE, "Hi dude"); mProvider.update(uri, values, null, null); Cursor cursor = mProvider.query(uri,null,null,null,null); cursor.moveToFirst(); assertEquals("Hi dude", cursor.getString(cursor.getColumnIndex(KitaosContract.Talks.TITLE))); } public void testUpdateSpeakers() throws Exception { final int id = 343; final Uri uri = KitaosContract.Speakers.uri(id); final ContentValues values = new ContentValues(); values.put(KitaosContract.Speakers._ID, id); values.put(KitaosContract.Speakers.FIRSTNAME, "David"); mProvider.insert(KitaosContract.Speakers.uri(),values); values.put(KitaosContract.Speakers.FIRSTNAME, "Francho"); mProvider.update(uri, values, null, null); Cursor cursor = mProvider.query(uri,null,null,null,null); cursor.moveToFirst(); assertEquals("Francho", cursor.getString(cursor.getColumnIndex(KitaosContract.Speakers.FIRSTNAME))); } public void testBulkInsert() throws Exception { } }