Android Open Source - ShoppingList Content Manager Tests






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.manager;
//w  w  w  .  ja v a 2  s .c o m
import android.content.ContentResolver;
import android.test.ProviderTestCase2;

import com.google.common.base.Optional;
import com.google.common.util.concurrent.ListenableFuture;

import net.sledzdev.shoppinglist.adapter.DataModel;
import net.sledzdev.shoppinglist.model.ShoppingItem;
import net.sledzdev.shoppinglist.model.ShoppingItemBuilder;
import net.sledzdev.shoppinglist.model.ShoppingList;
import net.sledzdev.shoppinglist.content.ShoppingListProvider;
import net.sledzdev.shoppinglist.content.ShoppingProviderContract;
import net.sledzdev.shoppinglist.model.ShoppingListFactory;

/**
 * Created by Mariusz on 21.12.13.
 */
public class ContentManagerTests extends ProviderTestCase2<ShoppingListProvider> {

    private ContentResolver mockContentResolver;
    private ContentManager manager;

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

    @Override
    public void setUp() throws Exception {
        super.setUp();
        mockContentResolver = getMockContentResolver();
        manager = new MockContentManager(mockContentResolver);
        ShoppingListFactory.clearLists();
    }

    public void testContentManagerShoppingListsMethods() throws Exception {
        for (int i = 0; i < 10; i++) {
            manager.save(new ShoppingList("list number " + i)).get();
        }

        ListenableFuture<DataModel<ShoppingList>> futureLists = manager.loadShoppingListsModel();
        DataModel<ShoppingList> dataModel = futureLists.get();

        assertEquals(10, dataModel.size());

        for (int i = 0; i < 10; i++) {
            ShoppingList shoppingList = dataModel.getAtPosition(i).get();
            assertEquals("list number " + i, shoppingList.name);
        }

        ShoppingList shoppingList = dataModel.getAtPosition(4).get();
        manager.remove(shoppingList);

        futureLists = manager.loadShoppingListsModel();
        dataModel = futureLists.get();

        assertEquals(9, dataModel.size());
        assertFalse("list should not be present after removal", dataModel.getAtId(shoppingList.getId()).isPresent());

        shoppingList = dataModel.getAtPosition(2).get();
        shoppingList.name = "tartak";
        manager.save(shoppingList);

        futureLists = manager.loadShoppingListsModel();
        dataModel = futureLists.get();
        shoppingList = dataModel.getAtPosition(2).get();

        assertEquals("tartak", shoppingList.name);
    }

    public void testGetList() throws Exception {
        ShoppingList list = new ShoppingList("ala");
        assertEquals(-1, list.getId());
        manager.save(list).get();
        assertTrue("list id >= 0", list.getId() >= 0);

        ListenableFuture<Optional<ShoppingList>> futureOptionalList = manager.getList(list.getId() + 20);
        Optional<ShoppingList> optionalList = futureOptionalList.get();

        assertFalse(optionalList.isPresent());

        optionalList = manager.getList(list.getId()).get();
        assertTrue(optionalList.isPresent());
    }

    public void testItemMethods() throws Exception {
        ShoppingList list = new ShoppingList("tesco");
        manager.save(list).get();

        for (int i = 0; i < 10; i++) {
            ShoppingItemBuilder builder = new ShoppingItemBuilder();
            builder.setName("item " + i);
            builder.setPrice(i * 2 + 1);
            builder.setList(list);
            ShoppingItem item = builder.createShoppingItem();
            manager.save(item);
        }

        DataModel<ShoppingItem> itemDataModel = manager.loadItems(list).get();

        for (ShoppingItem item : itemDataModel) {
            assertEquals(list, item.list);
            assertTrue("price more equal than 1 and less equal than 21", 1 <= item.price && item.price <= 21);
        }
        assertEquals(10, itemDataModel.size());

        ShoppingItem item = itemDataModel.getAtPosition(1).get();
        manager.remove(item).get();

        itemDataModel = manager.loadItems(list).get();
        assertEquals(9, itemDataModel.size());
        assertFalse("item should not be present after removal", itemDataModel.getAtId(item.getId()).isPresent());

        ShoppingItemBuilder builder = new ShoppingItemBuilder();
        builder.setList_id(1);
        builder.setName("kartofel");
        builder.setPrice(1.8);
        ShoppingItem item1 = builder.createShoppingItem();

        manager.save(item1).get();
        assertTrue("id is set and is greater equal to 0", item1.getId() >= 0);

        ShoppingList list2 = new ShoppingList("biedronka");
        manager.save(list2).get();

        for (int i = 0; i < 6; i++) {
            ShoppingItemBuilder builder2 = new ShoppingItemBuilder();
            builder2.setList(list2);
            builder2.setPrice(3.4);
            builder2.setName("kartofle");
            ShoppingItem item2 = builder2.createShoppingItem();
            manager.save(item2).get();
        }

        DataModel<ShoppingItem> items = manager.loadItems(list2).get();
        assertEquals(6, items.size());

        item = items.getAtPosition(0).get();
        assertEquals(3.4, item.price);
        assertEquals("kartofle", item.name);

        manager.remove(item);

        items = manager.loadItems(list2).get();
        assertEquals(5, items.size());
        assertExists(false, item, items);
    }

    protected void assertExists(boolean expected, ShoppingItem item, DataModel<ShoppingItem> items) {
        boolean exists = false;
        ShoppingItem found = null;
        for (ShoppingItem otherItem : items) {
            if (otherItem.equals(item)) {
                exists = true;
                found = otherItem;
            }
        }
        assertEquals("item: " + item + ", found: " + found + ", exists: " + exists, expected, exists);
    }

    public void testGetManager() throws Exception {
        assertTrue("manager exists", ContentManager.getExistingManager().isPresent());
    }
}




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