• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2011 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.contacts.model;
18 
19 import com.google.common.collect.Lists;
20 
21 import android.os.Bundle;
22 import android.test.AndroidTestCase;
23 import android.test.MoreAsserts;
24 import android.test.suitebuilder.annotation.SmallTest;
25 
26 import java.util.List;
27 
28 /**
29  * Test case for {@link AccountWithDataSet}.
30  *
31  * adb shell am instrument -w -e class com.android.contacts.model.AccountWithDataSetTest \
32        com.android.contacts.tests/android.test.InstrumentationTestRunner
33  */
34 @SmallTest
35 public class AccountWithDataSetTest extends AndroidTestCase {
testStringifyAndUnstringify()36     public void testStringifyAndUnstringify() {
37         AccountWithDataSet a1 = new AccountWithDataSet("name1", "typeA", null);
38         AccountWithDataSet a2 = new AccountWithDataSet("name2", "typeB", null);
39         AccountWithDataSet a3 = new AccountWithDataSet("name3", "typeB", "dataset");
40 
41         // stringify() & unstringify
42         AccountWithDataSet a1r = AccountWithDataSet.unstringify(a1.stringify());
43         AccountWithDataSet a2r = AccountWithDataSet.unstringify(a2.stringify());
44         AccountWithDataSet a3r = AccountWithDataSet.unstringify(a3.stringify());
45 
46         assertEquals(a1, a1r);
47         assertEquals(a2, a2r);
48         assertEquals(a3, a3r);
49 
50         MoreAsserts.assertNotEqual(a1, a2r);
51         MoreAsserts.assertNotEqual(a1, a3r);
52 
53         MoreAsserts.assertNotEqual(a2, a1r);
54         MoreAsserts.assertNotEqual(a2, a3r);
55 
56         MoreAsserts.assertNotEqual(a3, a1r);
57         MoreAsserts.assertNotEqual(a3, a2r);
58     }
59 
testStringifyListAndUnstringify()60     public void testStringifyListAndUnstringify() {
61         AccountWithDataSet a1 = new AccountWithDataSet("name1", "typeA", null);
62         AccountWithDataSet a2 = new AccountWithDataSet("name2", "typeB", null);
63         AccountWithDataSet a3 = new AccountWithDataSet("name3", "typeB", "dataset");
64 
65         // Empty list
66         assertEquals(0, stringifyListAndUnstringify().size());
67 
68         // 1 element
69         final List<AccountWithDataSet> listA = stringifyListAndUnstringify(a1);
70         assertEquals(1, listA.size());
71         assertEquals(a1, listA.get(0));
72 
73         // 2 elements
74         final List<AccountWithDataSet> listB = stringifyListAndUnstringify(a2, a1);
75         assertEquals(2, listB.size());
76         assertEquals(a2, listB.get(0));
77         assertEquals(a1, listB.get(1));
78 
79         // 3 elements
80         final List<AccountWithDataSet> listC = stringifyListAndUnstringify(a3, a2, a1);
81         assertEquals(3, listC.size());
82         assertEquals(a3, listC.get(0));
83         assertEquals(a2, listC.get(1));
84         assertEquals(a1, listC.get(2));
85     }
86 
stringifyListAndUnstringify( AccountWithDataSet... accounts)87     private static List<AccountWithDataSet> stringifyListAndUnstringify(
88             AccountWithDataSet... accounts) {
89 
90         List<AccountWithDataSet> list = Lists.newArrayList(accounts);
91         return AccountWithDataSet.unstringifyList(AccountWithDataSet.stringifyList(list));
92     }
93 
testParcelable()94     public void testParcelable() {
95         AccountWithDataSet a1 = new AccountWithDataSet("name1", "typeA", null);
96         AccountWithDataSet a2 = new AccountWithDataSet("name2", "typeB", null);
97         AccountWithDataSet a3 = new AccountWithDataSet("name3", "typeB", "dataset");
98 
99         // Parcel them & unpercel.
100         final Bundle b = new Bundle();
101         b.putParcelable("a1", a1);
102         b.putParcelable("a2", a2);
103         b.putParcelable("a3", a3);
104 
105         AccountWithDataSet a1r = b.getParcelable("a1");
106         AccountWithDataSet a2r = b.getParcelable("a2");
107         AccountWithDataSet a3r = b.getParcelable("a3");
108 
109         assertEquals(a1, a1r);
110         assertEquals(a2, a2r);
111         assertEquals(a3, a3r);
112 
113         MoreAsserts.assertNotEqual(a1, a2r);
114         MoreAsserts.assertNotEqual(a1, a3r);
115 
116         MoreAsserts.assertNotEqual(a2, a1r);
117         MoreAsserts.assertNotEqual(a2, a3r);
118 
119         MoreAsserts.assertNotEqual(a3, a1r);
120         MoreAsserts.assertNotEqual(a3, a2r);
121     }
122 }
123