• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.data;
17 
18 import android.test.suitebuilder.annotation.SmallTest;
19 
20 import com.android.messaging.BugleTestCase;
21 import com.android.messaging.FakeFactory;
22 import com.android.messaging.datamodel.FakeCursor;
23 import com.android.messaging.datamodel.data.ConversationMessageData;
24 import com.android.messaging.datamodel.data.MessageData;
25 import com.android.messaging.datamodel.data.ConversationMessageData.ConversationMessageViewColumns;
26 
27 @SmallTest
28 public class ConversationMessageDataTest extends BugleTestCase {
29     @Override
setUp()30     protected void setUp() throws Exception {
31         super.setUp();
32         FakeFactory.register(getTestContext());
33     }
34 
testBindFirstMessage()35     public void testBindFirstMessage() {
36         final FakeCursor testCursor = TestDataFactory.getConversationMessageCursor();
37         final ConversationMessageData data = new ConversationMessageData();
38         testCursor.moveToFirst();
39         data.bind(testCursor);
40         // TODO: Add before checking in all bound fields...
41         assertEquals(testCursor.getAt(ConversationMessageViewColumns.STATUS, 0).equals(
42                 MessageData.BUGLE_STATUS_INCOMING_COMPLETE), data.getIsIncoming());
43         assertEquals(testCursor.getAt(ConversationMessageViewColumns.SENDER_PROFILE_PHOTO_URI,
44                 0), data.getSenderProfilePhotoUri());
45         assertEquals(testCursor.getAt(ConversationMessageViewColumns.SENDER_FULL_NAME, 0),
46                 data.getSenderFullName());
47     }
48 
testBindTwice()49     public void testBindTwice() {
50         final FakeCursor testCursor = TestDataFactory.getConversationMessageCursor();
51         final ConversationMessageData data = new ConversationMessageData();
52         testCursor.moveToPosition(1);
53         data.bind(testCursor);
54         assertEquals(TestDataFactory.getMessageText(testCursor, 1), data.getText());
55         assertEquals(testCursor.getAt(ConversationMessageViewColumns.RECEIVED_TIMESTAMP, 1),
56                 data.getReceivedTimeStamp());
57         assertEquals(testCursor.getAt(ConversationMessageViewColumns.STATUS, 1).equals(
58                 MessageData.BUGLE_STATUS_INCOMING_COMPLETE), data.getIsIncoming());
59         assertEquals(testCursor.getAt(ConversationMessageViewColumns.SENDER_PROFILE_PHOTO_URI,
60                 1), data.getSenderProfilePhotoUri());
61         assertEquals(testCursor.getAt(ConversationMessageViewColumns.SENDER_FULL_NAME, 1),
62                 data.getSenderFullName());
63         testCursor.moveToPosition(2);
64         data.bind(testCursor);
65         assertEquals(TestDataFactory.getMessageText(testCursor, 2), data.getText());
66         assertEquals(testCursor.getAt(ConversationMessageViewColumns.RECEIVED_TIMESTAMP, 2),
67                 data.getReceivedTimeStamp());
68         assertEquals(testCursor.getAt(ConversationMessageViewColumns.STATUS, 2).equals(
69                 MessageData.BUGLE_STATUS_INCOMING_COMPLETE), data.getIsIncoming());
70         assertEquals(testCursor.getAt(ConversationMessageViewColumns.SENDER_PROFILE_PHOTO_URI,
71                 2), data.getSenderProfilePhotoUri());
72         assertEquals(testCursor.getAt(ConversationMessageViewColumns.SENDER_FULL_NAME, 2),
73                 data.getSenderFullName());
74     }
75 
testMessageClustering()76     public void testMessageClustering() {
77         final FakeCursor testCursor = TestDataFactory.getConversationMessageCursor();
78         final ConversationMessageData data = new ConversationMessageData();
79         testCursor.moveToPosition(0);
80         data.bind(testCursor);
81         assertFalse(data.getCanClusterWithPreviousMessage());
82         assertFalse(data.getCanClusterWithNextMessage());
83 
84         testCursor.moveToPosition(1);
85         data.bind(testCursor);
86         assertFalse(data.getCanClusterWithPreviousMessage());
87         assertFalse(data.getCanClusterWithNextMessage());
88 
89         testCursor.moveToPosition(2);
90         data.bind(testCursor);
91         assertFalse(data.getCanClusterWithPreviousMessage());
92         assertTrue(data.getCanClusterWithNextMessage());  // 2 and 3 can be clustered
93         testCursor.moveToPosition(3);
94 
95         data.bind(testCursor);
96         assertTrue(data.getCanClusterWithPreviousMessage());  // 2 and 3 can be clustered
97         assertFalse(data.getCanClusterWithNextMessage());
98     }
99 }
100