Search in sources :

Example 36 with Contact

use of com.vodafone360.people.datatypes.Contact in project 360-Engine-for-Android by 360.

the class ChatDbUtilsTest method testConvertUserId.

/**
 * Test ChatDbUtils.convertUserIds() method with a given parameter
 * combination.
 *
 * @param userId User ID.
 * @param networkId Network ID.
 * @param localContactId Local Contact ID.
 * @param expectedUserId Expected User ID.
 * @param expectedNetwork Expected Network ID.
 * @param expectedLocalContactId Expected Local Contact ID.
 */
private void testConvertUserId(final String userId, final int networkId, final Long localContactId, final String expectedUserId, final SocialNetwork expectedNetwork, final Long expectedLocalContactId) {
    ChatMessage chatMessage = new ChatMessage();
    chatMessage.setUserId(userId);
    chatMessage.setNetworkId(networkId);
    chatMessage.setLocalContactId(localContactId);
    ChatDbUtils.convertUserIds(chatMessage, mDatabaseHelper);
    assertEquals("ChatDbUtilsTest.checkChatMessage() Unexpected user ID", expectedUserId, chatMessage.getUserId());
    assertEquals("ChatDbUtilsTest.checkChatMessage() Unexpected network ID [" + expectedNetwork + "]", expectedNetwork.ordinal(), chatMessage.getNetworkId());
    assertEquals("ChatDbUtilsTest.checkChatMessage() Unexpected local contact ID", expectedLocalContactId, chatMessage.getLocalContactId());
}
Also used : ChatMessage(com.vodafone360.people.datatypes.ChatMessage)

Example 37 with Contact

use of com.vodafone360.people.datatypes.Contact in project 360-Engine-for-Android by 360.

the class NowPlusServiceTestHelper method register.

/*
     * private IRemoteServiceCallback mCallback = new
     * IRemoteServiceCallback.Stub() {
     * @Override public void uiRequestComplete(int requestId, int statusId,
     * Bundle data) throws RemoteException { synchronized(mUiRequestLock) { if
     * (mUiRequestId != null && mUiRequestId.intValue() == requestId) {
     * mUiRequestStatusId = statusId; mUiRequestData = data;
     * mUiRequestLock.notifyAll(); } } }
     * @Override public void onContactSyncEvent(boolean syncActive, Bundle
     * bundleInfo) { Log.d(LOG_TAG, "Sync notification event received: " +
     * syncActive + ", info = " + bundleInfo); }
     * @Override public void onDatabaseChangeEvent(int changeTypeVal) throws
     * RemoteException { Database.DatabaseChangeType type = null; if
     * (changeTypeVal < Database.DatabaseChangeType.values().length) { type =
     * Database.DatabaseChangeType.values()[changeTypeVal]; } Log.d(LOG_TAG,
     * "Database change event received: " + type); mDbChanged = true; }
     * @Override public void onSettingChangeEvent(PersistSettings setting)
     * throws RemoteException { Log.d(LOG_TAG, "Setting change event received: "
     * + setting); } };
     */
// 
// public void Disconnect() {
// Log.i (LOG_TAG, "Disconnect() called");
// }
// 
// 
// public ServiceStatus LogOnTest(LoginDetails details) {
// ServiceStatus status = ServiceStatus.SUCCESS;
// synchronized(mUiRequestLock) {
// status = startSynchronousRequest(ServiceUiRequest.LOGIN);
// try {
// mRemoteService.logOn(details);
// } catch (RemoteException e) {
// status = ServiceStatus.ERROR_SERVICE_DISCONNECTED;
// }
// status = finishSynchronousRequest(status, null);
// }
// 
// Log.i(LOG_TAG, "Log on result: " + status);
// return status;
// }
// 
// public boolean runDatabaseTests() {
// Log.i (LOG_TAG, "runDatabaseTests ()");
// 
// ArrayList<ContactSummary> contactSummaryList = new
// ArrayList<ContactSummary>();
// Log.i(LOG_TAG, "Fetching number of contacts...");
// int count = fetchNoOfContacts();
// Log.i(LOG_TAG, "No of contacts = " + count);
// 
// if (count < 10) {
// Log.i (LOG_TAG,"Fewer than 10 contacts found");
// 
// Log.i(LOG_TAG, "Populating database with dummy contacts...");
// 
// for (int i = 0 ; i < 1 ; i++) {
// Log.i(LOG_TAG, "Populating group " + i + " please wait...");
// if (!populateContacts()) {
// Log.e(LOG_TAG, "Unable to add dummy contacts");
// return false;
// }
// Log.i (LOG_TAG,"Database successfully populated");
// count = fetchNoOfContacts();
// }
// }
// else
// {
// Log.i (LOG_TAG, "Enough contacts already exist, not adding any more");
// }
// 
// int startSummaryIndex = 0;
// for (int i = 0 ; i < count ; i+= 500) {
// Log.i(LOG_TAG, "Fetching contact summary list starting at " + i);
// startSummaryIndex = i;
// if (!fetchContactSummaryList(contactSummaryList, startSummaryIndex, 500))
// {
// Log.e(LOG_TAG, "Unable to fetch summary list");
// return false;
// }
// 
// for (ContactSummary s : contactSummaryList) {
// Log.i(LOG_TAG, s.toString());
// }
// }
// 
// Log.i (LOG_TAG, "Creating new contact ...");
// 
// Contact contact = new Contact();
// contact.aboutMe = "Test information\"`!$%^&*()_-+=[]{};:'@#~,<.>/?\\|";
// contact.contactID = 123L;
// contact.deleted = false;
// contact.friendOfMine = false;
// contact.profilePath = "///sdcard/test/path/picture.jpg";
// contact.updated = 0L;
// contact.userID = "982";
// {
// Log.i (LOG_TAG, "Creating contacts details #1 ...");
// ContactDetail detail = new ContactDetail();
// detail.key = ContactDetail.detailKeys.VCARD_NAME;
// detail.value = "Scott Kennedy";
// contact.details.add(detail);
// 
// Log.i (LOG_TAG, "Details Key   : " + detail.key);
// Log.i (LOG_TAG, "Details Value : " + detail.value);
// }
// Log.i (LOG_TAG, "Contact details ...");
// Log.i (LOG_TAG, "aboutMe      : " + contact.aboutMe);
// Log.i (LOG_TAG, "contactId    : " + contact.contactID);
// Log.i (LOG_TAG, "deleted      : " + contact.deleted);
// Log.i (LOG_TAG, "friendOfMine : " + contact.friendOfMine);
// Log.i (LOG_TAG, "profilePath  : " + contact.profilePath);
// Log.i (LOG_TAG, "updated      : " + contact.updated);
// Log.i (LOG_TAG, "userID       : " + contact.userID);
// 
// 
// {
// Log.i (LOG_TAG, "Creating contact details #2 ...");
// ContactDetail detail = new ContactDetail();
// detail.key = ContactDetail.detailKeys.PRESENCE_TEXT;
// detail.value = "test status 1";
// contact.details.add(detail);
// 
// Log.i (LOG_TAG, "Details Key      : " + detail.key);
// Log.i (LOG_TAG, "Details Value    : " + detail.value);
// }
// 
// {
// Log.i (LOG_TAG, "Creating contact details #3 ...");
// ContactDetail detail = new ContactDetail();
// detail.key = ContactDetail.detailKeys.PRESENCE_TEXT;
// detail.value = "Test presence text";
// contact.details.add(detail);
// contact.aboutMe = detail.value;
// 
// Log.i (LOG_TAG, "Details Key     : " + detail.key);
// Log.i (LOG_TAG, "Details Value   : " + detail.value);
// Log.i (LOG_TAG, "Contact AboutMe : " + contact.aboutMe);
// }
// 
// Log.i(LOG_TAG, "Adding test contact...");
// if (!addContact(contact)) {
// Log.e(LOG_TAG, "Unable to add contact " + contact.toString());
// return false;
// }
// Log.i(LOG_TAG, "Added Contact " + contact.toString());
// 
// Contact contact2 = new Contact();
// Log.i(LOG_TAG, "Fetching contact...");
// if (!fetchContact(contact.localContactID, contact2)) {
// Log.e(LOG_TAG, "Unable to fetch added contact " +
// contact.localContactID);
// return false;
// }
// Log.i(LOG_TAG, "Fetched Contact " + contact2.toString());
// 
// Log.i(LOG_TAG, "Deleting contact...");
// ServiceStatus status = deleteContact(contact.localContactID);
// if (ServiceStatus.SUCCESS != status) {
// Log.e(LOG_TAG, "Unable to delete contact " + contact.localContactID);
// return false;
// }
// 
// Log.i(LOG_TAG, "Fetching deleted contact...");
// if (fetchContact(contact.localContactID, contact2)) {
// Log.e(LOG_TAG, "Fetched Contact - it was not deleted");
// return false;
// }
// 
// Log.i(LOG_TAG, "SummaryList size = "+ contactSummaryList.size());
// 
// if (contactSummaryList.size() > 0)
// {
// Log.i(LOG_TAG, "Adding contact detail...");
// ContactDetail detail = new ContactDetail();
// 
// detail.key = ContactDetail.detailKeys.VCARD_PHONE;
// detail.keyType = ContactDetail.detailKeyTypes.CELL;
// detail.value = "+447955123456";
// long testContactID = contactSummaryList.get(0).localContactID;
// detail.localContactID = testContactID;
// 
// Log.i (LOG_TAG, "Details Key     : " + detail.key);
// Log.i (LOG_TAG, "Detail Key Type : " + detail.keyType);
// Log.i (LOG_TAG, "Detail Value    : " + detail.value);
// if (!addContactDetail(detail)) {
// Log.e(LOG_TAG, "Unable to add contact detail to contact " +
// contact.localContactID);
// return false;
// }
// Log.i (LOG_TAG, "Contact detail added successfully");
// 
// if (!displayContactDetail(testContactID, detail.localDetailID)) {
// Log.e(LOG_TAG, "Unable to find new detail after fetch");
// return false;
// }
// 
// Log.i (LOG_TAG, "New details etrieved successfully");
// Log.i(LOG_TAG, "Modifying contact detail...");
// detail.value = "+4479654321";
// 
// Log.i (LOG_TAG, "Modifying detail value to " + detail.value);
// if (!modifyContactDetail(detail)) {
// Log.e(LOG_TAG, "Unable to modify contact detail " +
// detail.localDetailID);
// return false;
// }
// 
// Log.i (LOG_TAG, "Contact detail modified successfully");
// 
// if (!displayContactDetail(testContactID, detail.localDetailID)) {
// Log.e(LOG_TAG, "Unable to find modified detail after fetch");
// return false;
// }
// Log.i (LOG_TAG, "Modified details found successfully");
// 
// Log.i(LOG_TAG, "Deleting contact detail...");
// if (!removeContactDetail(detail.localDetailID)) {
// Log.e(LOG_TAG, "Unable to delete contact detail " +
// detail.localDetailID);
// return false;
// }
// Log.i (LOG_TAG, "Contact detail deleted successfully");
// 
// if (displayContactDetail(testContactID, detail.localDetailID)) {
// Log.e(LOG_TAG, "Contact detail has been fetched after delete");
// return false;
// }
// Log.i (LOG_TAG,"Correctly, unable to get non-existent contact detail");
// 
// Log.i(LOG_TAG, "Fetching contact (2)...");
// if (!fetchContact(testContactID, contact2)) {
// Log.e(LOG_TAG, "Unable to fetch contact before adding detail " +
// testContactID);
// return false;
// }
// 
// Log.i (LOG_TAG,"Fetched contact successfully before adding detail");
// 
// for (ContactDetail d : contact2.details ) {
// if (d.key == ContactDetail.detailKeys.PRESENCE_TEXT ) {
// Log.i(LOG_TAG, "Removing presence status detail...");
// if (!removeContactDetail(d.localDetailID)) {
// Log.e(LOG_TAG, "Unable to remove presence status detail " +
// d.localDetailID);
// return false;
// }
// Log.i (LOG_TAG, "Presence status detail successfully removed");
// }
// }
// 
// {
// Log.i(LOG_TAG, "Fetching contact summary for test contact...");
// final ArrayList<ContactSummary> tempList = new
// ArrayList<ContactSummary>();
// if (!fetchContactSummaryList(tempList, startSummaryIndex, 1) ||
// tempList.size() < 1) {
// Log.e(LOG_TAG, "Unable to fetch contact summary after deleting detail " +
// startSummaryIndex);
// return false;
// }
// if (tempList.get(0).statusText != null) {
// Log.e(LOG_TAG,
// "There is no presence text contact detail so \"ContactSummary.statusText\" field should be null, but ContactSummary.statusText="
// + tempList.get(0).statusText);
// return false;
// }
// }
// 
// Log.i(LOG_TAG, "Adding contact detail (4)...");
// detail.key = ContactDetail.detailKeys.PRESENCE_TEXT;
// detail.keyType = ContactDetail.detailKeyTypes.UNKNOWN;
// detail.value = "This is my new presence status";
// detail.localContactID = testContactID;
// 
// Log.i (LOG_TAG, "Detail Key              : " + detail.key);
// Log.i (LOG_TAG, "Detail KeyType          : " + detail.keyType);
// Log.i (LOG_TAG, "Detail Value            : " + detail.value);
// Log.i (LOG_TAG, "Details local contactID : " + detail.localContactID);
// if (!addContactDetail(detail)) {
// Log.e(LOG_TAG, "Unable to add contact detail to contact " +
// contact.localContactID);
// return false;
// }
// Log.i (LOG_TAG, "Contact detail added successfully");
// 
// {
// Log.i(LOG_TAG, "Fetching contact summary for test contact...");
// final ArrayList<ContactSummary> tempList = new
// ArrayList<ContactSummary>();
// if (!fetchContactSummaryList(tempList, startSummaryIndex, 1) ||
// tempList.size() < 1) {
// Log.e(LOG_TAG, "Unable to fetch contact summary after deleting detail " +
// startSummaryIndex);
// return false;
// }
// if (!tempList.get(0).localContactID.equals(detail.localContactID)) {
// Log.e(LOG_TAG,
// "Contact ID mismatch - the test code has failed (Expected id = " +
// detail.localContactID + ", actual ID = " + tempList.get(0).localContactID
// + ")");
// return false;
// }
// if (tempList.get(0).statusText == null ||
// !detail.value.equals(tempList.get(0).statusText)) {
// Log.e(LOG_TAG,
// "The ContactSummary.statusText field was not updated when status text contact detail was added: Expected value: \""
// + detail.value + "\", actual value: \"" + tempList.get(0).statusText +
// "\"");
// return false;
// }
// Log.i (LOG_TAG, "Status text field was updated successfully with \"" +
// tempList.get(0).statusText + "\"");
// }
// }
// 
// return true;
// }
// 
// public boolean displayContactDetail(long contactID, long detailID) {
// Contact contact = new Contact();
// 
// Log.i (LOG_TAG, "Calling displayContactDetail ()");
// Log.i (LOG_TAG, "contactID: " + contactID+ ", detailID : " + detailID);
// if (!fetchContact(contactID, contact)) {
// Log.e(LOG_TAG, "Unable to fetch contact with modified detail");
// return false;
// }
// Log.i (LOG_TAG, "Fetched contact with modified details successfully");
// 
// for (ContactDetail d : contact.details) {
// if (d.localDetailID == detailID) {
// Log.i(LOG_TAG, "Fetched Contact Detail" + d.toString());
// return true;
// }
// }
// Log.e (LOG_TAG, "displayContactDetail() has failed!!");
// return false;
// }
// 
// public boolean addContact(Contact contact) {
// Log.i(LOG_TAG, "Calling addContact ()");
// 
// try {
// ServiceStatus status =
// ServiceStatus.fromInteger(mRemoteService.addContact(contact));
// if (ServiceStatus.SUCCESS != status) {
// Log.e(LOG_TAG, "Add contact failed: " + status);
// return false;
// }
// } catch (RemoteException e) {
// Log.e(LOG_TAG, "Remote exception has occurred while adding contact");
// return false;
// }
// return true;
// }
// 
// public ServiceStatus deleteContact(long localContactID) {
// Log.i (LOG_TAG, "Calling deletedContact ()");
// Log.i (LOG_TAG, "localContactID : "+ localContactID);
// 
// try {
// ServiceStatus status =
// ServiceStatus.fromInteger(mRemoteService.deleteContact(localContactID));
// if (ServiceStatus.SUCCESS != status) {
// Log.e(LOG_TAG, "Delete Contact Failed: " + status);
// return status;
// }
// Log.i (LOG_TAG, "Contact deleted successfully");
// 
// } catch (RemoteException e) {
// Log.e(LOG_TAG, "Remote exception has occurred while deleting contact");
// return ServiceStatus.ERROR_UNKNOWN;
// }
// return ServiceStatus.SUCCESS;
// }
// 
// public boolean populateContacts() {
// Log.i (LOG_TAG,"Calling populateContacts ()");
// 
// try {
// ServiceStatus status =
// ServiceStatus.fromInteger(mRemoteService.testPopulate());
// if (ServiceStatus.SUCCESS != status) {
// Log.e(LOG_TAG, "Test populate failed: " + status);
// return false;
// }
// } catch (RemoteException e) {
// Log.e(LOG_TAG, "Remote exception has occurred while populating");
// return false;
// }
// return true;
// }
// 
// public boolean fetchContact(long localContactID, Contact contact) {
// try {
// ServiceStatus status =
// ServiceStatus.fromInteger(mRemoteService.fetchContact(localContactID,
// contact));
// if (ServiceStatus.SUCCESS != status) {
// Log.e(LOG_TAG, "Fetch contact failed: " + status);
// return false;
// }
// } catch (RemoteException e) {
// Log.e(LOG_TAG, "Remote exception has occurred while fetching contact");
// return false;
// }
// return true;
// }
// 
// public int fetchNoOfContacts() {
// Log.i (LOG_TAG,"Calling fetchNoOfContacts ()");
// try {
// int count = mRemoteService.fetchNoOfContacts();
// Log.i (LOG_TAG,"Number Of Contacts Fetched = "+ count);
// return count;
// } catch (RemoteException e) {
// Log.e(LOG_TAG, "Unable to fetch number of contacts");
// return 0;
// }
// 
// }
// public boolean fetchContactSummaryList(ArrayList<ContactSummary> list,
// int first, int count) {
// Log.i (LOG_TAG, "Calling fetchContactSummaryList ()");
// try {
// ServiceStatus status =
// ServiceStatus.fromInteger(mRemoteService.fetchContactList(list, first,
// count));
// if (ServiceStatus.SUCCESS != status) {
// Log.e(LOG_TAG, "Fetch contact list failed: " + status);
// return false;
// }
// } catch (RemoteException e) {
// Log.e(LOG_TAG,
// "Remote exception has occurred while fetching contact list");
// return false;
// }
// return true;
// }
// 
// public boolean addContactDetail(ContactDetail detail) {
// Log.i (LOG_TAG, "Calling addContactDetail ()");
// try {
// ServiceStatus status =
// ServiceStatus.fromInteger(mRemoteService.addContactDetail(detail));
// if (ServiceStatus.SUCCESS != status) {
// Log.e(LOG_TAG, "Add contact detail failed: " + status);
// return false;
// }
// Log.i (LOG_TAG, "Contact detail added successfully");
// } catch (RemoteException e) {
// Log.e(LOG_TAG,
// "Remote exception has occurred while adding contact detail");
// return false;
// }
// return true;
// }
// 
// public boolean removeContactDetail(long localDetailID) {
// Log.i (LOG_TAG, "Calling removeContactDetail ()");
// try {
// ServiceStatus status =
// ServiceStatus.fromInteger(mRemoteService.removeContactDetail(localDetailID));
// if (ServiceStatus.SUCCESS != status) {
// Log.e(LOG_TAG, "Remove contact detail failed: " + status);
// return false;
// }
// Log.i (LOG_TAG, "Contact detail removed successfully");
// } catch (RemoteException e) {
// Log.e(LOG_TAG,
// "Remote exception has occurred while removing contact detail");
// return false;
// }
// return true;
// }
// 
// public boolean modifyContactDetail(ContactDetail detail) {
// Log.i (LOG_TAG, "Calling modifyContactDetail ()");
// try {
// ServiceStatus status =
// ServiceStatus.fromInteger(mRemoteService.modifyContactDetail(detail));
// if (ServiceStatus.SUCCESS != status) {
// Log.e(LOG_TAG, "Modify contact detail failed: " + status);
// return false;
// }
// Log.i (LOG_TAG, "Modify contact details successful");
// } catch (RemoteException e) {
// Log.e("NowPlusServiceTestHelper",
// "Remote exception has occurred while modifying contact detail");
// return false;
// }
// return true;
// }
// 
public boolean register(RegistrationDetails details) {
    ServiceStatus status = ServiceStatus.SUCCESS;
    synchronized (mUiRequestLock) {
        status = startSynchronousRequest(ServiceUiRequest.REGISTRATION);
        mPeopleService.register(details);
    // status = finishSynchronousRequest(status, null);
    }
    Log.i("NowPlusServiceTestHelper", "Registration result: " + status);
    return (status.equals(ServiceStatus.SUCCESS));
}
Also used : ServiceStatus(com.vodafone360.people.service.ServiceStatus)

Example 38 with Contact

use of com.vodafone360.people.datatypes.Contact in project 360-Engine-for-Android by 360.

the class NativeContactsApiTest method testUpdateContacts.

@MediumTest
@Suppress
public void testUpdateContacts() {
    Account account = null;
    if (mUsing2xApi) {
        // Add Account for the case where we are in 2.X
        mNabApi.addPeopleAccount(PEOPLE_USERNAME);
        account = s360PeopleAccount;
        threadWait(100);
    }
    long[] ids = getContactIdsForAllAccounts();
    assertNull(ids);
    final int numRandomContacts = 10;
    for (int i = 0; i < numRandomContacts; i++) {
        long id = i;
        final ContactChange[] newContactCcList = ContactChangeHelper.randomContact(id, id, -1);
        mNabApi.addContact(account, newContactCcList);
        // expectedContactId = newIds[0].getNabContactId() + 1;
        // GET CONTACT
        ids = getContactIdsForAllAccounts();
        assertNotNull(ids);
        assertEquals(i + 1, ids.length);
        final ContactChange[] fetchedContactCcList = mNabApi.getContact(ids[i]);
        assertNotNull(fetchedContactCcList);
        // UPDATE
        final ContactChange[] updateCcList = ContactChangeHelper.randomContactUpdate(fetchedContactCcList);
        assertNotNull(updateCcList);
        assertTrue(updateCcList.length > 0);
        final ContactChange[] updatedIdsCcList = mNabApi.updateContact(updateCcList);
        verifyUpdateContactIds(fetchedContactCcList, updateCcList, updatedIdsCcList);
        final ContactChange[] updatedContactCcList = ContactChangeHelper.generatedUpdatedContact(newContactCcList, updateCcList);
        ids = getContactIdsForAllAccounts();
        assertNotNull(ids);
        assertEquals(i + 1, ids.length);
        final ContactChange[] fetchedUpdatedContactCcList = mNabApi.getContact(ids[i]);
        assertNotNull(fetchedUpdatedContactCcList);
        if (!ContactChangeHelper.areUnsortedChangeListsEqual(updatedContactCcList, fetchedUpdatedContactCcList, false)) {
            // Print update
            Log.e(LOG_TAG, "UPDATE FAILED: Print of initial contact follows");
            ContactChangeHelper.printContactChangeList(fetchedContactCcList);
            Log.e(LOG_TAG, "UPDATE FAILED: Print of failed update follows:");
            ContactChangeHelper.printContactChangeList(updateCcList);
            // fail test at this point
            assertFalse(true);
        }
    }
    // DELETE
    final int idCount = ids.length;
    for (int i = 0; i < idCount; i++) {
        mNabApi.removeContact(ids[i]);
    }
    ids = getContactIdsForAllAccounts();
    assertNull(ids);
}
Also used : Account(com.vodafone360.people.engine.contactsync.NativeContactsApi.Account) ContactChange(com.vodafone360.people.engine.contactsync.ContactChange) Suppress(android.test.suitebuilder.annotation.Suppress) MediumTest(android.test.suitebuilder.annotation.MediumTest)

Example 39 with Contact

use of com.vodafone360.people.datatypes.Contact in project 360-Engine-for-Android by 360.

the class NativeExporterTest method testMultipleExportsToNativeWithDeletedContacts.

/**
 * Tests multiple exports to native with deleted contacts.
 */
@Suppress
public void testMultipleExportsToNativeWithDeletedContacts() {
    // add contacts on People side and sync them to native side
    final int NEW_CONTACTS_COUNT = 30;
    final NativeContactsApiMockup nativeMockup = new NativeContactsApiMockup();
    final PeopleContactsApiMockup peopleMockup = new PeopleContactsApiMockup(null);
    // add new contacts syncable contact on People side
    feedPeopleContactsApiWithNewSyncableContacts(peopleMockup, NEW_CONTACTS_COUNT);
    long[] nativeIdsFromPeople = peopleMockup.getNativeContactsIds();
    // shall be null because our PeopleContactsApiMockup will add them once synced
    assertEquals(null, nativeIdsFromPeople);
    long[] localIds = peopleMockup.getNativeSyncableContactIds();
    assertEquals(NEW_CONTACTS_COUNT, localIds.length);
    long[] nativeIds = nativeMockup.getContactIds(null);
    assertEquals(null, nativeIds);
    // perform the export to native
    runNativeExporter(nativeMockup, peopleMockup);
    // check both sides are updated correctly
    nativeIdsFromPeople = peopleMockup.getNativeContactsIds();
    assertEquals(NEW_CONTACTS_COUNT, nativeIdsFromPeople.length);
    nativeIds = nativeMockup.getContactIds(null);
    assertEquals(NEW_CONTACTS_COUNT, nativeIds.length);
    localIds = peopleMockup.getNativeSyncableContactIds();
    assertEquals(null, localIds);
    assertTrue(NativeImporterTest.compareNativeAndPeopleContactsList(nativeMockup, null, peopleMockup));
    // delete half of contacts on People side
    peopleMockup.setSyncableDeletedContact(1);
    peopleMockup.setSyncableDeletedContact(2);
    peopleMockup.setSyncableDeletedContact(5);
    peopleMockup.setSyncableDeletedContact(8);
    peopleMockup.setSyncableDeletedContact(9);
    peopleMockup.setSyncableDeletedContact(13);
    peopleMockup.setSyncableDeletedContact(18);
    peopleMockup.setSyncableDeletedContact(19);
    peopleMockup.setSyncableDeletedContact(22);
    peopleMockup.setSyncableDeletedContact(23);
    peopleMockup.setSyncableDeletedContact(24);
    peopleMockup.setSyncableDeletedContact(25);
    peopleMockup.setSyncableDeletedContact(26);
    peopleMockup.setSyncableDeletedContact(28);
    peopleMockup.setSyncableDeletedContact(30);
    nativeIdsFromPeople = peopleMockup.getNativeContactsIds();
    assertEquals(NEW_CONTACTS_COUNT / 2, nativeIdsFromPeople.length);
    localIds = peopleMockup.getNativeSyncableContactIds();
    assertEquals(NEW_CONTACTS_COUNT / 2, localIds.length);
    // perform the export to native
    runNativeExporter(nativeMockup, peopleMockup);
    // check both sides are updated correctly
    nativeIds = nativeMockup.getContactIds(null);
    assertEquals(NEW_CONTACTS_COUNT / 2, nativeIds.length);
    localIds = peopleMockup.getNativeSyncableContactIds();
    assertEquals(null, localIds);
    assertTrue(NativeImporterTest.compareNativeAndPeopleContactsList(nativeMockup, null, peopleMockup));
}
Also used : NativeContactsApiMockup(com.vodafone360.people.tests.engine.contactsync.NativeImporterTest.NativeContactsApiMockup) Suppress(android.test.suitebuilder.annotation.Suppress)

Example 40 with Contact

use of com.vodafone360.people.datatypes.Contact in project 360-Engine-for-Android by 360.

the class NativeExporterTest method testExportToNativeWithUpdatedContacts_deletedDetails.

/**
 * Tests export to native with added details to a existing contacts.
 */
@Suppress
public void testExportToNativeWithUpdatedContacts_deletedDetails() {
    // add contacts on People side and sync them to native side
    final int NEW_CONTACTS_COUNT = 30;
    final NativeContactsApiMockup nativeMockup = new NativeContactsApiMockup();
    final PeopleContactsApiMockup peopleMockup = new PeopleContactsApiMockup(null);
    // add new contacts syncable contact on People side
    feedPeopleContactsApiWithNewSyncableContacts(peopleMockup, NEW_CONTACTS_COUNT);
    long[] nativeIdsFromPeople = peopleMockup.getNativeContactsIds();
    // shall be null because our PeopleContactsApiMockup will add them once synced
    assertEquals(null, nativeIdsFromPeople);
    long[] localIds = peopleMockup.getNativeSyncableContactIds();
    assertEquals(NEW_CONTACTS_COUNT, localIds.length);
    long[] nativeIds = nativeMockup.getContactIds(null);
    assertEquals(null, nativeIds);
    // perform the export to native
    runNativeExporter(nativeMockup, peopleMockup);
    // check both sides are updated correctly
    nativeIdsFromPeople = peopleMockup.getNativeContactsIds();
    assertEquals(NEW_CONTACTS_COUNT, nativeIdsFromPeople.length);
    nativeIds = nativeMockup.getContactIds(null);
    assertEquals(NEW_CONTACTS_COUNT, nativeIds.length);
    localIds = peopleMockup.getNativeSyncableContactIds();
    assertEquals(null, localIds);
    assertTrue(NativeImporterTest.compareNativeAndPeopleContactsList(nativeMockup, null, peopleMockup));
    // pick few contacts and add details to them
    ContactChange[][] addedDetails = new ContactChange[3][];
    addedDetails[0] = getNewDetails(peopleMockup, 1);
    peopleMockup.updateNativeContact(addedDetails[0]);
    addedDetails[1] = getNewDetails(peopleMockup, 2);
    peopleMockup.updateNativeContact(addedDetails[1]);
    addedDetails[2] = getNewDetails(peopleMockup, 5);
    peopleMockup.updateNativeContact(addedDetails[2]);
    // perform the export to native
    runNativeExporter(nativeMockup, peopleMockup);
    // check both sides are equivalent
    localIds = peopleMockup.getNativeSyncableContactIds();
    assertEquals(null, localIds);
    assertTrue(NativeImporterTest.compareNativeAndPeopleContactsList(nativeMockup, null, peopleMockup));
    // remove the previously added details
    for (int i = 0; i < addedDetails.length; i++) {
        forceDetailsAsDeleteType(addedDetails[i]);
        peopleMockup.updateNativeContact(addedDetails[i]);
    }
    // perform the export to native
    runNativeExporter(nativeMockup, peopleMockup);
    // check both sides are equivalent
    localIds = peopleMockup.getNativeSyncableContactIds();
    assertEquals(null, localIds);
    assertTrue(NativeImporterTest.compareNativeAndPeopleContactsList(nativeMockup, null, peopleMockup));
}
Also used : NativeContactsApiMockup(com.vodafone360.people.tests.engine.contactsync.NativeImporterTest.NativeContactsApiMockup) ContactChange(com.vodafone360.people.engine.contactsync.ContactChange) Suppress(android.test.suitebuilder.annotation.Suppress)

Aggregations

Contact (com.vodafone360.people.datatypes.Contact)109 ServiceStatus (com.vodafone360.people.service.ServiceStatus)107 ContactDetail (com.vodafone360.people.datatypes.ContactDetail)100 ArrayList (java.util.ArrayList)62 MediumTest (android.test.suitebuilder.annotation.MediumTest)50 Suppress (android.test.suitebuilder.annotation.Suppress)39 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)34 Cursor (android.database.Cursor)31 ContactChange (com.vodafone360.people.engine.contactsync.ContactChange)22 SmallTest (android.test.suitebuilder.annotation.SmallTest)19 ContactSummary (com.vodafone360.people.datatypes.ContactSummary)18 SQLException (android.database.SQLException)15 ContentValues (android.content.ContentValues)14 VCardHelper (com.vodafone360.people.datatypes.VCardHelper)13 Uri (android.net.Uri)11 ContactChangeInfo (com.vodafone360.people.database.tables.ContactChangeLogTable.ContactChangeInfo)11 ContactIdInfo (com.vodafone360.people.database.tables.ContactsTable.ContactIdInfo)11 ContactChanges (com.vodafone360.people.datatypes.ContactChanges)11 SQLiteException (android.database.sqlite.SQLiteException)9 ContactsTable (com.vodafone360.people.database.tables.ContactsTable)9