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