diff options
Diffstat (limited to 'tests/src/com/android/messaging/datamodel/action/GetOrCreateConversationActionTest.java')
-rw-r--r-- | tests/src/com/android/messaging/datamodel/action/GetOrCreateConversationActionTest.java | 173 |
1 files changed, 0 insertions, 173 deletions
diff --git a/tests/src/com/android/messaging/datamodel/action/GetOrCreateConversationActionTest.java b/tests/src/com/android/messaging/datamodel/action/GetOrCreateConversationActionTest.java deleted file mode 100644 index b05b022..0000000 --- a/tests/src/com/android/messaging/datamodel/action/GetOrCreateConversationActionTest.java +++ /dev/null @@ -1,173 +0,0 @@ -/* - * 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.action; - -import android.content.pm.ProviderInfo; -import android.database.Cursor; -import android.net.Uri; -import android.test.mock.MockContentProvider; -import android.test.suitebuilder.annotation.SmallTest; - -import com.android.messaging.BugleTestCase; -import com.android.messaging.FakeContext; -import com.android.messaging.FakeFactory; -import com.android.messaging.datamodel.BugleDatabaseOperations; -import com.android.messaging.datamodel.DataModel; -import com.android.messaging.datamodel.DatabaseWrapper; -import com.android.messaging.datamodel.FakeDataModel; -import com.android.messaging.datamodel.MessagingContentProvider; -import com.android.messaging.datamodel.action.ActionTestHelpers.StubActionService; -import com.android.messaging.datamodel.action.ActionTestHelpers.StubActionService.StubActionServiceCallLog; -import com.android.messaging.datamodel.action.GetOrCreateConversationAction.GetOrCreateConversationActionListener; -import com.android.messaging.datamodel.action.GetOrCreateConversationAction.GetOrCreateConversationActionMonitor; -import com.android.messaging.datamodel.data.ParticipantData; -import com.android.messaging.datamodel.data.TestDataFactory; -import com.android.messaging.sms.MmsUtils; - -import org.mockito.Mock; - -import java.util.ArrayList; - -@SmallTest -public class GetOrCreateConversationActionTest extends BugleTestCase { - - @Mock GetOrCreateConversationActionListener mockListener; - - public void testGetOrCreateConversation() { - final DatabaseWrapper db = DataModel.get().getDatabase(); - - final ArrayList<String> recipients = new ArrayList<String>(); - recipients.add("5551234567"); - recipients.add("5551234568"); - - // Generate a list of partially formed participants - final ArrayList<ParticipantData> participants = new - ArrayList<ParticipantData>(); - - - for (final String recipient : recipients) { - participants.add(ParticipantData.getFromRawPhoneBySystemLocale(recipient)); - } - - // Test that we properly stubbed the SMS provider to return a thread id - final long threadId = MmsUtils.getOrCreateThreadId(mContext, recipients); - assertEquals(TestDataFactory.SMS_MMS_THREAD_ID_CURSOR_VALUE, threadId); - - final String blankId = BugleDatabaseOperations.getExistingConversation(db, threadId, false); - assertNull("Conversation already exists", blankId); - - ArrayList<StubActionServiceCallLog> calls = mService.getCalls(); - - GetOrCreateConversationActionMonitor monitor = - GetOrCreateConversationAction.getOrCreateConversation(participants, null, - mockListener); - - assertEquals("Failed to start service once for action", calls.size(), 1); - assertTrue("Action not GetOrCreateConversationAction", calls.get(0).action instanceof - GetOrCreateConversationAction); - - GetOrCreateConversationAction action = (GetOrCreateConversationAction) - calls.get(0).action; - - Object result = action.executeAction(); - - assertTrue(result instanceof String); - - // Make sure that we created a new conversation - assertEquals(TestDataFactory.NUM_TEST_CONVERSATIONS+1, Integer.parseInt((String)result)); - - // Now get the conversation that we just created again - monitor = GetOrCreateConversationAction.getOrCreateConversation(participants, null, - mockListener); - - calls = mService.getCalls(); - assertEquals("Failed to start service for second action", calls.size(), 2); - assertTrue("Action not GetOrCreateConversationAction", calls.get(1).action instanceof - GetOrCreateConversationAction); - action = (GetOrCreateConversationAction)calls.get(1).action; - result = action.executeAction(); - - assertTrue(result instanceof String); - - final String conversationId = (String) result; - - // Make sure that we found the same conversation id - assertEquals(TestDataFactory.NUM_TEST_CONVERSATIONS+1, Integer.parseInt((String)result)); - - final ArrayList<ParticipantData> conversationParticipants = - BugleDatabaseOperations.getParticipantsForConversation(db, conversationId); - - assertEquals("Participant count mismatch", recipients.size(), - conversationParticipants.size()); - for(final ParticipantData participant : conversationParticipants) { - assertTrue(recipients.contains(participant.getSendDestination())); - } - - final Uri conversationParticipantsUri = - MessagingContentProvider.buildConversationParticipantsUri(conversationId); - final Cursor cursor = mContext.getContentResolver().query(conversationParticipantsUri, - ParticipantData.ParticipantsQuery.PROJECTION, null, null, null); - - int countSelf = 0; - while(cursor.moveToNext()) { - final ParticipantData participant = ParticipantData.getFromCursor(cursor); - if (participant.isSelf()) { - countSelf++; - } else { - assertTrue(recipients.contains(participant.getSendDestination())); - } - } - cursor.close(); - assertEquals("Expect one self participant in conversations", 1, countSelf); - assertEquals("Cursor count mismatch", recipients.size(), cursor.getCount() - countSelf); - - final String realId = BugleDatabaseOperations.getExistingConversation(db, threadId, false); - assertEquals("Conversation already exists", realId, conversationId); - } - - private FakeContext mContext; - private StubActionService mService; - - @Override - public void setUp() throws Exception { - super.setUp(); - - mContext = new FakeContext(getTestContext()); - - final MockContentProvider mockProvider = new MockContentProvider() { - @Override - public Cursor query(final Uri uri, final String[] projection, final String selection, - final String[] selectionArgs, final String sortOrder) { - return TestDataFactory.getSmsMmsThreadIdCursor(); - } - }; - - mContext.addContentProvider("mms-sms", mockProvider); - final MessagingContentProvider provider = new MessagingContentProvider(); - final ProviderInfo providerInfo = new ProviderInfo(); - providerInfo.authority = MessagingContentProvider.AUTHORITY; - provider.attachInfo(mContext, providerInfo); - mContext.addContentProvider(MessagingContentProvider.AUTHORITY, provider); - - mService = new StubActionService(); - final FakeDataModel fakeDataModel = new FakeDataModel(mContext) - .withActionService(mService); - FakeFactory.registerWithFakeContext(getTestContext(), mContext) - .withDataModel(fakeDataModel); - provider.setDatabaseForTest(fakeDataModel.getDatabase()); - } -} |