Android Open Source - ShoppingList Shopping List Provider Test






From Project

Back to project page ShoppingList.

License

The source code is released under:

GNU General Public License

If you think the Android project ShoppingList listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package net.sledzdev.shoppinglist.content;
//from w w  w .  java 2s. c  om
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.test.ProviderTestCase2;

/**
 * Created by Mariusz on 30.11.13.
 */
public class ShoppingListProviderTest extends ProviderTestCase2<ShoppingListProvider> {

    public ShoppingListProviderTest() {
        super(ShoppingListProvider.class, ShoppingProviderContract.AUTHORITY);
    }

    public void testDeleteItem() throws Exception {
        ContentResolver contentResolver = getMockContentResolver();

        Uri itemUri = insertItem(contentResolver);

        Cursor cursor = contentResolver.query(itemUri, null, null, null, null);
        assertTrue(cursor.moveToFirst());

        int rowsDeleted = contentResolver.delete(itemUri, null, null);
        assertEquals(1, rowsDeleted);

        cursor = contentResolver.query(itemUri, null, null, null, null);
        assertFalse(cursor.moveToFirst());

        insertItem(contentResolver);
        insertItem(contentResolver, "?mietana", 2, 4.5);

        cursor = contentResolver.query(ShoppingProviderContract.ITEMS_URI, null, null, null, null);
        assertTrue(cursor.moveToFirst());
        assertTrue(cursor.moveToNext());

        rowsDeleted = contentResolver.delete(ShoppingProviderContract.ITEMS_URI, ItemsTable.C_NAME + " = ?", new String[] {"czekolada"});
        assertEquals(1, rowsDeleted);

        cursor = contentResolver.query(ShoppingProviderContract.ITEMS_URI, null, null, null, null);
        assertTrue(cursor.moveToFirst());
        assertEquals("?mietana", cursor.getString(cursor.getColumnIndexOrThrow(ItemsTable.C_NAME)));
        assertFalse(cursor.moveToNext());
    }

    public void testDeleteList() throws Exception {
        ContentResolver contentResolver = getMockContentResolver();

        Uri listUri = insertList(contentResolver);

        Cursor cursor = contentResolver.query(listUri, new String[]{ListsTable.C_NAME}, null, null, null);
        assertTrue(cursor.moveToFirst());

        int rowsDeleted = contentResolver.delete(listUri, null, null);
        assertEquals(1, rowsDeleted);

        cursor = contentResolver.query(listUri, new String[]{ListsTable.C_NAME}, null, null, null);
        assertFalse(cursor.moveToFirst());

        insertList(contentResolver);
        insertList(contentResolver);

        cursor = contentResolver.query(ShoppingProviderContract.LIST_URI, null, null, null, null);
        assertTrue(cursor.moveToFirst());
        assertTrue(cursor.moveToNext());

        rowsDeleted = contentResolver.delete(ShoppingProviderContract.LIST_URI, null, null);
        assertEquals(2, rowsDeleted);

        cursor = contentResolver.query(listUri, new String[]{ListsTable.C_NAME}, null, null, null);
        assertFalse(cursor.moveToFirst());
    }

    public void testUpdateList() throws Exception {
        ContentResolver contentResolver = getMockContentResolver();

        Uri listUri = insertList(contentResolver);
        assertNotNull(listUri);

        ContentValues updates = new ContentValues();
        updates.put(ListsTable.C_NAME, "ala");

        int rowsUpdated = contentResolver.update(listUri, updates, null, null);
        assertEquals(1, rowsUpdated);

        Cursor cursor = contentResolver.query(listUri, new String[]{ListsTable.C_NAME}, null, null, null);
        assertTrue(cursor.moveToFirst());
        assertEquals("ala", cursor.getString(cursor.getColumnIndexOrThrow(ListsTable.C_NAME)));
        assertFalse(cursor.moveToNext());
    }

    public void testItemsUpdate() throws Exception {
        ContentResolver contentResolver = getMockContentResolver();

        Uri itemUri = insertItem(contentResolver);
        assertNotNull(itemUri);

        Cursor cursor = contentResolver.query(itemUri, null, null, null, null);
        assertTrue(cursor.moveToFirst());
        assertEquals("czekolada", cursor.getString(cursor.getColumnIndexOrThrow(ItemsTable.C_NAME)));
        assertEquals(1, cursor.getInt(cursor.getColumnIndexOrThrow(ItemsTable.C_LIST_ID)));
        assertEquals(3.1, cursor.getDouble(cursor.getColumnIndexOrThrow(ItemsTable.C_PRICE)));

        ContentValues updates = new ContentValues();
        updates.put(ItemsTable.C_NAME, "czekolada mleczna");

        int rowsUpdated = contentResolver.update(itemUri, updates, null, null);
        assertEquals(1, rowsUpdated);

        cursor = contentResolver.query(itemUri, null, null, null, null);
        assertTrue(cursor.moveToFirst());
        assertEquals("czekolada mleczna", cursor.getString(cursor.getColumnIndexOrThrow(ItemsTable.C_NAME)));
        assertEquals(1, cursor.getInt(cursor.getColumnIndexOrThrow(ItemsTable.C_LIST_ID)));
        assertEquals(3.1, cursor.getDouble(cursor.getColumnIndexOrThrow(ItemsTable.C_PRICE)));

        updates = new ContentValues();
        updates.put(ItemsTable.C_PRICE, 3.14);

        rowsUpdated = contentResolver.update(itemUri, updates, ItemsTable.C_NAME + " = ?", new String[] {"czekolada mleczna"});
        assertEquals(1, rowsUpdated);

        cursor = contentResolver.query(itemUri, null, null, null, null);
        assertTrue(cursor.moveToFirst());
        assertEquals("czekolada mleczna", cursor.getString(cursor.getColumnIndexOrThrow(ItemsTable.C_NAME)));
        assertEquals(1, cursor.getInt(cursor.getColumnIndexOrThrow(ItemsTable.C_LIST_ID)));
        assertEquals(3.14, cursor.getDouble(cursor.getColumnIndexOrThrow(ItemsTable.C_PRICE)));
    }

    public void testInsertAndQueryItems() throws Exception {
        ContentResolver contentResolver = getMockContentResolver();

        Uri itemUri = insertItem(contentResolver);
        assertNotNull(itemUri);

        Cursor cursor = contentResolver.query(itemUri, null, null, null, null);
        assertTrue(cursor.moveToFirst());
        assertEquals("czekolada", cursor.getString(cursor.getColumnIndexOrThrow(ItemsTable.C_NAME)));
        assertEquals(1, cursor.getInt(cursor.getColumnIndexOrThrow(ItemsTable.C_LIST_ID)));
        assertEquals(3.1, cursor.getDouble(cursor.getColumnIndexOrThrow(ItemsTable.C_PRICE)));
    }

    private Uri insertItem(ContentResolver contentResolver) {
        return insertItem(contentResolver, "czekolada", 1, 3.1);
    }

    private Uri insertItem(ContentResolver contentResolver, String name, long list_id, double price) {
        ContentValues values = new ContentValues();
        values.put(ItemsTable.C_NAME, name);
        values.put(ItemsTable.C_LIST_ID, list_id);
        values.put(ItemsTable.C_PRICE, price);

        return contentResolver.insert(ShoppingProviderContract.ITEMS_URI, values);
    }

    public void testInsertAndQueryLists() throws Exception {
        ContentResolver contentResolver = getMockContentResolver();

        Uri listUri = insertList(contentResolver);
        assertNotNull(listUri);

        Cursor cursor = contentResolver.query(listUri, new String[]{ListsTable.C_NAME}, null, null, null);
        assertTrue(cursor.moveToFirst());
        assertEquals("tesco", cursor.getString(cursor.getColumnIndexOrThrow(ListsTable.C_NAME)));
        assertFalse(cursor.moveToNext());

        cursor = contentResolver.query(ShoppingProviderContract.LIST_URI, new String[]{ListsTable.C_NAME}, null, null, null);
        assertTrue(cursor.moveToFirst());
        assertEquals("tesco", cursor.getString(cursor.getColumnIndexOrThrow(ListsTable.C_NAME)));
        assertFalse(cursor.moveToNext());
    }

    private Uri insertList(ContentResolver contentResolver) {
        ContentValues values = new ContentValues();
        values.put(ListsTable.C_NAME, "tesco");

        return contentResolver.insert(ShoppingProviderContract.LIST_URI, values);
    }

    public void testInvalidUri() throws Exception {
        ContentResolver contentResolver = getMockContentResolver();

        boolean thrown = false;
        try {
            contentResolver.query(Uri.parse("content://"+ShoppingProviderContract.AUTHORITY+"/browsers"), null, null, null, null);
        } catch (IllegalArgumentException e) {
            thrown = true;
        }
        assertTrue(thrown);
    }

    public void testInvalidProjection() throws Exception {
        ContentResolver contentResolver = getMockContentResolver();

        boolean thrown = false;
        try {
            contentResolver.query(ShoppingProviderContract.LIST_URI, new String[]{"ala"}, null, null, null);
        } catch (IllegalArgumentException e) {
            thrown = true;
        }
        assertTrue(thrown);

        thrown = false;
        try {
            contentResolver.query(ContentUris.withAppendedId(ShoppingProviderContract.LIST_URI, 1), new String[]{"ala"}, null, null, null);
        } catch (IllegalArgumentException e) {
            thrown = true;
        }
        assertTrue(thrown);

        thrown = false;
        try {
            contentResolver.query(ShoppingProviderContract.ITEMS_URI, new String[]{"ala"}, null, null, null);
        } catch (IllegalArgumentException e) {
            thrown = true;
        }
        assertTrue(thrown);

        thrown = false;
        try {
            contentResolver.query(ContentUris.withAppendedId(ShoppingProviderContract.ITEMS_URI, 1), new String[]{"ala"}, null, null, null);
        } catch (IllegalArgumentException e) {
            thrown = true;
        }
        assertTrue(thrown);
    }

    public void testIncorrectInsertAndUpdate() throws Exception {
        ContentResolver contentResolver = getMockContentResolver();

        ContentValues contentValues = new ContentValues();
        contentValues.put("ala", 12);

        boolean thrown = false;
        try {
            contentResolver.insert(ShoppingProviderContract.ITEMS_URI, contentValues);
        } catch (IllegalArgumentException e) {
            thrown = true;
        }
        assertTrue(thrown);

        thrown = false;
        try {
            contentResolver.insert(ShoppingProviderContract.LIST_URI, contentValues);
        } catch (IllegalArgumentException e) {
            thrown = true;
        }
        assertTrue(thrown);

        thrown = false;
        try {
            contentResolver.insert(ContentUris.withAppendedId(ShoppingProviderContract.LIST_URI, 1), contentValues);
        } catch (IllegalArgumentException e) {
            thrown = true;
        }
        assertTrue(thrown);

        thrown = false;
        try {
            contentResolver.update(ContentUris.withAppendedId(ShoppingProviderContract.ITEMS_URI, 1), contentValues, null, null);
        } catch (IllegalArgumentException e) {
            thrown = true;
        }
        assertTrue(thrown);

        thrown = false;
        try {
            contentResolver.update(ContentUris.withAppendedId(ShoppingProviderContract.LIST_URI, 1), contentValues, null, null);
        } catch (IllegalArgumentException e) {
            thrown = true;
        }
        assertTrue(thrown);

        thrown = false;
        try {
            contentResolver.update(ShoppingProviderContract.ITEMS_URI, contentValues, null, null);
        } catch (IllegalArgumentException e) {
            thrown = true;
        }
        assertTrue(thrown);

        thrown = false;
        try {
            contentResolver.update(ShoppingProviderContract.LIST_URI, contentValues, null, null);
        } catch (IllegalArgumentException e) {
            thrown = true;
        }
        assertTrue(thrown);
    }

}




Java Source Code List

net.sledzdev.shoppinglist.DetailFragmentHandlersRegister.java
net.sledzdev.shoppinglist.ItemDialogActivity.java
net.sledzdev.shoppinglist.ShoppingListDetailActivity.java
net.sledzdev.shoppinglist.ShoppingListDetailFragment.java
net.sledzdev.shoppinglist.ShoppingListsActivity.java
net.sledzdev.shoppinglist.ShoppingListsFragment.java
net.sledzdev.shoppinglist.adapter.DataModelAdapter.java
net.sledzdev.shoppinglist.adapter.DataModel.java
net.sledzdev.shoppinglist.adapter.ElementWithId.java
net.sledzdev.shoppinglist.adapter.ItemAdapterEventController.java
net.sledzdev.shoppinglist.adapter.ItemAdapter.java
net.sledzdev.shoppinglist.adapter.ListMapDataModelTest.java
net.sledzdev.shoppinglist.adapter.ListMapDataModel.java
net.sledzdev.shoppinglist.adapter.ShoppingListAdapterEventsHandler.java
net.sledzdev.shoppinglist.adapter.ShoppingListsAdapter.java
net.sledzdev.shoppinglist.content.DatabaseHelper.java
net.sledzdev.shoppinglist.content.DatabaseUriContentProvider.java
net.sledzdev.shoppinglist.content.ItemRowProvider.java
net.sledzdev.shoppinglist.content.ItemsProvider.java
net.sledzdev.shoppinglist.content.ItemsTable.java
net.sledzdev.shoppinglist.content.ListRowProvider.java
net.sledzdev.shoppinglist.content.ListsProvider.java
net.sledzdev.shoppinglist.content.ListsTable.java
net.sledzdev.shoppinglist.content.RowUriProvider.java
net.sledzdev.shoppinglist.content.ShoppingListProviderTest.java
net.sledzdev.shoppinglist.content.ShoppingListProvider.java
net.sledzdev.shoppinglist.content.ShoppingProviderContract.java
net.sledzdev.shoppinglist.content.TableUriProvider.java
net.sledzdev.shoppinglist.content.UriContentProvider.java
net.sledzdev.shoppinglist.event.ClearListEvent.java
net.sledzdev.shoppinglist.event.EventBusFactory.java
net.sledzdev.shoppinglist.event.ItemChangedEvent.java
net.sledzdev.shoppinglist.event.ItemCheckedChangedEvent.java
net.sledzdev.shoppinglist.event.ItemDeleteEvent.java
net.sledzdev.shoppinglist.event.ItemDialogCloseEvent.java
net.sledzdev.shoppinglist.event.ItemDialogOpenRequestEvent.java
net.sledzdev.shoppinglist.event.ListDeleteEvent.java
net.sledzdev.shoppinglist.event.ListSelectedEvent.java
net.sledzdev.shoppinglist.event.ListTitleChangedEvent.java
net.sledzdev.shoppinglist.event.NewItemEvent.java
net.sledzdev.shoppinglist.event.NewListEvent.java
net.sledzdev.shoppinglist.event.NewListRequestEvent.java
net.sledzdev.shoppinglist.event.TextWatcherAdapter.java
net.sledzdev.shoppinglist.event.UpdateListAdapterEvent.java
net.sledzdev.shoppinglist.handlers.ClearListEventHandler.java
net.sledzdev.shoppinglist.handlers.ItemChangedEventHandler.java
net.sledzdev.shoppinglist.handlers.ItemCheckedChangeEventHandler.java
net.sledzdev.shoppinglist.handlers.ItemDeleteEventHandler.java
net.sledzdev.shoppinglist.handlers.ItemDialogOpenRequestEventHandler.java
net.sledzdev.shoppinglist.handlers.ListDeleteEventHandler.java
net.sledzdev.shoppinglist.handlers.ListSelectedEventHandler.java
net.sledzdev.shoppinglist.handlers.ListTitleChangedEventHandler.java
net.sledzdev.shoppinglist.handlers.NewItemEventHandler.java
net.sledzdev.shoppinglist.handlers.NewListEventHandler.java
net.sledzdev.shoppinglist.manager.ContentManagerTests.java
net.sledzdev.shoppinglist.manager.ContentManager.java
net.sledzdev.shoppinglist.manager.ContentTransformer.java
net.sledzdev.shoppinglist.manager.ItemContentTransformer.java
net.sledzdev.shoppinglist.manager.ListsContentTransformer.java
net.sledzdev.shoppinglist.manager.MockContentManager.java
net.sledzdev.shoppinglist.manager.OnUiThreadFutureCallback.java
net.sledzdev.shoppinglist.model.ShoppingItemBuilderTest.java
net.sledzdev.shoppinglist.model.ShoppingItemBuilder.java
net.sledzdev.shoppinglist.model.ShoppingItem.java
net.sledzdev.shoppinglist.model.ShoppingListFactoryTest.java
net.sledzdev.shoppinglist.model.ShoppingListFactory.java
net.sledzdev.shoppinglist.model.ShoppingList.java