1ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulospackage com.android.contacts.interactions; 2ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 3ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulosimport android.content.ContentValues; 4ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulosimport android.provider.CallLog.Calls; 5ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulosimport android.test.AndroidTestCase; 6ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 7ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulosimport java.util.ArrayList; 8ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulosimport java.util.List; 9ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 10ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos/** 11ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos * Tests {@link CallLogInteractionsLoader} 12ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos */ 13ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulospublic class CallLogInteractionsLoaderTest extends AndroidTestCase { 14ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 15ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos public void testCallLogInteractions_pruneDuplicates_containsDuplicates() { 16ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos List<ContactInteraction> interactions = new ArrayList<>(); 17ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos int maxToRetrieve = 5; 18ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 19ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos ContentValues interactionOneValues = new ContentValues(); 20ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactionOneValues.put(Calls.DATE, 1L); 21ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactions.add(new CallLogInteraction(interactionOneValues)); 22ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 23ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos ContentValues interactionTwoValues = new ContentValues(); 24ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactionTwoValues.put(Calls.DATE, 1L); 25ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactions.add(new CallLogInteraction(interactionTwoValues)); 26ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 27ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactions = CallLogInteractionsLoader.pruneDuplicateCallLogInteractions(interactions, 28ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos maxToRetrieve); 29ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos assertEquals(1, interactions.size()); 30ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos } 31ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 32ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos public void testCallLogInteractions_pruneDuplicates_containsNoDuplicates() { 33ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos List<ContactInteraction> interactions = new ArrayList<>(); 34ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos int maxToRetrieve = 5; 35ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 36ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos ContentValues interactionOneValues = new ContentValues(); 37ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactionOneValues.put(Calls.DATE, 1L); 38ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactions.add(new CallLogInteraction(interactionOneValues)); 39ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 40ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos ContentValues interactionTwoValues = new ContentValues(); 41ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactionTwoValues.put(Calls.DATE, 5L); 42ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactions.add(new CallLogInteraction(interactionTwoValues)); 43ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 44ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactions = CallLogInteractionsLoader.pruneDuplicateCallLogInteractions(interactions, 45ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos maxToRetrieve); 46ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos assertEquals(2, interactions.size()); 47ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos } 48ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 49ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos public void testCallLogInteractions_maxToRetrieve() { 50ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos List<ContactInteraction> interactions = new ArrayList<>(); 51ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos int maxToRetrieve = 1; 52ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 53ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos ContentValues interactionOneValues = new ContentValues(); 54ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactionOneValues.put(Calls.DATE, 1L); 55ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactions.add(new CallLogInteraction(interactionOneValues)); 56ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 57ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos ContentValues interactionTwoValues = new ContentValues(); 58ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactionTwoValues.put(Calls.DATE, 5L); 59ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactions.add(new CallLogInteraction(interactionTwoValues)); 60ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos 61ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos interactions = CallLogInteractionsLoader.pruneDuplicateCallLogInteractions(interactions, 62ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos maxToRetrieve); 63ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos assertEquals(1, interactions.size()); 64ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos } 65ab840448dd00ce3f02ec7317df69b24613ade8a9Paul Soulos} 66