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