Search in sources :

Example 1 with PeopleContactsApi

use of com.vodafone360.people.engine.contactsync.PeopleContactsApi in project 360-Engine-for-Android by 360.

the class PeopleContactsApiTest method testUpdateGetNativeContactWithDelete.

/**
     * Tests the updateNativeContact() method when a detail is deleted outside.
     */
public void testUpdateGetNativeContactWithDelete() {
    final long NATIVE_ID = 15;
    PeopleContactsApi pca = new PeopleContactsApi(mDatabaseHelper);
    // the database is empty, it shall not return any ids
    assertNull(pca.getNativeContactsIds());
    // let's add a contact
    ContactChange[] contact = filterContactChanges(ContactChangeHelper.randomContact(ContactChange.INVALID_ID, ContactChange.INVALID_ID, NATIVE_ID));
    assertTrue(pca.addNativeContact(contact));
    // check that it exists
    long[] ids = pca.getNativeContactsIds();
    assertEquals(1, ids.length);
    assertEquals(NATIVE_ID, ids[0]);
    // get the contact back
    ContactChange[] savedContact = pca.getContact(NATIVE_ID);
    assertNotNull(savedContact);
    // let's add a detail
    ContactChange addedDetail = new ContactChange(ContactChange.KEY_VCARD_PHONE, "+3300000", ContactChange.FLAG_HOME);
    addedDetail.setNabContactId(NATIVE_ID);
    addedDetail.setType(ContactChange.TYPE_ADD_DETAIL);
    addedDetail.setInternalContactId(savedContact[0].getInternalContactId());
    ContactChange[] updates = { addedDetail };
    pca.updateNativeContact(updates);
    // get the contact back
    savedContact = pca.getContact(NATIVE_ID);
    assertNotNull(savedContact);
    assertEquals(contact.length + 1, savedContact.length);
    // find the localId of the detail to delete
    int index = findContactChangeIndex(savedContact, addedDetail);
    assertTrue(index != -1);
    addedDetail.setInternalDetailId(savedContact[index].getInternalDetailId());
    // remove the detail as if coming from user or server (i.e. not yet synced to native)
    ArrayList<ContactDetail> detailList = new ArrayList<ContactDetail>(1);
    detailList.add(mDatabaseHelper.convertContactChange(addedDetail));
    mDatabaseHelper.syncDeleteContactDetailList(detailList, false, true);
    // get the contact back
    savedContact = pca.getContact(NATIVE_ID);
    assertNotNull(savedContact);
    // the deleted detail shall be given
    assertEquals(contact.length + 1, savedContact.length);
    // check that one contact has the deleted flag
    int deletedIndex = -1;
    int deletedCount = 0;
    for (int i = 0; i < savedContact.length; i++) {
        if (savedContact[i].getType() == ContactChange.TYPE_DELETE_DETAIL) {
            deletedIndex = i;
            deletedCount++;
        }
    }
    // there shall be only one deleted detail
    assertEquals(1, deletedCount);
    assertEquals(addedDetail.getInternalDetailId(), savedContact[deletedIndex].getInternalDetailId());
}
Also used : ContactDetail(com.vodafone360.people.datatypes.ContactDetail) ArrayList(java.util.ArrayList) PeopleContactsApi(com.vodafone360.people.engine.contactsync.PeopleContactsApi) ContactChange(com.vodafone360.people.engine.contactsync.ContactChange)

Example 2 with PeopleContactsApi

use of com.vodafone360.people.engine.contactsync.PeopleContactsApi in project 360-Engine-for-Android by 360.

the class PeopleContactsApiTest method testGetContact.

/**
     * Tests the getContact() method.
     */
public void testGetContact() {
    PeopleContactsApi pca = new PeopleContactsApi(mDatabaseHelper);
    // the database is empty, it shall not return any contact
    assertNull(pca.getContact(10));
}
Also used : PeopleContactsApi(com.vodafone360.people.engine.contactsync.PeopleContactsApi)

Example 3 with PeopleContactsApi

use of com.vodafone360.people.engine.contactsync.PeopleContactsApi in project 360-Engine-for-Android by 360.

the class PeopleContactsApiTest method testAddGetNativeContact.

/**
     * Tests the methods sequence addNativeContact() then getNativeContact().
     */
@Suppress
public void testAddGetNativeContact() {
    final long NATIVE_ID = 15;
    PeopleContactsApi pca = new PeopleContactsApi(mDatabaseHelper);
    // the database is empty, it shall not return any ids
    assertNull(pca.getNativeContactsIds());
    // let's add a contact
    ContactChange[] contact = filterContactChanges(ContactChangeHelper.randomContact(ContactChange.INVALID_ID, ContactChange.INVALID_ID, NATIVE_ID));
    assertTrue(pca.addNativeContact(contact));
    // check that it exists
    long[] ids = pca.getNativeContactsIds();
    assertEquals(1, ids.length);
    assertEquals(NATIVE_ID, ids[0]);
    // get the contact back
    final ContactChange[] savedContact = pca.getContact(NATIVE_ID);
    assertNotNull(savedContact);
    // compare with the original one
    assertTrue(ContactChangeHelper.areChangeListsEqual(contact, savedContact, false));
}
Also used : PeopleContactsApi(com.vodafone360.people.engine.contactsync.PeopleContactsApi) ContactChange(com.vodafone360.people.engine.contactsync.ContactChange) Suppress(android.test.suitebuilder.annotation.Suppress)

Example 4 with PeopleContactsApi

use of com.vodafone360.people.engine.contactsync.PeopleContactsApi in project 360-Engine-for-Android by 360.

the class PeopleContactsApiTest method testGetNativeContactsIds.

/**
     * Tests the getNativeContactsIds() method.
     */
public void testGetNativeContactsIds() {
    PeopleContactsApi pca = new PeopleContactsApi(mDatabaseHelper);
    // the database is empty, it shall not return any ids
    assertNull(pca.getNativeContactsIds());
}
Also used : PeopleContactsApi(com.vodafone360.people.engine.contactsync.PeopleContactsApi)

Example 5 with PeopleContactsApi

use of com.vodafone360.people.engine.contactsync.PeopleContactsApi in project 360-Engine-for-Android by 360.

the class PeopleContactsApiTest method testDeleteNativeContact.

/**
     * Tests the deleteNativeContact() method.
     */
public void testDeleteNativeContact() {
    PeopleContactsApi pca = new PeopleContactsApi(mDatabaseHelper);
    // check invalid id
    assertFalse(pca.deleteNativeContact(-1, false));
    // check non existing id
    assertFalse(pca.deleteNativeContact(10, false));
}
Also used : PeopleContactsApi(com.vodafone360.people.engine.contactsync.PeopleContactsApi)

Aggregations

PeopleContactsApi (com.vodafone360.people.engine.contactsync.PeopleContactsApi)9 ContactChange (com.vodafone360.people.engine.contactsync.ContactChange)6 Suppress (android.test.suitebuilder.annotation.Suppress)2 ArrayList (java.util.ArrayList)2 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)1 SQLiteStatement (android.database.sqlite.SQLiteStatement)1 ContactIdInfo (com.vodafone360.people.database.tables.ContactsTable.ContactIdInfo)1 ContactDetail (com.vodafone360.people.datatypes.ContactDetail)1