1 /*
2  * Copyright (C) 2011 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.internal.telephony;
18 
19 import android.test.AndroidTestCase;
20 import android.test.suitebuilder.annotation.SmallTest;
21 
22 import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
23 
24 import org.junit.Test;
25 
26 import java.util.ArrayList;
27 
28 /**
29  * Test cases for the IntRangeManager class.
30  */
31 public 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          */
startUpdate()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          */
addRange(int startId, int endId, boolean selected)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          */
finishUpdate()77         protected boolean finishUpdate() {
78             flags |= FLAG_FINISH_UPDATE_CALLED;
79             return finishUpdateReturnValue;
80         }
81 
82         /** Reset the object for the next test case. */
reset()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          */
tryAddRanges(int startId, int endId, boolean selected)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
testEmptyRangeManager()102     public void testEmptyRangeManager() {
103         TestIntRangeManager testManager = new TestIntRangeManager();
104         assertEquals("expecting empty configlist", 0, testManager.mConfigList.size());
105     }
106 
checkConfigInfo(SmsBroadcastConfigInfo info, int fromServiceId, int toServiceId, int fromCodeScheme, int toCodeScheme, boolean selected)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
testAddSingleChannel()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
testRemoveSingleChannel()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
testRemoveBadChannel()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
testAddTwoChannels()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
testOverlappingChannels()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
testOverlappingChannels2()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
testOverlappingChannels3()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
testMultipleOverlappingChannels()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
testAddSingleDigitChannels()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
testAddSingleDigitChannels2()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
testAddSingleDigitChannels3()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
testAddSingleDigitChannels4()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 
verifyAddChannel( TestIntRangeManager testManager, int startId, int endId, String client)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
testAddSingleDigitChannels5()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
testClientInsert()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
testAddTwoSameChannelsDifferentClient()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
testAddTwoSameChannelsSameClient()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
testAddTwoChannels2()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
testAddThreeChannels()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
testAddThreeChannels2()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
testAddChannels()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
testAddChannels2()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
testAddChannels3()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
testAddChannels4()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
testAddChannels5()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