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