1d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd/* 2d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Copyright (C) 2015 The Android Open Source Project 3d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 4d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Licensed under the Apache License, Version 2.0 (the "License"); 5d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * you may not use this file except in compliance with the License. 6d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * You may obtain a copy of the License at 7d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 8d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * http://www.apache.org/licenses/LICENSE-2.0 9d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 10d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Unless required by applicable law or agreed to in writing, software 11d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * distributed under the License is distributed on an "AS IS" BASIS, 12d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * See the License for the specific language governing permissions and 14d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * limitations under the License. 15d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 16d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddpackage com.android.messaging.datamodel; 17d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 18d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.database.Cursor; 19d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.test.suitebuilder.annotation.SmallTest; 20d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 21d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.BugleTestCase; 22d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.datamodel.data.TestDataFactory; 23d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.util.ContactUtil; 24d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 25d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd@SmallTest 26d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddpublic class FrequentContactsCursorBuilderTest extends BugleTestCase { 27d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 28d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd private void verifyBuiltCursor(final Cursor expected, final Cursor actual) { 29d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final int rowCount = expected.getCount(); 30d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final int columnCount = expected.getColumnCount(); 31d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertEquals(rowCount, actual.getCount()); 32d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertEquals(columnCount, actual.getColumnCount()); 33d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd for (int i = 0; i < rowCount; i++) { 34d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd expected.moveToPosition(i); 35d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd actual.moveToPosition(i); 36d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertEquals(expected.getLong(ContactUtil.INDEX_DATA_ID), 37d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd actual.getLong(ContactUtil.INDEX_DATA_ID)); 38d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertEquals(expected.getLong(ContactUtil.INDEX_CONTACT_ID), 39d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd actual.getLong(ContactUtil.INDEX_CONTACT_ID)); 40d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertEquals(expected.getString(ContactUtil.INDEX_LOOKUP_KEY), 41d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd actual.getString(ContactUtil.INDEX_LOOKUP_KEY)); 42d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertEquals(expected.getString(ContactUtil.INDEX_DISPLAY_NAME), 43d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd actual.getString(ContactUtil.INDEX_DISPLAY_NAME)); 44d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertEquals(expected.getString(ContactUtil.INDEX_PHOTO_URI), 45d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd actual.getString(ContactUtil.INDEX_PHOTO_URI)); 46d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertEquals(expected.getString(ContactUtil.INDEX_PHONE_EMAIL), 47d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd actual.getString(ContactUtil.INDEX_PHONE_EMAIL)); 48d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertEquals(expected.getInt(ContactUtil.INDEX_PHONE_EMAIL_TYPE), 49d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd actual.getInt(ContactUtil.INDEX_PHONE_EMAIL_TYPE)); 50d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertEquals(expected.getString(ContactUtil.INDEX_PHONE_EMAIL_LABEL), 51d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd actual.getString(ContactUtil.INDEX_PHONE_EMAIL_LABEL)); 52d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 53d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 54d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 55d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void testIncompleteBuild() { 56d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final FrequentContactsCursorBuilder builder = new FrequentContactsCursorBuilder(); 57d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertNull(builder.build()); 58d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertNull(builder.setFrequents(TestDataFactory.getStrequentContactsCursor()).build()); 59d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd builder.resetBuilder(); 60d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertNull(builder.build()); 61d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertNull(builder.setAllContacts(TestDataFactory.getAllContactListCursor()).build()); 62d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 63d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 64d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void testBuildOnce() { 65d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final Cursor cursor = new FrequentContactsCursorBuilder() 66d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd .setAllContacts(TestDataFactory.getAllContactListCursor()) 67d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd .setFrequents(TestDataFactory.getStrequentContactsCursor()) 68d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd .build(); 69d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertNotNull(cursor); 70d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd verifyBuiltCursor(TestDataFactory.getFrequentContactListCursor(), cursor); 71d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 72d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 73d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void testBuildTwice() { 74d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final FrequentContactsCursorBuilder builder = new FrequentContactsCursorBuilder(); 75d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final Cursor firstCursor = builder 76d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd .setAllContacts(TestDataFactory.getAllContactListCursor()) 77d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd .setFrequents(TestDataFactory.getStrequentContactsCursor()) 78d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd .build(); 79d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertNotNull(firstCursor); 80d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd builder.resetBuilder(); 81d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertNull(builder.build()); 82d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 83d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final Cursor secondCursor = builder 84d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd .setAllContacts(TestDataFactory.getAllContactListCursor()) 85d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd .setFrequents(TestDataFactory.getStrequentContactsCursor()) 86d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd .build(); 87d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd assertNotNull(firstCursor); 88d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd verifyBuiltCursor(TestDataFactory.getFrequentContactListCursor(), secondCursor); 89d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 90d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd} 91