UtilsTests.java revision 6e25f480f8dbf18f32248f3666be1e9dd52d3225
16e25f480f8dbf18f32248f3666be1e9dd52d3225Erik/*
26e25f480f8dbf18f32248f3666be1e9dd52d3225Erik * Copyright (C) 2010 The Android Open Source Project
36e25f480f8dbf18f32248f3666be1e9dd52d3225Erik *
46e25f480f8dbf18f32248f3666be1e9dd52d3225Erik * Licensed under the Apache License, Version 2.0 (the "License");
56e25f480f8dbf18f32248f3666be1e9dd52d3225Erik * you may not use this file except in compliance with the License.
66e25f480f8dbf18f32248f3666be1e9dd52d3225Erik * You may obtain a copy of the License at
76e25f480f8dbf18f32248f3666be1e9dd52d3225Erik *
86e25f480f8dbf18f32248f3666be1e9dd52d3225Erik *      http://www.apache.org/licenses/LICENSE-2.0
96e25f480f8dbf18f32248f3666be1e9dd52d3225Erik *
106e25f480f8dbf18f32248f3666be1e9dd52d3225Erik * Unless required by applicable law or agreed to in writing, software
116e25f480f8dbf18f32248f3666be1e9dd52d3225Erik * distributed under the License is distributed on an "AS IS" BASIS,
126e25f480f8dbf18f32248f3666be1e9dd52d3225Erik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136e25f480f8dbf18f32248f3666be1e9dd52d3225Erik * See the License for the specific language governing permissions and
146e25f480f8dbf18f32248f3666be1e9dd52d3225Erik * limitations under the License.
156e25f480f8dbf18f32248f3666be1e9dd52d3225Erik */
166e25f480f8dbf18f32248f3666be1e9dd52d3225Erik
17ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chanpackage com.android.calendar;
18ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan
19ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chanimport android.database.Cursor;
20ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chanimport android.database.MatrixCursor;
21ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chanimport android.test.suitebuilder.annotation.SmallTest;
22ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan
23ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chanimport junit.framework.TestCase;
24ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan
25ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chanimport java.util.HashMap;
26ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chanimport java.util.Map;
27ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan
28ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan/**
29ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan * Test class for verifying helper functions in Calendar's Utils
30ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan *
31ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan * You can run these tests with the following command:
32ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan * "adb shell am instrument -w -e class com.android.calendar.UtilsTests
33ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan *          com.android.calendar.tests/android.test.InstrumentationTestRunner"
34ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan */
35ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chanpublic class UtilsTests extends TestCase {
36ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    HashMap<String, Boolean> mIsDuplicateName;
37ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    HashMap<String, Boolean> mIsDuplicateNameExpected;
38ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    MatrixCursor mDuplicateNameCursor;
39ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan
40ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    private static final int NAME_COLUMN = 0;
41ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    private static final String[] DUPLICATE_NAME_COLUMNS = new String[] { "name" };
42ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    private static final String[][] DUPLICATE_NAMES = new String[][] {
43ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        {"Pepper Pots"},
44ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        {"Green Goblin"},
45ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        {"Pepper Pots"},
46ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        {"Peter Parker"},
47ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        {"Silver Surfer"},
48ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        {"John Jameson"},
49ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        {"John Jameson"},
50ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        {"Pepper Pots"}
51ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    };
52ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan
53ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    @Override
54ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    public void setUp() {
55ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        mIsDuplicateName = new HashMap<String, Boolean> ();
56ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        mDuplicateNameCursor = new MatrixCursor(DUPLICATE_NAME_COLUMNS);
57ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        for (int i = 0; i < DUPLICATE_NAMES.length; i++) {
58ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan            mDuplicateNameCursor.addRow(DUPLICATE_NAMES[i]);
59ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        }
60ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan
61ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        mIsDuplicateNameExpected = new HashMap<String, Boolean> ();
62ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        mIsDuplicateNameExpected.put("Pepper Pots", true);
63ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        mIsDuplicateNameExpected.put("Green Goblin", false);
64ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        mIsDuplicateNameExpected.put("Peter Parker", false);
65ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        mIsDuplicateNameExpected.put("Silver Surfer", false);
66ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        mIsDuplicateNameExpected.put("John Jameson", true);
67ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    }
68ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan
69ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    @Override
70ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    public void tearDown() {
71ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        mDuplicateNameCursor.close();
72ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    }
73ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan
74ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    @SmallTest
75ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    public void testCheckForDuplicateNames() {
76ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        Utils.checkForDuplicateNames(mIsDuplicateName, mDuplicateNameCursor, NAME_COLUMN);
77ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan        assertEquals(mIsDuplicateName, mIsDuplicateNameExpected);
78ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan    }
79ff6be831fc682374be6b78c13ecf5daca81f86d9Michael Chan}
80