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
17package com.android.internal.telephony;
18
19import android.test.AndroidTestCase;
20
21import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
22
23import java.util.ArrayList;
24
25/**
26 * Test cases for the IntRangeManager class.
27 */
28public class IntRangeManagerTest extends AndroidTestCase {
29
30    private static final int SMS_CB_CODE_SCHEME_MIN = 0;
31    private static final int SMS_CB_CODE_SCHEME_MAX = 255;
32
33    private static final int FLAG_START_UPDATE_CALLED   = 0x01;
34    private static final int FLAG_ADD_RANGE_CALLED      = 0x02;
35    private static final int FLAG_FINISH_UPDATE_CALLED  = 0x04;
36
37    private static final int ALL_FLAGS_SET = FLAG_START_UPDATE_CALLED | FLAG_ADD_RANGE_CALLED |
38            FLAG_FINISH_UPDATE_CALLED;
39
40    /** Dummy IntRangeManager for testing. */
41    class TestIntRangeManager extends IntRangeManager {
42        ArrayList<SmsBroadcastConfigInfo> mConfigList =
43                new ArrayList<SmsBroadcastConfigInfo>();
44
45        int flags;
46        boolean finishUpdateReturnValue = true;
47
48        /**
49         * Called when the list of enabled ranges has changed. This will be
50         * followed by zero or more calls to {@link #addRange} followed by
51         * a call to {@link #finishUpdate}.
52         */
53        protected void startUpdate() {
54            mConfigList.clear();
55            flags |= FLAG_START_UPDATE_CALLED;
56        }
57
58        /**
59         * Called after {@link #startUpdate} to indicate a range of enabled
60         * values.
61         * @param startId the first id included in the range
62         * @param endId the last id included in the range
63         */
64        protected void addRange(int startId, int endId, boolean selected) {
65            mConfigList.add(new SmsBroadcastConfigInfo(startId, endId,
66                        SMS_CB_CODE_SCHEME_MIN, SMS_CB_CODE_SCHEME_MAX, selected));
67            flags |= FLAG_ADD_RANGE_CALLED;
68        }
69
70        /**
71         * Called to indicate the end of a range update started by the
72         * previous call to {@link #startUpdate}.
73         */
74        protected boolean finishUpdate() {
75            flags |= FLAG_FINISH_UPDATE_CALLED;
76            return finishUpdateReturnValue;
77        }
78
79        /** Reset the object for the next test case. */
80        void reset() {
81            flags = 0;
82            mConfigList.clear();
83        }
84
85        /** overwrite to not call populateAllRanges, so tryAddRanges called by enable
86         * do not populate previously added ranges
87         */
88        protected boolean tryAddRanges(int startId, int endId, boolean selected) {
89
90            startUpdate();
91            //populateAllRanges();
92            // This is the new range to be enabled
93            addRange(startId, endId, selected); // adds to mConfigList
94            return finishUpdate();
95        }
96    }
97
98    public void testEmptyRangeManager() {
99        TestIntRangeManager testManager = new TestIntRangeManager();
100        assertEquals("expecting empty configlist", 0, testManager.mConfigList.size());
101    }
102
103    private void checkConfigInfo(SmsBroadcastConfigInfo info, int fromServiceId,
104            int toServiceId, int fromCodeScheme, int toCodeScheme, boolean selected) {
105        assertEquals("fromServiceId", fromServiceId, info.getFromServiceId());
106        assertEquals("toServiceId", toServiceId, info.getToServiceId());
107        assertEquals("fromCodeScheme", fromCodeScheme, info.getFromCodeScheme());
108        assertEquals("toCodeScheme", toCodeScheme, info.getToCodeScheme());
109        assertEquals("selected", selected, info.isSelected());
110    }
111
112    public void testAddSingleChannel() {
113        TestIntRangeManager testManager = new TestIntRangeManager();
114        assertEquals("flags before test", 0, testManager.flags);
115        assertTrue("enabling range", testManager.enableRange(123, 123, "client1"));
116        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
117        assertEquals("configlist size", 1, testManager.mConfigList.size());
118        checkConfigInfo(testManager.mConfigList.get(0), 123, 123, SMS_CB_CODE_SCHEME_MIN,
119                SMS_CB_CODE_SCHEME_MAX, true);
120        testManager.reset();
121        assertTrue("updating ranges", testManager.updateRanges());
122        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
123        assertEquals("configlist size", 1, testManager.mConfigList.size());
124        checkConfigInfo(testManager.mConfigList.get(0), 123, 123, SMS_CB_CODE_SCHEME_MIN,
125                SMS_CB_CODE_SCHEME_MAX, true);
126    }
127
128    public void testRemoveSingleChannel() {
129        TestIntRangeManager testManager = new TestIntRangeManager();
130        assertTrue("enabling range", testManager.enableRange(123, 123, "client1"));
131        assertEquals("flags after enable", ALL_FLAGS_SET, testManager.flags);
132        assertEquals("configlist size", 1, testManager.mConfigList.size());
133        testManager.reset();
134        assertTrue("disabling range", testManager.disableRange(123, 123, "client1"));
135        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
136                testManager.flags);
137        assertEquals("configlist size", 0, testManager.mConfigList.size());
138        testManager.reset();
139        assertTrue("updating ranges", testManager.updateRanges());
140        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
141                testManager.flags);
142        assertEquals("configlist size", 0, testManager.mConfigList.size());
143    }
144
145    public void testRemoveBadChannel() {
146        TestIntRangeManager testManager = new TestIntRangeManager();
147        assertFalse("disabling missing range", testManager.disableRange(123, 123, "client1"));
148        assertEquals("flags after test", 0, testManager.flags);
149        assertEquals("configlist size", 0, testManager.mConfigList.size());
150    }
151
152    public void testAddTwoChannels() {
153        TestIntRangeManager testManager = new TestIntRangeManager();
154        assertEquals("flags before test", 0, testManager.flags);
155        assertTrue("enabling range 1", testManager.enableRange(100, 120, "client1"));
156        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
157        assertEquals("configlist size", 1, testManager.mConfigList.size());
158        checkConfigInfo(testManager.mConfigList.get(0), 100, 120, SMS_CB_CODE_SCHEME_MIN,
159                SMS_CB_CODE_SCHEME_MAX, true);
160        testManager.reset();
161        assertTrue("enabling range 2", testManager.enableRange(200, 250, "client2"));
162        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
163        assertEquals("configlist size", 1, testManager.mConfigList.size());
164        checkConfigInfo(testManager.mConfigList.get(0), 200, 250, SMS_CB_CODE_SCHEME_MIN,
165                SMS_CB_CODE_SCHEME_MAX, true);
166        testManager.reset();
167        assertTrue("updating ranges", testManager.updateRanges());
168        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
169        assertEquals("configlist size", 2, testManager.mConfigList.size());
170        checkConfigInfo(testManager.mConfigList.get(0), 100, 120, SMS_CB_CODE_SCHEME_MIN,
171                SMS_CB_CODE_SCHEME_MAX, true);
172        checkConfigInfo(testManager.mConfigList.get(1), 200, 250, SMS_CB_CODE_SCHEME_MIN,
173                SMS_CB_CODE_SCHEME_MAX, true);
174    }
175
176    public void testOverlappingChannels() {
177        TestIntRangeManager testManager = new TestIntRangeManager();
178        assertEquals("flags before test", 0, testManager.flags);
179        assertTrue("enabling range 1", testManager.enableRange(100, 200, "client1"));
180        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
181        assertEquals("configlist size", 1, testManager.mConfigList.size());
182        checkConfigInfo(testManager.mConfigList.get(0), 100, 200, SMS_CB_CODE_SCHEME_MIN,
183                SMS_CB_CODE_SCHEME_MAX, true);
184        testManager.reset();
185        assertTrue("enabling range 2", testManager.enableRange(150, 250, "client2"));
186        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
187        assertEquals("configlist size", 1, testManager.mConfigList.size());
188        checkConfigInfo(testManager.mConfigList.get(0), 201, 250, SMS_CB_CODE_SCHEME_MIN,
189                SMS_CB_CODE_SCHEME_MAX, true);
190        testManager.reset();
191        assertTrue("updating ranges", testManager.updateRanges());
192        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
193        assertEquals("configlist size", 1, testManager.mConfigList.size());
194        checkConfigInfo(testManager.mConfigList.get(0), 100, 250, SMS_CB_CODE_SCHEME_MIN,
195                SMS_CB_CODE_SCHEME_MAX, true);
196        testManager.reset();
197        assertTrue("disabling range 1", testManager.disableRange(100, 200, "client1"));
198        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
199        assertEquals("configlist size", 1, testManager.mConfigList.size());
200        checkConfigInfo(testManager.mConfigList.get(0), 150, 250, SMS_CB_CODE_SCHEME_MIN,
201                SMS_CB_CODE_SCHEME_MAX, true);
202        testManager.reset();
203        assertTrue("disabling range 2", testManager.disableRange(150, 250, "client2"));
204        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
205                testManager.flags);
206        assertEquals("configlist size", 0, testManager.mConfigList.size());
207        testManager.reset();
208        assertTrue("updating ranges", testManager.updateRanges());
209        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
210                testManager.flags);
211        assertEquals("configlist size", 0, testManager.mConfigList.size());
212    }
213
214    public void testOverlappingChannels2() {
215        TestIntRangeManager testManager = new TestIntRangeManager();
216        assertEquals("flags before test", 0, testManager.flags);
217        assertTrue("enabling range 1", testManager.enableRange(100, 200, "client1"));
218        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
219        assertEquals("configlist size", 1, testManager.mConfigList.size());
220        checkConfigInfo(testManager.mConfigList.get(0), 100, 200, SMS_CB_CODE_SCHEME_MIN,
221                SMS_CB_CODE_SCHEME_MAX, true);
222        testManager.reset();
223        assertTrue("enabling range 2", testManager.enableRange(150, 250, "client2"));
224        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
225        assertEquals("configlist size", 1, testManager.mConfigList.size());
226        checkConfigInfo(testManager.mConfigList.get(0), 201, 250, SMS_CB_CODE_SCHEME_MIN,
227                SMS_CB_CODE_SCHEME_MAX, true);
228        testManager.reset();
229        assertTrue("disabling range 2", testManager.disableRange(150, 250, "client2"));
230        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
231        assertEquals("configlist size", 1, testManager.mConfigList.size());
232        checkConfigInfo(testManager.mConfigList.get(0), 100, 200, SMS_CB_CODE_SCHEME_MIN,
233                SMS_CB_CODE_SCHEME_MAX, true);
234        testManager.reset();
235        assertTrue("updating ranges", testManager.updateRanges());
236        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
237        assertEquals("configlist size", 1, testManager.mConfigList.size());
238        checkConfigInfo(testManager.mConfigList.get(0), 100, 200, SMS_CB_CODE_SCHEME_MIN,
239                SMS_CB_CODE_SCHEME_MAX, true);
240        testManager.reset();
241        assertTrue("disabling range 1", testManager.disableRange(100, 200, "client1"));
242        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
243                testManager.flags);
244        assertEquals("configlist size", 0, testManager.mConfigList.size());
245    }
246
247    // new [3, 6]  existing [1, 2] [5, 7]
248    public void testOverlappingChannels3() {
249        TestIntRangeManager testManager = new TestIntRangeManager();
250        assertEquals("flags before test", 0, testManager.flags);
251        assertTrue("enabling range 1", testManager.enableRange(1, 2, "client1"));
252        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
253        assertEquals("configlist size", 1, testManager.mConfigList.size());
254        checkConfigInfo(testManager.mConfigList.get(0), 1, 2, SMS_CB_CODE_SCHEME_MIN,
255                SMS_CB_CODE_SCHEME_MAX, true);
256        testManager.reset();
257        assertTrue("enabling range 2", testManager.enableRange(5, 7, "client2"));
258        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
259        assertEquals("configlist size", 1, testManager.mConfigList.size());
260        checkConfigInfo(testManager.mConfigList.get(0), 5, 7, SMS_CB_CODE_SCHEME_MIN,
261                SMS_CB_CODE_SCHEME_MAX, true);
262        testManager.reset();
263        assertTrue("enabling range 3", testManager.enableRange(3, 6, "client3"));
264        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
265        assertEquals("configlist size", 1, testManager.mConfigList.size());
266        checkConfigInfo(testManager.mConfigList.get(0), 3, 4, SMS_CB_CODE_SCHEME_MIN,
267                SMS_CB_CODE_SCHEME_MAX, true);
268        testManager.reset();
269        assertTrue("updating ranges", testManager.updateRanges());
270        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
271        assertEquals("configlist size", 1, testManager.mConfigList.size());
272        checkConfigInfo(testManager.mConfigList.get(0), 1, 7, SMS_CB_CODE_SCHEME_MIN,
273                SMS_CB_CODE_SCHEME_MAX, true);
274        testManager.reset();
275
276        // test disable
277        testManager.reset();
278        assertTrue("disabling range", testManager.disableRange(3, 6, "client3"));
279        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
280        assertEquals("configlist size", 2, testManager.mConfigList.size());
281        checkConfigInfo(testManager.mConfigList.get(0), 1, 2, SMS_CB_CODE_SCHEME_MIN,
282                SMS_CB_CODE_SCHEME_MAX, true);
283        checkConfigInfo(testManager.mConfigList.get(1), 5, 7, SMS_CB_CODE_SCHEME_MIN,
284                SMS_CB_CODE_SCHEME_MAX, true);
285
286    }
287
288    public void testMultipleOverlappingChannels() {
289        TestIntRangeManager testManager = new TestIntRangeManager();
290        assertEquals("flags before test", 0, testManager.flags);
291        assertTrue("enabling range 1", testManager.enableRange(67, 9999, "client1"));
292        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
293        assertEquals("configlist size", 1, testManager.mConfigList.size());
294        checkConfigInfo(testManager.mConfigList.get(0), 67, 9999, SMS_CB_CODE_SCHEME_MIN,
295                SMS_CB_CODE_SCHEME_MAX, true);
296        testManager.reset();
297        assertTrue("enabling range 2", testManager.enableRange(150, 250, "client2"));
298        assertEquals("flags after test", 0, testManager.flags);
299        assertEquals("configlist size", 0, testManager.mConfigList.size());
300        testManager.reset();
301        assertTrue("enabling range 3", testManager.enableRange(25, 75, "client3"));
302        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
303        assertEquals("configlist size", 1, testManager.mConfigList.size());
304        checkConfigInfo(testManager.mConfigList.get(0), 25, 66, SMS_CB_CODE_SCHEME_MIN,
305                SMS_CB_CODE_SCHEME_MAX, true);
306        testManager.reset();
307        assertTrue("enabling range 4", testManager.enableRange(12, 500, "client4"));
308        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
309        assertEquals("configlist size", 1, testManager.mConfigList.size());
310        checkConfigInfo(testManager.mConfigList.get(0), 12, 24, SMS_CB_CODE_SCHEME_MIN,
311                SMS_CB_CODE_SCHEME_MAX, true);
312        testManager.reset();
313        assertTrue("enabling range 5", testManager.enableRange(8000, 9998, "client5"));
314        assertEquals("flags after test", 0, testManager.flags);
315        assertEquals("configlist size", 0, testManager.mConfigList.size());
316        testManager.reset();
317        assertTrue("enabling range 6", testManager.enableRange(50000, 65535, "client6"));
318        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
319        assertEquals("configlist size", 1, testManager.mConfigList.size());
320        checkConfigInfo(testManager.mConfigList.get(0), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
321                SMS_CB_CODE_SCHEME_MAX, true);
322        testManager.reset();
323        assertTrue("updating ranges", testManager.updateRanges());
324        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
325        assertEquals("configlist size", 2, testManager.mConfigList.size());
326        checkConfigInfo(testManager.mConfigList.get(0), 12, 9999, SMS_CB_CODE_SCHEME_MIN,
327                SMS_CB_CODE_SCHEME_MAX, true);
328        checkConfigInfo(testManager.mConfigList.get(1), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
329                SMS_CB_CODE_SCHEME_MAX, true);
330        testManager.reset();
331        assertTrue("disabling range 1", testManager.disableRange(67, 9999, "client1"));
332        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
333        assertEquals("configlist size", 3, testManager.mConfigList.size());
334        checkConfigInfo(testManager.mConfigList.get(0), 12, 500, SMS_CB_CODE_SCHEME_MIN,
335                SMS_CB_CODE_SCHEME_MAX, true);
336        checkConfigInfo(testManager.mConfigList.get(1), 8000, 9998, SMS_CB_CODE_SCHEME_MIN,
337                SMS_CB_CODE_SCHEME_MAX, true);
338        checkConfigInfo(testManager.mConfigList.get(2), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
339                SMS_CB_CODE_SCHEME_MAX, true);
340        testManager.reset();
341        assertTrue("updating ranges", testManager.updateRanges());
342        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
343        assertEquals("configlist size", 3, testManager.mConfigList.size());
344        checkConfigInfo(testManager.mConfigList.get(0), 12, 500, SMS_CB_CODE_SCHEME_MIN,
345                SMS_CB_CODE_SCHEME_MAX, true);
346        checkConfigInfo(testManager.mConfigList.get(1), 8000, 9998, SMS_CB_CODE_SCHEME_MIN,
347                SMS_CB_CODE_SCHEME_MAX, true);
348        checkConfigInfo(testManager.mConfigList.get(2), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
349                SMS_CB_CODE_SCHEME_MAX, true);
350        testManager.reset();
351        assertTrue("disabling range 4", testManager.disableRange(12, 500, "client4"));
352        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
353        assertEquals("configlist size", 4, testManager.mConfigList.size());
354        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
355                SMS_CB_CODE_SCHEME_MAX, true);
356        checkConfigInfo(testManager.mConfigList.get(1), 150, 250, SMS_CB_CODE_SCHEME_MIN,
357                SMS_CB_CODE_SCHEME_MAX, true);
358        checkConfigInfo(testManager.mConfigList.get(2), 8000, 9998, SMS_CB_CODE_SCHEME_MIN,
359                SMS_CB_CODE_SCHEME_MAX, true);
360        checkConfigInfo(testManager.mConfigList.get(3), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
361                SMS_CB_CODE_SCHEME_MAX, true);
362        testManager.reset();
363        assertTrue("updating ranges", testManager.updateRanges());
364        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
365        assertEquals("configlist size", 4, testManager.mConfigList.size());
366        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
367                SMS_CB_CODE_SCHEME_MAX, true);
368        checkConfigInfo(testManager.mConfigList.get(1), 150, 250, SMS_CB_CODE_SCHEME_MIN,
369                SMS_CB_CODE_SCHEME_MAX, true);
370        checkConfigInfo(testManager.mConfigList.get(2), 8000, 9998, SMS_CB_CODE_SCHEME_MIN,
371                SMS_CB_CODE_SCHEME_MAX, true);
372        checkConfigInfo(testManager.mConfigList.get(3), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
373                SMS_CB_CODE_SCHEME_MAX, true);
374        testManager.reset();
375        assertTrue("disabling range 5", testManager.disableRange(8000, 9998, "client5"));
376        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
377        assertEquals("configlist size", 3, testManager.mConfigList.size());
378        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
379                SMS_CB_CODE_SCHEME_MAX, true);
380        checkConfigInfo(testManager.mConfigList.get(1), 150, 250, SMS_CB_CODE_SCHEME_MIN,
381                SMS_CB_CODE_SCHEME_MAX, true);
382        checkConfigInfo(testManager.mConfigList.get(2), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
383                SMS_CB_CODE_SCHEME_MAX, true);
384        testManager.reset();
385        assertTrue("updating ranges", testManager.updateRanges());
386        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
387        assertEquals("configlist size", 3, testManager.mConfigList.size());
388        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
389                SMS_CB_CODE_SCHEME_MAX, true);
390        checkConfigInfo(testManager.mConfigList.get(1), 150, 250, SMS_CB_CODE_SCHEME_MIN,
391                SMS_CB_CODE_SCHEME_MAX, true);
392        checkConfigInfo(testManager.mConfigList.get(2), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
393                SMS_CB_CODE_SCHEME_MAX, true);
394        testManager.reset();
395        assertTrue("disabling range 6", testManager.disableRange(50000, 65535, "client6"));
396        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
397        assertEquals("configlist size", 2, testManager.mConfigList.size());
398        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
399                SMS_CB_CODE_SCHEME_MAX, true);
400        checkConfigInfo(testManager.mConfigList.get(1), 150, 250, SMS_CB_CODE_SCHEME_MIN,
401                SMS_CB_CODE_SCHEME_MAX, true);
402        testManager.reset();
403        assertTrue("updating ranges", testManager.updateRanges());
404        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
405        assertEquals("configlist size", 2, testManager.mConfigList.size());
406        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
407                SMS_CB_CODE_SCHEME_MAX, true);
408        checkConfigInfo(testManager.mConfigList.get(1), 150, 250, SMS_CB_CODE_SCHEME_MIN,
409                SMS_CB_CODE_SCHEME_MAX, true);
410        testManager.reset();
411        assertTrue("disabling range 2", testManager.disableRange(150, 250, "client2"));
412        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
413        assertEquals("configlist size", 1, testManager.mConfigList.size());
414        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
415                SMS_CB_CODE_SCHEME_MAX, true);
416        testManager.reset();
417        assertTrue("updating ranges", testManager.updateRanges());
418        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
419        assertEquals("configlist size", 1, testManager.mConfigList.size());
420        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
421                SMS_CB_CODE_SCHEME_MAX, true);
422        testManager.reset();
423        assertTrue("disabling range 3", testManager.disableRange(25, 75, "client3"));
424        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
425                testManager.flags);
426        assertEquals("configlist size", 0, testManager.mConfigList.size());
427        testManager.reset();
428        assertTrue("updating ranges", testManager.updateRanges());
429        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
430                testManager.flags);
431        assertEquals("configlist size", 0, testManager.mConfigList.size());
432    }
433
434    public void testAddSingleDigitChannels() {
435        TestIntRangeManager testManager = new TestIntRangeManager();
436        assertEquals("flags before test", 0, testManager.flags);
437        assertTrue("enabling range 1", testManager.enableRange(3, 5, "client1"));
438        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
439        assertEquals("configlist size", 1, testManager.mConfigList.size());
440        checkConfigInfo(testManager.mConfigList.get(0), 3, 5, SMS_CB_CODE_SCHEME_MIN,
441                SMS_CB_CODE_SCHEME_MAX, true);
442        testManager.reset();
443        assertTrue("enabling range 2", testManager.enableRange(7, 8, "client2"));
444        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
445        assertEquals("configlist size", 1, testManager.mConfigList.size());
446        checkConfigInfo(testManager.mConfigList.get(0), 7, 8, SMS_CB_CODE_SCHEME_MIN,
447                SMS_CB_CODE_SCHEME_MAX, true);
448        testManager.reset();
449        assertTrue("enabling range 3", testManager.enableRange(6, 6, "client3"));
450        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
451        assertEquals("configlist size", 1, testManager.mConfigList.size());
452        checkConfigInfo(testManager.mConfigList.get(0), 6, 6, SMS_CB_CODE_SCHEME_MIN,
453                SMS_CB_CODE_SCHEME_MAX, true);
454        testManager.reset();
455        assertTrue("updating ranges", testManager.updateRanges());
456        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
457        assertEquals("configlist size", 1, testManager.mConfigList.size());
458        checkConfigInfo(testManager.mConfigList.get(0), 3, 8, SMS_CB_CODE_SCHEME_MIN,
459                SMS_CB_CODE_SCHEME_MAX, true);
460        // test disable
461        testManager.reset();
462        assertTrue("disable range 3", testManager.disableRange(6, 6, "client3"));
463        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
464        assertEquals("configlist size", 2, testManager.mConfigList.size());
465        checkConfigInfo(testManager.mConfigList.get(0), 3, 5, SMS_CB_CODE_SCHEME_MIN,
466                SMS_CB_CODE_SCHEME_MAX, true);
467        checkConfigInfo(testManager.mConfigList.get(1), 7, 8, SMS_CB_CODE_SCHEME_MIN,
468                SMS_CB_CODE_SCHEME_MAX, true);
469        // enable
470        testManager.reset();
471        assertTrue("enabling range 4", testManager.enableRange(6, 12, "client3"));
472        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
473        assertEquals("configlist size", 1, testManager.mConfigList.size());
474        checkConfigInfo(testManager.mConfigList.get(0), 6, 12, SMS_CB_CODE_SCHEME_MIN,
475                SMS_CB_CODE_SCHEME_MAX, true);
476        testManager.reset();
477        assertTrue("updating ranges", testManager.updateRanges());
478        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
479        assertEquals("configlist size", 1, testManager.mConfigList.size());
480        checkConfigInfo(testManager.mConfigList.get(0), 3, 12, SMS_CB_CODE_SCHEME_MIN,
481                SMS_CB_CODE_SCHEME_MAX, true);
482        // test disable
483        testManager.reset();
484        assertTrue("disable range 2", testManager.disableRange(7, 8, "client2"));
485        assertEquals("flags after test", 0, testManager.flags);
486        assertEquals("configlist size", 0, testManager.mConfigList.size());
487        testManager.reset();
488        assertTrue("updating ranges", testManager.updateRanges());
489        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
490        assertEquals("configlist size", 1, testManager.mConfigList.size());
491        checkConfigInfo(testManager.mConfigList.get(0), 3, 12, SMS_CB_CODE_SCHEME_MIN,
492                SMS_CB_CODE_SCHEME_MAX, true);
493        testManager.reset();
494        assertTrue("disable range 1", testManager.disableRange(3, 5, "client1"));
495        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
496        assertEquals("configlist size", 1, testManager.mConfigList.size());
497        checkConfigInfo(testManager.mConfigList.get(0), 6, 12, SMS_CB_CODE_SCHEME_MIN,
498                SMS_CB_CODE_SCHEME_MAX, true);
499        testManager.reset();
500        assertTrue("disable range 4", testManager.disableRange(6, 12, "client3"));
501        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
502                testManager.flags);
503        assertEquals("configlist size", 0, testManager.mConfigList.size());
504    }
505
506    public void testAddSingleDigitChannels2() {
507        TestIntRangeManager testManager = new TestIntRangeManager();
508        assertEquals("flags before test", 0, testManager.flags);
509        assertTrue("enabling range 1", testManager.enableRange(2, 2, "client1"));
510        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
511        assertEquals("configlist size", 1, testManager.mConfigList.size());
512        checkConfigInfo(testManager.mConfigList.get(0), 2, 2, SMS_CB_CODE_SCHEME_MIN,
513                SMS_CB_CODE_SCHEME_MAX, true);
514        testManager.reset();
515        assertTrue("enabling range 2", testManager.enableRange(1, 1, "client2"));
516        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
517        assertEquals("configlist size", 1, testManager.mConfigList.size());
518        checkConfigInfo(testManager.mConfigList.get(0), 1, 1, SMS_CB_CODE_SCHEME_MIN,
519                SMS_CB_CODE_SCHEME_MAX, true);
520        testManager.reset();
521        assertTrue("updating ranges", testManager.updateRanges());
522        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
523        assertEquals("configlist size", 1, testManager.mConfigList.size());
524        checkConfigInfo(testManager.mConfigList.get(0), 1, 2, SMS_CB_CODE_SCHEME_MIN,
525                SMS_CB_CODE_SCHEME_MAX, true);
526    }
527
528    public void testAddSingleDigitChannels3() {
529        TestIntRangeManager testManager = new TestIntRangeManager();
530        assertEquals("flags before test", 0, testManager.flags);
531        assertTrue("enabling range 1", testManager.enableRange(1, 1, "client1"));
532        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
533        assertEquals("configlist size", 1, testManager.mConfigList.size());
534        checkConfigInfo(testManager.mConfigList.get(0), 1, 1, SMS_CB_CODE_SCHEME_MIN,
535                SMS_CB_CODE_SCHEME_MAX, true);
536        testManager.reset();
537        assertTrue("enabling range 2", testManager.enableRange(3, 5, "client2"));
538        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
539        assertEquals("configlist size", 1, testManager.mConfigList.size());
540        checkConfigInfo(testManager.mConfigList.get(0), 3, 5, SMS_CB_CODE_SCHEME_MIN,
541                SMS_CB_CODE_SCHEME_MAX, true);
542        testManager.reset();
543        assertTrue("enabling range 3", testManager.enableRange(2, 2, "client3"));
544        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
545        assertEquals("configlist size", 1, testManager.mConfigList.size());
546        checkConfigInfo(testManager.mConfigList.get(0), 2, 2, SMS_CB_CODE_SCHEME_MIN,
547                SMS_CB_CODE_SCHEME_MAX, true);
548        testManager.reset();
549        assertTrue("updating ranges", testManager.updateRanges());
550        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
551        assertEquals("configlist size", 1, testManager.mConfigList.size());
552        checkConfigInfo(testManager.mConfigList.get(0), 1, 5, SMS_CB_CODE_SCHEME_MIN,
553                SMS_CB_CODE_SCHEME_MAX, true);
554        // test disable
555        testManager.reset();
556        assertTrue("disabling range 1", testManager.disableRange(1, 1, "client1"));
557        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
558        assertEquals("configlist size", 1, testManager.mConfigList.size());
559        checkConfigInfo(testManager.mConfigList.get(0), 2, 5, SMS_CB_CODE_SCHEME_MIN,
560                SMS_CB_CODE_SCHEME_MAX, true);
561    }
562
563    public void testAddSingleDigitChannels4() {
564        TestIntRangeManager testManager = new TestIntRangeManager();
565        assertEquals("flags before test", 0, testManager.flags);
566        assertTrue("enabling range 1", testManager.enableRange(1, 1, "client1"));
567        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
568        assertEquals("configlist size", 1, testManager.mConfigList.size());
569        checkConfigInfo(testManager.mConfigList.get(0), 1, 1, SMS_CB_CODE_SCHEME_MIN,
570                SMS_CB_CODE_SCHEME_MAX, true);
571        testManager.reset();
572        assertTrue("enabling range 2", testManager.enableRange(2, 2, "client2"));
573        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
574        assertEquals("configlist size", 1, testManager.mConfigList.size());
575        checkConfigInfo(testManager.mConfigList.get(0), 2, 2, SMS_CB_CODE_SCHEME_MIN,
576                SMS_CB_CODE_SCHEME_MAX, true);
577        testManager.reset();
578        assertTrue("updating ranges", testManager.updateRanges());
579        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
580        assertEquals("configlist size", 1, testManager.mConfigList.size());
581        checkConfigInfo(testManager.mConfigList.get(0), 1, 2, SMS_CB_CODE_SCHEME_MIN,
582                SMS_CB_CODE_SCHEME_MAX, true);
583        // test disable
584        testManager.reset();
585        assertFalse("disabling range 1", testManager.disableRange(1, 2, "client1"));
586        assertEquals("flags after test", 0, testManager.flags);
587        assertEquals("configlist size",0, testManager.mConfigList.size());
588    }
589
590    private void verifyAddChannel(
591            TestIntRangeManager testManager, int startId, int endId, String client) {
592        testManager.reset();
593        assertEquals("flags before test", 0, testManager.flags);
594        assertTrue("enabling range", testManager.enableRange(startId, endId, client));
595        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
596        assertEquals("configlist size", 1, testManager.mConfigList.size());
597        checkConfigInfo(testManager.mConfigList.get(0), startId, endId, SMS_CB_CODE_SCHEME_MIN,
598                SMS_CB_CODE_SCHEME_MAX, true);
599    }
600
601    public void testAddSingleDigitChannels5() {
602        TestIntRangeManager testManager = new TestIntRangeManager();
603        for (int i = 0; i <= 10; i++) {
604            verifyAddChannel(testManager, i, i, "client1");
605        }
606        testManager.reset();
607        assertTrue("updating ranges", testManager.updateRanges());
608        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
609        assertEquals("configlist size", 1, testManager.mConfigList.size());
610        checkConfigInfo(testManager.mConfigList.get(0), 0, 10, SMS_CB_CODE_SCHEME_MIN,
611                SMS_CB_CODE_SCHEME_MAX, true);
612
613        // test disable
614        testManager.reset();
615        assertTrue("disabling range", testManager.disableRange(2, 2, "client1"));
616        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
617        assertEquals("configlist size", 2, testManager.mConfigList.size());
618        checkConfigInfo(testManager.mConfigList.get(0), 0, 1, SMS_CB_CODE_SCHEME_MIN,
619                SMS_CB_CODE_SCHEME_MAX, true);
620        checkConfigInfo(testManager.mConfigList.get(1), 3, 10, SMS_CB_CODE_SCHEME_MIN,
621                SMS_CB_CODE_SCHEME_MAX, true);
622        testManager.reset();
623        assertTrue("disabling range", testManager.disableRange(9, 9, "client1"));
624        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
625        assertEquals("configlist size", 3, testManager.mConfigList.size());
626        checkConfigInfo(testManager.mConfigList.get(0), 0, 1, SMS_CB_CODE_SCHEME_MIN,
627                SMS_CB_CODE_SCHEME_MAX, true);
628        checkConfigInfo(testManager.mConfigList.get(1), 3, 8, SMS_CB_CODE_SCHEME_MIN,
629                SMS_CB_CODE_SCHEME_MAX, true);
630        checkConfigInfo(testManager.mConfigList.get(2), 10, 10, SMS_CB_CODE_SCHEME_MIN,
631                SMS_CB_CODE_SCHEME_MAX, true);
632
633        testManager.reset();
634        assertTrue("enabling range 2", testManager.enableRange(2, 2, "client1"));
635        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
636        assertEquals("configlist size", 1, testManager.mConfigList.size());
637        checkConfigInfo(testManager.mConfigList.get(0), 2, 2, SMS_CB_CODE_SCHEME_MIN,
638                SMS_CB_CODE_SCHEME_MAX, true);
639        testManager.reset();
640        assertTrue("updating ranges", testManager.updateRanges());
641        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
642        assertEquals("configlist size", 2, testManager.mConfigList.size());
643        checkConfigInfo(testManager.mConfigList.get(0), 0, 8, SMS_CB_CODE_SCHEME_MIN,
644                SMS_CB_CODE_SCHEME_MAX, true);
645        checkConfigInfo(testManager.mConfigList.get(1), 10, 10, SMS_CB_CODE_SCHEME_MIN,
646                SMS_CB_CODE_SCHEME_MAX, true);
647    }
648
649    // new [1, 5] existing [1, 2] [1, 4] [1, 7] [2, 5]
650    public void testClientInsert() {
651        TestIntRangeManager testManager = new TestIntRangeManager();
652        assertEquals("flags before test", 0, testManager.flags);
653        assertTrue("enabling range 1", testManager.enableRange(1, 2, "client1"));
654        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
655        assertEquals("configlist size", 1, testManager.mConfigList.size());
656        checkConfigInfo(testManager.mConfigList.get(0), 1, 2, SMS_CB_CODE_SCHEME_MIN,
657                SMS_CB_CODE_SCHEME_MAX, true);
658        testManager.reset();
659        assertTrue("enabling range 2", testManager.enableRange(1, 4, "client2"));
660        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
661        assertEquals("configlist size", 1, testManager.mConfigList.size());
662        checkConfigInfo(testManager.mConfigList.get(0), 3, 4, SMS_CB_CODE_SCHEME_MIN,
663                SMS_CB_CODE_SCHEME_MAX, true);
664        testManager.reset();
665        assertTrue("enabling range 3", testManager.enableRange(2, 5, "client2"));
666        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
667        assertEquals("configlist size", 1, testManager.mConfigList.size());
668        checkConfigInfo(testManager.mConfigList.get(0), 5, 5, SMS_CB_CODE_SCHEME_MIN,
669                SMS_CB_CODE_SCHEME_MAX, true);
670        testManager.reset();
671        assertTrue("enabling range 4", testManager.enableRange(1, 7, "client2"));
672        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
673        assertEquals("configlist size", 1, testManager.mConfigList.size());
674        checkConfigInfo(testManager.mConfigList.get(0), 6, 7, SMS_CB_CODE_SCHEME_MIN,
675                SMS_CB_CODE_SCHEME_MAX, true);
676        testManager.reset();
677        assertTrue("enabling range 5", testManager.enableRange(1, 5, "client2"));
678        assertEquals("flags after test", 0, testManager.flags);
679        assertEquals("configlist size", 0, testManager.mConfigList.size());
680        testManager.reset();
681        assertTrue("updating ranges", testManager.updateRanges());
682        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
683        assertEquals("configlist size", 1, testManager.mConfigList.size());
684        checkConfigInfo(testManager.mConfigList.get(0), 1, 7, SMS_CB_CODE_SCHEME_MIN,
685                SMS_CB_CODE_SCHEME_MAX, true);
686        // test disable
687        testManager.reset();
688        assertTrue("disabling range 5", testManager.disableRange(1, 5, "client2"));
689        assertEquals("flags after test", 0, testManager.flags);
690        assertEquals("configlist size", 0, testManager.mConfigList.size());
691        testManager.reset();
692    }
693
694    public void testAddTwoSameChannelsDifferentClient() {
695        TestIntRangeManager testManager = new TestIntRangeManager();
696        assertEquals("flags before test", 0, testManager.flags);
697        assertTrue("enabling range 1", testManager.enableRange(1, 5, "client1"));
698        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
699        assertEquals("configlist size", 1, testManager.mConfigList.size());
700        checkConfigInfo(testManager.mConfigList.get(0), 1, 5, SMS_CB_CODE_SCHEME_MIN,
701                SMS_CB_CODE_SCHEME_MAX, true);
702        testManager.reset();
703        assertTrue("enabling range 2", testManager.enableRange(1, 5, "client2"));
704        assertEquals("flags after test", 0, testManager.flags);
705        assertEquals("configlist size", 0, testManager.mConfigList.size());
706
707        testManager.reset();
708        assertTrue("updating ranges", testManager.updateRanges());
709        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
710        assertEquals("configlist size", 1, testManager.mConfigList.size());
711        checkConfigInfo(testManager.mConfigList.get(0), 1, 5, SMS_CB_CODE_SCHEME_MIN,
712                SMS_CB_CODE_SCHEME_MAX, true);
713        // now try disabling/deleting "client2" only
714        testManager.reset();
715        assertTrue("disabling range 1", testManager.disableRange(1, 5, "client2"));
716        assertEquals("flags after test", 0, testManager.flags);
717        assertEquals("configlist size", 0, testManager.mConfigList.size());
718        testManager.reset();
719        assertTrue("updating ranges", testManager.updateRanges());
720        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
721        assertEquals("configlist size", 1, testManager.mConfigList.size());
722        checkConfigInfo(testManager.mConfigList.get(0), 1, 5, SMS_CB_CODE_SCHEME_MIN,
723                SMS_CB_CODE_SCHEME_MAX, true);
724    }
725
726    public void testAddTwoSameChannelsSameClient() {
727        TestIntRangeManager testManager = new TestIntRangeManager();
728        assertEquals("flags before test", 0, testManager.flags);
729        assertTrue("enabling range 1", testManager.enableRange(1, 1, "client1"));
730        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
731        assertEquals("configlist size", 1, testManager.mConfigList.size());
732        checkConfigInfo(testManager.mConfigList.get(0), 1, 1, SMS_CB_CODE_SCHEME_MIN,
733                SMS_CB_CODE_SCHEME_MAX, true);
734        testManager.reset();
735        assertTrue("enabling range 2", testManager.enableRange(1, 1, "client1"));
736        assertEquals("flags after test", 0, testManager.flags);
737        assertEquals("configlist size", 0, testManager.mConfigList.size());
738
739        testManager.reset();
740        assertTrue("updating ranges", testManager.updateRanges());
741        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
742        assertEquals("configlist size", 1, testManager.mConfigList.size());
743        checkConfigInfo(testManager.mConfigList.get(0), 1, 1, SMS_CB_CODE_SCHEME_MIN,
744                SMS_CB_CODE_SCHEME_MAX, true);
745        // now try disabling/deleting
746        testManager.reset();
747        // trying to delete non-existing "client2"
748        assertFalse("disabling range 2", testManager.disableRange(1, 1, "client2"));
749        assertEquals("flags after test", 0, testManager.flags);
750        assertEquals("configlist size", 0, testManager.mConfigList.size());
751        testManager.reset();
752        // delete "client1"
753        assertTrue("disabling range 1", testManager.disableRange(1, 1, "client1"));
754        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
755                testManager.flags);
756        assertEquals("configlist size", 0, testManager.mConfigList.size());
757        testManager.reset();
758        assertTrue("updating ranges", testManager.updateRanges());
759        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
760                testManager.flags);
761        assertEquals("configlist size", 0, testManager.mConfigList.size());
762    }
763
764    public void testAddTwoChannels2() {
765        // test non contiguous case where 2nd range precedes 2nd range
766        TestIntRangeManager testManager = new TestIntRangeManager();
767        assertEquals("flags before test", 0, testManager.flags);
768        assertTrue("enabling range 1", testManager.enableRange(200, 250, "client1"));
769        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
770        assertEquals("configlist size", 1, testManager.mConfigList.size());
771        checkConfigInfo(testManager.mConfigList.get(0), 200, 250, SMS_CB_CODE_SCHEME_MIN,
772                SMS_CB_CODE_SCHEME_MAX, true);
773        testManager.reset();
774        assertTrue("enabling range 2", testManager.enableRange(100, 120, "client1"));
775        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
776        assertEquals("configlist size", 1, testManager.mConfigList.size());
777        checkConfigInfo(testManager.mConfigList.get(0), 100, 120, SMS_CB_CODE_SCHEME_MIN,
778                SMS_CB_CODE_SCHEME_MAX, true);
779        testManager.reset();
780        assertTrue("updating ranges", testManager.updateRanges());
781        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
782        assertEquals("configlist size", 2, testManager.mConfigList.size());
783        checkConfigInfo(testManager.mConfigList.get(0), 100, 120, SMS_CB_CODE_SCHEME_MIN,
784                SMS_CB_CODE_SCHEME_MAX, true);
785        checkConfigInfo(testManager.mConfigList.get(1), 200, 250, SMS_CB_CODE_SCHEME_MIN,
786                SMS_CB_CODE_SCHEME_MAX, true);
787    }
788
789    // new [2, 10] existing [1, 4] [7, 15]
790    public void testAddThreeChannels() {
791        // 3rd range can include first two ranges.  Test combine case.
792        TestIntRangeManager testManager = new TestIntRangeManager();
793        assertEquals("flags before test", 0, testManager.flags);
794        assertTrue("enabling range 1", testManager.enableRange(1, 4, "client1"));
795        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
796        assertEquals("configlist size", 1, testManager.mConfigList.size());
797        checkConfigInfo(testManager.mConfigList.get(0), 1, 4, SMS_CB_CODE_SCHEME_MIN,
798                SMS_CB_CODE_SCHEME_MAX, true);
799        testManager.reset();
800        assertTrue("enabling range 2", testManager.enableRange(7, 15, "client2"));
801        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
802        assertEquals("configlist size", 1, testManager.mConfigList.size());
803        checkConfigInfo(testManager.mConfigList.get(0), 7, 15, SMS_CB_CODE_SCHEME_MIN,
804                SMS_CB_CODE_SCHEME_MAX, true);
805        testManager.reset();
806        assertTrue("enabling range 3", testManager.enableRange(2, 10, "client3"));
807        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
808        assertEquals("configlist size", 1, testManager.mConfigList.size());
809        checkConfigInfo(testManager.mConfigList.get(0), 5, 6, SMS_CB_CODE_SCHEME_MIN,
810                SMS_CB_CODE_SCHEME_MAX, true);
811        testManager.reset();
812        assertTrue("updating ranges", testManager.updateRanges());
813        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
814        assertEquals("configlist size", 1, testManager.mConfigList.size());
815        checkConfigInfo(testManager.mConfigList.get(0), 1, 15, SMS_CB_CODE_SCHEME_MIN,
816                SMS_CB_CODE_SCHEME_MAX, true);
817
818        //test disable
819        testManager.reset();
820        assertTrue("disabling range 2", testManager.disableRange(7, 15, "client2"));
821        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
822        assertEquals("configlist size", 1, testManager.mConfigList.size());
823        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
824                SMS_CB_CODE_SCHEME_MAX, true);
825        testManager.reset();
826        assertTrue("disabling range 1", testManager.disableRange(1, 4, "client1"));
827        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
828        assertEquals("configlist size", 1, testManager.mConfigList.size());
829        checkConfigInfo(testManager.mConfigList.get(0), 2, 10, SMS_CB_CODE_SCHEME_MIN,
830                SMS_CB_CODE_SCHEME_MAX, true);
831        testManager.reset();
832        assertTrue("disabling range 3", testManager.disableRange(2, 10, "client3"));
833        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
834                testManager.flags);
835        assertEquals("configlist size", 0, testManager.mConfigList.size());
836    }
837
838    public void testAddThreeChannels2() {
839        // 3rd range can include first two ranges.  Test combine case.
840        TestIntRangeManager testManager = new TestIntRangeManager();
841        assertEquals("flags before test", 0, testManager.flags);
842        assertTrue("enabling range 1", testManager.enableRange(2, 3, "client1"));
843        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
844        assertEquals("configlist size", 1, testManager.mConfigList.size());
845        checkConfigInfo(testManager.mConfigList.get(0), 2, 3, SMS_CB_CODE_SCHEME_MIN,
846                SMS_CB_CODE_SCHEME_MAX, true);
847        testManager.reset();
848        assertTrue("enabling range 2", testManager.enableRange(5, 6, "client2"));
849        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
850        assertEquals("configlist size", 1, testManager.mConfigList.size());
851        checkConfigInfo(testManager.mConfigList.get(0), 5, 6, SMS_CB_CODE_SCHEME_MIN,
852                SMS_CB_CODE_SCHEME_MAX, true);
853        testManager.reset();
854        assertTrue("enabling range 3", testManager.enableRange(1, 10, "client3"));
855        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
856        assertEquals("configlist size", 1, testManager.mConfigList.size());
857        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
858                SMS_CB_CODE_SCHEME_MAX, true);
859        testManager.reset();
860        assertTrue("updating ranges", testManager.updateRanges());
861        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
862        assertEquals("configlist size", 1, testManager.mConfigList.size());
863        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
864                SMS_CB_CODE_SCHEME_MAX, true);
865
866        //test disable:
867        testManager.reset();
868        assertTrue("disabling range 3", testManager.disableRange(1, 10, "client3"));
869        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
870        assertEquals("configlist size", 2, testManager.mConfigList.size());
871        checkConfigInfo(testManager.mConfigList.get(0), 2, 3, SMS_CB_CODE_SCHEME_MIN,
872                SMS_CB_CODE_SCHEME_MAX, true);
873        checkConfigInfo(testManager.mConfigList.get(1), 5, 6, SMS_CB_CODE_SCHEME_MIN,
874                SMS_CB_CODE_SCHEME_MAX, true);
875
876        testManager.reset();
877        assertTrue("updating ranges", testManager.updateRanges());
878        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
879        assertEquals("configlist size", 2, testManager.mConfigList.size());
880        checkConfigInfo(testManager.mConfigList.get(0), 2, 3, SMS_CB_CODE_SCHEME_MIN,
881                SMS_CB_CODE_SCHEME_MAX, true);
882        checkConfigInfo(testManager.mConfigList.get(1), 5, 6, SMS_CB_CODE_SCHEME_MIN,
883                SMS_CB_CODE_SCHEME_MAX, true);
884
885    }
886
887    public void testAddChannels() {
888        TestIntRangeManager testManager = new TestIntRangeManager();
889        assertEquals("flags before test", 0, testManager.flags);
890        assertTrue("enabling range 1", testManager.enableRange(2, 3, "client1"));
891        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
892        assertEquals("configlist size", 1, testManager.mConfigList.size());
893        checkConfigInfo(testManager.mConfigList.get(0), 2, 3, SMS_CB_CODE_SCHEME_MIN,
894                SMS_CB_CODE_SCHEME_MAX, true);
895        testManager.reset();
896        assertTrue("enabling range 2", testManager.enableRange(5, 6, "client2"));
897        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
898        assertEquals("configlist size", 1, testManager.mConfigList.size());
899        checkConfigInfo(testManager.mConfigList.get(0), 5, 6, SMS_CB_CODE_SCHEME_MIN,
900                SMS_CB_CODE_SCHEME_MAX, true);
901        testManager.reset();
902        assertTrue("enabling range 3", testManager.enableRange(14, 15, "client3"));
903        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
904        assertEquals("configlist size", 1, testManager.mConfigList.size());
905        checkConfigInfo(testManager.mConfigList.get(0), 14, 15, SMS_CB_CODE_SCHEME_MIN,
906                SMS_CB_CODE_SCHEME_MAX, true);
907        testManager.reset();
908        assertTrue("enabling range 4", testManager.enableRange(1, 10, "client4"));
909        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
910        assertEquals("configlist size", 1, testManager.mConfigList.size());
911        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
912                SMS_CB_CODE_SCHEME_MAX, true);
913        testManager.reset();
914        assertTrue("updating ranges", testManager.updateRanges());
915        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
916        assertEquals("configlist size", 2, testManager.mConfigList.size());
917        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
918                SMS_CB_CODE_SCHEME_MAX, true);
919        checkConfigInfo(testManager.mConfigList.get(1), 14, 15, SMS_CB_CODE_SCHEME_MIN,
920                SMS_CB_CODE_SCHEME_MAX, true);
921        // test disable
922        testManager.reset();
923        assertTrue("disabling range 4", testManager.disableRange(1, 10, "client4"));
924        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
925        assertEquals("configlist size", 3, testManager.mConfigList.size());
926        checkConfigInfo(testManager.mConfigList.get(0), 2, 3, SMS_CB_CODE_SCHEME_MIN,
927                SMS_CB_CODE_SCHEME_MAX, true);
928        checkConfigInfo(testManager.mConfigList.get(1), 5, 6, SMS_CB_CODE_SCHEME_MIN,
929                SMS_CB_CODE_SCHEME_MAX, true);
930        checkConfigInfo(testManager.mConfigList.get(2), 14, 15, SMS_CB_CODE_SCHEME_MIN,
931                SMS_CB_CODE_SCHEME_MAX, true);
932    }
933
934    public void testAddChannels2() {
935        TestIntRangeManager testManager = new TestIntRangeManager();
936        assertEquals("flags before test", 0, testManager.flags);
937        assertTrue("enabling range 1", testManager.enableRange(2, 3, "client1"));
938        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
939        assertEquals("configlist size", 1, testManager.mConfigList.size());
940        checkConfigInfo(testManager.mConfigList.get(0), 2, 3, SMS_CB_CODE_SCHEME_MIN,
941                SMS_CB_CODE_SCHEME_MAX, true);
942        testManager.reset();
943        assertTrue("enabling range 2", testManager.enableRange(5, 15, "client2"));
944        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
945        assertEquals("configlist size", 1, testManager.mConfigList.size());
946        checkConfigInfo(testManager.mConfigList.get(0), 5, 15, SMS_CB_CODE_SCHEME_MIN,
947                SMS_CB_CODE_SCHEME_MAX, true);
948        testManager.reset();
949        assertTrue("enabling range 3", testManager.enableRange(1, 10, "client3"));
950        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
951        assertEquals("configlist size", 1, testManager.mConfigList.size());
952        checkConfigInfo(testManager.mConfigList.get(0), 1, 4, SMS_CB_CODE_SCHEME_MIN,
953                SMS_CB_CODE_SCHEME_MAX, true);
954        testManager.reset();
955        assertTrue("updating ranges", testManager.updateRanges());
956        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
957        assertEquals("configlist size", 1, testManager.mConfigList.size());
958        checkConfigInfo(testManager.mConfigList.get(0), 1, 15, SMS_CB_CODE_SCHEME_MIN,
959                SMS_CB_CODE_SCHEME_MAX, true);
960        // test disable
961        testManager.reset();
962        assertTrue("disabling range 2", testManager.disableRange(5, 15, "client2"));
963        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
964        assertEquals("configlist size", 1, testManager.mConfigList.size());
965        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
966                SMS_CB_CODE_SCHEME_MAX, true);
967        testManager.reset();
968        assertTrue("disabling range 1", testManager.disableRange(2, 3, "client1"));
969        assertEquals("flags after test", 0, testManager.flags);
970        assertEquals("configlist size", 0, testManager.mConfigList.size());
971        testManager.reset();
972        assertTrue("disabling range 3", testManager.disableRange(1, 10, "client3"));
973        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
974                testManager.flags);
975        assertEquals("configlist size", 0, testManager.mConfigList.size());
976    }
977
978
979    public void testAddChannels3() {
980        TestIntRangeManager testManager = new TestIntRangeManager();
981        assertEquals("flags before test", 0, testManager.flags);
982        assertTrue("enabling range 1", testManager.enableRange(1, 4, "client1"));
983        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
984        assertEquals("configlist size", 1, testManager.mConfigList.size());
985        checkConfigInfo(testManager.mConfigList.get(0), 1, 4, SMS_CB_CODE_SCHEME_MIN,
986                SMS_CB_CODE_SCHEME_MAX, true);
987        testManager.reset();
988        assertEquals("flags before test", 0, testManager.flags);
989        assertTrue("enabling range 2", testManager.enableRange(7, 8, "client2"));
990        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
991        assertEquals("configlist size", 1, testManager.mConfigList.size());
992        checkConfigInfo(testManager.mConfigList.get(0), 7, 8, SMS_CB_CODE_SCHEME_MIN,
993                SMS_CB_CODE_SCHEME_MAX, true);
994        testManager.reset();
995        assertTrue("enabling range 3", testManager.enableRange(2, 10, "client3"));
996        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
997        assertEquals("configlist size", 1, testManager.mConfigList.size());
998        checkConfigInfo(testManager.mConfigList.get(0), 5, 10, SMS_CB_CODE_SCHEME_MIN,
999                SMS_CB_CODE_SCHEME_MAX, true);
1000        testManager.reset();
1001        assertTrue("updating ranges", testManager.updateRanges());
1002        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1003        assertEquals("configlist size", 1, testManager.mConfigList.size());
1004        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
1005                SMS_CB_CODE_SCHEME_MAX, true);
1006        // test disable
1007        testManager.reset();
1008        assertEquals("flags before test", 0, testManager.flags);
1009        assertTrue("disabling range 2", testManager.disableRange(7, 8, "client2"));
1010        assertEquals("flags after test", 0, testManager.flags);
1011        assertEquals("configlist size", 0, testManager.mConfigList.size());
1012    }
1013
1014    public void testAddChannels4() {
1015        // new [2, 10] existing [1, 4] [6, 6] [8, 9] [12, 14]
1016        TestIntRangeManager testManager = new TestIntRangeManager();
1017        assertEquals("flags before test", 0, testManager.flags);
1018        assertTrue("enabling range 1", testManager.enableRange(1, 4, "client1"));
1019        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1020        assertEquals("configlist size", 1, testManager.mConfigList.size());
1021        checkConfigInfo(testManager.mConfigList.get(0), 1, 4, SMS_CB_CODE_SCHEME_MIN,
1022                SMS_CB_CODE_SCHEME_MAX, true);
1023        testManager.reset();
1024        assertEquals("flags before test", 0, testManager.flags);
1025        assertTrue("enabling range 2", testManager.enableRange(6, 6, "client2"));
1026        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1027        assertEquals("configlist size", 1, testManager.mConfigList.size());
1028        checkConfigInfo(testManager.mConfigList.get(0), 6, 6, SMS_CB_CODE_SCHEME_MIN,
1029                SMS_CB_CODE_SCHEME_MAX, true);
1030        testManager.reset();
1031        assertEquals("flags before test", 0, testManager.flags);
1032        assertTrue("enabling range 3", testManager.enableRange(8, 9, "client3"));
1033        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1034        assertEquals("configlist size", 1, testManager.mConfigList.size());
1035        checkConfigInfo(testManager.mConfigList.get(0), 8, 9, SMS_CB_CODE_SCHEME_MIN,
1036                SMS_CB_CODE_SCHEME_MAX, true);
1037        testManager.reset();
1038        assertEquals("flags before test", 0, testManager.flags);
1039        assertTrue("enabling range 4", testManager.enableRange(12, 14, "client4"));
1040        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1041        assertEquals("configlist size", 1, testManager.mConfigList.size());
1042        checkConfigInfo(testManager.mConfigList.get(0), 12, 14, SMS_CB_CODE_SCHEME_MIN,
1043                SMS_CB_CODE_SCHEME_MAX, true);
1044        testManager.reset();
1045        assertTrue("enabling range 5", testManager.enableRange(2, 10, "client5"));
1046        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1047        assertEquals("configlist size", 1, testManager.mConfigList.size());
1048        checkConfigInfo(testManager.mConfigList.get(0), 5, 10, SMS_CB_CODE_SCHEME_MIN,
1049                SMS_CB_CODE_SCHEME_MAX, true);
1050        testManager.reset();
1051        assertTrue("updating ranges", testManager.updateRanges());
1052        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1053        assertEquals("configlist size", 2, testManager.mConfigList.size());
1054        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
1055                SMS_CB_CODE_SCHEME_MAX, true);
1056        checkConfigInfo(testManager.mConfigList.get(1), 12, 14, SMS_CB_CODE_SCHEME_MIN,
1057                SMS_CB_CODE_SCHEME_MAX, true);
1058
1059        // test disable
1060        testManager.reset();
1061        assertTrue("disabling range", testManager.disableRange(8, 9, "client3"));
1062        assertEquals("flags after test", 0, testManager.flags);
1063        assertEquals("configlist size", 0, testManager.mConfigList.size());
1064        testManager.reset();
1065        assertTrue("updating ranges", testManager.updateRanges());
1066        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1067        assertEquals("configlist size", 2, testManager.mConfigList.size());
1068        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
1069                SMS_CB_CODE_SCHEME_MAX, true);
1070        checkConfigInfo(testManager.mConfigList.get(1), 12, 14, SMS_CB_CODE_SCHEME_MIN,
1071                SMS_CB_CODE_SCHEME_MAX, true);
1072        testManager.reset();
1073        assertTrue("disabling range", testManager.disableRange(2, 10, "client5"));
1074        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1075        assertEquals("configlist size", 3, testManager.mConfigList.size());
1076        checkConfigInfo(testManager.mConfigList.get(0), 1, 4, SMS_CB_CODE_SCHEME_MIN,
1077                SMS_CB_CODE_SCHEME_MAX, true);
1078        checkConfigInfo(testManager.mConfigList.get(1), 6, 6, SMS_CB_CODE_SCHEME_MIN,
1079                SMS_CB_CODE_SCHEME_MAX, true);
1080        checkConfigInfo(testManager.mConfigList.get(2), 12, 14, SMS_CB_CODE_SCHEME_MIN,
1081                SMS_CB_CODE_SCHEME_MAX, true);
1082        testManager.reset();
1083        assertTrue("updating ranges", testManager.updateRanges());
1084        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1085        assertEquals("configlist size", 3, testManager.mConfigList.size());
1086        checkConfigInfo(testManager.mConfigList.get(0), 1, 4, SMS_CB_CODE_SCHEME_MIN,
1087                SMS_CB_CODE_SCHEME_MAX, true);
1088        checkConfigInfo(testManager.mConfigList.get(1), 6, 6, SMS_CB_CODE_SCHEME_MIN,
1089                SMS_CB_CODE_SCHEME_MAX, true);
1090        checkConfigInfo(testManager.mConfigList.get(2), 12, 14, SMS_CB_CODE_SCHEME_MIN,
1091                SMS_CB_CODE_SCHEME_MAX, true);
1092    }
1093
1094    public void testAddChannels5() {
1095        // range already enclosed in existing: new [3, 3], [1,3]
1096        TestIntRangeManager testManager = new TestIntRangeManager();
1097        assertEquals("flags before test", 0, testManager.flags);
1098        assertTrue("enabling range 1", testManager.enableRange(1, 3, "client1"));
1099        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1100        assertEquals("configlist size", 1, testManager.mConfigList.size());
1101        checkConfigInfo(testManager.mConfigList.get(0), 1, 3, SMS_CB_CODE_SCHEME_MIN,
1102                SMS_CB_CODE_SCHEME_MAX, true);
1103        testManager.reset();
1104        assertEquals("flags before test", 0, testManager.flags);
1105        assertTrue("enabling range 2", testManager.enableRange(3, 3, "client1"));
1106        assertEquals("flags after test", 0, testManager.flags);
1107        assertEquals("configlist size", 0, testManager.mConfigList.size());
1108        testManager.reset();
1109        assertTrue("updating ranges", testManager.updateRanges());
1110        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1111        assertEquals("configlist size", 1, testManager.mConfigList.size());
1112        checkConfigInfo(testManager.mConfigList.get(0), 1, 3, SMS_CB_CODE_SCHEME_MIN,
1113                SMS_CB_CODE_SCHEME_MAX, true);
1114
1115        // test disable
1116        testManager.reset();
1117        assertTrue("disabling range", testManager.disableRange(3, 3, "client1"));
1118        assertEquals("flags after test", 0, testManager.flags);
1119        assertEquals("configlist size", 0, testManager.mConfigList.size());
1120        testManager.reset();
1121        assertTrue("updating ranges", testManager.updateRanges());
1122        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1123        assertEquals("configlist size", 1, testManager.mConfigList.size());
1124        checkConfigInfo(testManager.mConfigList.get(0), 1, 3, SMS_CB_CODE_SCHEME_MIN,
1125                SMS_CB_CODE_SCHEME_MAX, true);
1126        testManager.reset();
1127        assertTrue("disabling range", testManager.disableRange(1, 3, "client1"));
1128        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
1129                testManager.flags);
1130        assertEquals("configlist size", 0, testManager.mConfigList.size());
1131        testManager.reset();
1132        assertTrue("updating ranges", testManager.updateRanges());
1133        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
1134                testManager.flags);
1135        assertEquals("configlist size", 0, testManager.mConfigList.size());
1136    }
1137}
1138