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