/* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.messaging.datamodel; import android.database.Cursor; import android.test.suitebuilder.annotation.SmallTest; import com.android.messaging.BugleTestCase; import com.android.messaging.datamodel.data.TestDataFactory; import com.android.messaging.util.ContactUtil; @SmallTest public class FrequentContactsCursorBuilderTest extends BugleTestCase { private void verifyBuiltCursor(final Cursor expected, final Cursor actual) { final int rowCount = expected.getCount(); final int columnCount = expected.getColumnCount(); assertEquals(rowCount, actual.getCount()); assertEquals(columnCount, actual.getColumnCount()); for (int i = 0; i < rowCount; i++) { expected.moveToPosition(i); actual.moveToPosition(i); assertEquals(expected.getLong(ContactUtil.INDEX_DATA_ID), actual.getLong(ContactUtil.INDEX_DATA_ID)); assertEquals(expected.getLong(ContactUtil.INDEX_CONTACT_ID), actual.getLong(ContactUtil.INDEX_CONTACT_ID)); assertEquals(expected.getString(ContactUtil.INDEX_LOOKUP_KEY), actual.getString(ContactUtil.INDEX_LOOKUP_KEY)); assertEquals(expected.getString(ContactUtil.INDEX_DISPLAY_NAME), actual.getString(ContactUtil.INDEX_DISPLAY_NAME)); assertEquals(expected.getString(ContactUtil.INDEX_PHOTO_URI), actual.getString(ContactUtil.INDEX_PHOTO_URI)); assertEquals(expected.getString(ContactUtil.INDEX_PHONE_EMAIL), actual.getString(ContactUtil.INDEX_PHONE_EMAIL)); assertEquals(expected.getInt(ContactUtil.INDEX_PHONE_EMAIL_TYPE), actual.getInt(ContactUtil.INDEX_PHONE_EMAIL_TYPE)); assertEquals(expected.getString(ContactUtil.INDEX_PHONE_EMAIL_LABEL), actual.getString(ContactUtil.INDEX_PHONE_EMAIL_LABEL)); } } public void testIncompleteBuild() { final FrequentContactsCursorBuilder builder = new FrequentContactsCursorBuilder(); assertNull(builder.build()); assertNull(builder.setFrequents(TestDataFactory.getStrequentContactsCursor()).build()); builder.resetBuilder(); assertNull(builder.build()); assertNull(builder.setAllContacts(TestDataFactory.getAllContactListCursor()).build()); } public void testBuildOnce() { final Cursor cursor = new FrequentContactsCursorBuilder() .setAllContacts(TestDataFactory.getAllContactListCursor()) .setFrequents(TestDataFactory.getStrequentContactsCursor()) .build(); assertNotNull(cursor); verifyBuiltCursor(TestDataFactory.getFrequentContactListCursor(), cursor); } public void testBuildTwice() { final FrequentContactsCursorBuilder builder = new FrequentContactsCursorBuilder(); final Cursor firstCursor = builder .setAllContacts(TestDataFactory.getAllContactListCursor()) .setFrequents(TestDataFactory.getStrequentContactsCursor()) .build(); assertNotNull(firstCursor); builder.resetBuilder(); assertNull(builder.build()); final Cursor secondCursor = builder .setAllContacts(TestDataFactory.getAllContactListCursor()) .setFrequents(TestDataFactory.getStrequentContactsCursor()) .build(); assertNotNull(firstCursor); verifyBuiltCursor(TestDataFactory.getFrequentContactListCursor(), secondCursor); } }