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