10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2011 The Android Open Source Project
30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License.
60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at
70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software
110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and
140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License.
150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony;
180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.test.AndroidTestCase;
200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
210825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.ArrayList;
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/**
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Test cases for the IntRangeManager class.
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class IntRangeManagerTest extends AndroidTestCase {
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private static final int SMS_CB_CODE_SCHEME_MIN = 0;
310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private static final int SMS_CB_CODE_SCHEME_MAX = 255;
320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private static final int FLAG_START_UPDATE_CALLED   = 0x01;
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private static final int FLAG_ADD_RANGE_CALLED      = 0x02;
350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private static final int FLAG_FINISH_UPDATE_CALLED  = 0x04;
360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private static final int ALL_FLAGS_SET = FLAG_START_UPDATE_CALLED | FLAG_ADD_RANGE_CALLED |
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            FLAG_FINISH_UPDATE_CALLED;
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Dummy IntRangeManager for testing. */
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    class TestIntRangeManager extends IntRangeManager {
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        ArrayList<SmsBroadcastConfigInfo> mConfigList =
430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                new ArrayList<SmsBroadcastConfigInfo>();
440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int flags;
460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        boolean finishUpdateReturnValue = true;
470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Called when the list of enabled ranges has changed. This will be
500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * followed by zero or more calls to {@link #addRange} followed by
510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * a call to {@link #finishUpdate}.
520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        protected void startUpdate() {
540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mConfigList.clear();
550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            flags |= FLAG_START_UPDATE_CALLED;
560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Called after {@link #startUpdate} to indicate a range of enabled
600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * values.
610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param startId the first id included in the range
620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param endId the last id included in the range
630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        protected void addRange(int startId, int endId, boolean selected) {
650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mConfigList.add(new SmsBroadcastConfigInfo(startId, endId,
660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        SMS_CB_CODE_SCHEME_MIN, SMS_CB_CODE_SCHEME_MAX, selected));
670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            flags |= FLAG_ADD_RANGE_CALLED;
680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Called to indicate the end of a range update started by the
720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * previous call to {@link #startUpdate}.
730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        protected boolean finishUpdate() {
750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            flags |= FLAG_FINISH_UPDATE_CALLED;
760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return finishUpdateReturnValue;
770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /** Reset the object for the next test case. */
800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        void reset() {
810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            flags = 0;
820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mConfigList.clear();
830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
8401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
8501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        /** overwrite to not call populateAllRanges, so tryAddRanges called by enable
8601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks         * do not populate previously added ranges
8701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks         */
8801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        protected boolean tryAddRanges(int startId, int endId, boolean selected) {
8901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
9001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks            startUpdate();
9101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks            //populateAllRanges();
9201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks            // This is the new range to be enabled
9301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks            addRange(startId, endId, selected); // adds to mConfigList
9401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks            return finishUpdate();
9501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        }
960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void testEmptyRangeManager() {
990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TestIntRangeManager testManager = new TestIntRangeManager();
1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("expecting empty configlist", 0, testManager.mConfigList.size());
1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private void checkConfigInfo(SmsBroadcastConfigInfo info, int fromServiceId,
1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            int toServiceId, int fromCodeScheme, int toCodeScheme, boolean selected) {
1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("fromServiceId", fromServiceId, info.getFromServiceId());
1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("toServiceId", toServiceId, info.getToServiceId());
1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("fromCodeScheme", fromCodeScheme, info.getFromCodeScheme());
1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("toCodeScheme", toCodeScheme, info.getToCodeScheme());
1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("selected", selected, info.isSelected());
1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void testAddSingleChannel() {
1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TestIntRangeManager testManager = new TestIntRangeManager();
1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags before test", 0, testManager.flags);
1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range", testManager.enableRange(123, 123, "client1"));
1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 123, 123, SMS_CB_CODE_SCHEME_MIN,
1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("updating ranges", testManager.updateRanges());
1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 123, 123, SMS_CB_CODE_SCHEME_MIN,
1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void testRemoveSingleChannel() {
1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TestIntRangeManager testManager = new TestIntRangeManager();
1300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range", testManager.enableRange(123, 123, "client1"));
1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after enable", ALL_FLAGS_SET, testManager.flags);
1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
1330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("disabling range", testManager.disableRange(123, 123, "client1"));
13501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
13601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                testManager.flags);
13701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("updating ranges", testManager.updateRanges());
1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                testManager.flags);
1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 0, testManager.mConfigList.size());
1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void testRemoveBadChannel() {
1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TestIntRangeManager testManager = new TestIntRangeManager();
1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse("disabling missing range", testManager.disableRange(123, 123, "client1"));
1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", 0, testManager.flags);
1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 0, testManager.mConfigList.size());
1500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void testAddTwoChannels() {
1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TestIntRangeManager testManager = new TestIntRangeManager();
1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags before test", 0, testManager.flags);
1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range 1", testManager.enableRange(100, 120, "client1"));
1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 100, 120, SMS_CB_CODE_SCHEME_MIN,
1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range 2", testManager.enableRange(200, 250, "client2"));
1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 200, 250, SMS_CB_CODE_SCHEME_MIN,
1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("updating ranges", testManager.updateRanges());
1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 2, testManager.mConfigList.size());
1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 100, 120, SMS_CB_CODE_SCHEME_MIN,
1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(1), 200, 250, SMS_CB_CODE_SCHEME_MIN,
1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void testOverlappingChannels() {
1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TestIntRangeManager testManager = new TestIntRangeManager();
1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags before test", 0, testManager.flags);
1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range 1", testManager.enableRange(100, 200, "client1"));
1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 100, 200, SMS_CB_CODE_SCHEME_MIN,
1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range 2", testManager.enableRange(150, 250, "client2"));
1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 201, 250, SMS_CB_CODE_SCHEME_MIN,
1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("updating ranges", testManager.updateRanges());
1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 100, 250, SMS_CB_CODE_SCHEME_MIN,
1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("disabling range 1", testManager.disableRange(100, 200, "client1"));
1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
20001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 150, 250, SMS_CB_CODE_SCHEME_MIN,
20101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("disabling range 2", testManager.disableRange(150, 250, "client2"));
20401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
20501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                testManager.flags);
20601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("updating ranges", testManager.updateRanges());
2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                testManager.flags);
2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 0, testManager.mConfigList.size());
2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void testOverlappingChannels2() {
2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TestIntRangeManager testManager = new TestIntRangeManager();
2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags before test", 0, testManager.flags);
2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range 1", testManager.enableRange(100, 200, "client1"));
2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 100, 200, SMS_CB_CODE_SCHEME_MIN,
2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range 2", testManager.enableRange(150, 250, "client2"));
2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 201, 250, SMS_CB_CODE_SCHEME_MIN,
2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("disabling range 2", testManager.disableRange(150, 250, "client2"));
2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
23201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 100, 200, SMS_CB_CODE_SCHEME_MIN,
23301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("updating ranges", testManager.updateRanges());
2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 100, 200, SMS_CB_CODE_SCHEME_MIN,
2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("disabling range 1", testManager.disableRange(100, 200, "client1"));
24201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
24301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                testManager.flags);
24401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
24501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
24601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
24701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    // new [3, 6]  existing [1, 2] [5, 7]
24801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testOverlappingChannels3() {
24901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
25001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
25101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(1, 2, "client1"));
2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
25401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 2, SMS_CB_CODE_SCHEME_MIN,
25501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
25601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
25701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(5, 7, "client2"));
25801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
25901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
26001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 5, 7, SMS_CB_CODE_SCHEME_MIN,
26101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
26201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
26301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 3", testManager.enableRange(3, 6, "client3"));
26401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
26501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
26601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 3, 4, SMS_CB_CODE_SCHEME_MIN,
26701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
26801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
26901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
27001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
27101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
27201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 7, SMS_CB_CODE_SCHEME_MIN,
27301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
27401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
27501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
27601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // test disable
27701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
27801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range", testManager.disableRange(3, 6, "client3"));
27901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
28001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 2, testManager.mConfigList.size());
28101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 2, SMS_CB_CODE_SCHEME_MIN,
28201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
28301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 5, 7, SMS_CB_CODE_SCHEME_MIN,
28401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
28501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void testMultipleOverlappingChannels() {
2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TestIntRangeManager testManager = new TestIntRangeManager();
2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags before test", 0, testManager.flags);
2910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range 1", testManager.enableRange(67, 9999, "client1"));
2920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
2930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
2940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 67, 9999, SMS_CB_CODE_SCHEME_MIN,
2950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
2960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
2970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range 2", testManager.enableRange(150, 250, "client2"));
2980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", 0, testManager.flags);
2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 0, testManager.mConfigList.size());
3000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range 3", testManager.enableRange(25, 75, "client3"));
3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 25, 66, SMS_CB_CODE_SCHEME_MIN,
3050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
3070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range 4", testManager.enableRange(12, 500, "client4"));
3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 12, 24, SMS_CB_CODE_SCHEME_MIN,
3110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range 5", testManager.enableRange(8000, 9998, "client5"));
3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", 0, testManager.flags);
3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 0, testManager.mConfigList.size());
3160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("enabling range 6", testManager.enableRange(50000, 65535, "client6"));
3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("updating ranges", testManager.updateRanges());
3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 2, testManager.mConfigList.size());
3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 12, 9999, SMS_CB_CODE_SCHEME_MIN,
3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(1), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("disabling range 1", testManager.disableRange(67, 9999, "client1"));
3320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
33301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 3, testManager.mConfigList.size());
33401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 12, 500, SMS_CB_CODE_SCHEME_MIN,
33501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
33601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 8000, 9998, SMS_CB_CODE_SCHEME_MIN,
33701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
33801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(2), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
33901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
3410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("updating ranges", testManager.updateRanges());
3420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
3430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 3, testManager.mConfigList.size());
3440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 12, 500, SMS_CB_CODE_SCHEME_MIN,
3450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(1), 8000, 9998, SMS_CB_CODE_SCHEME_MIN,
3470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(2), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
3490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
3510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("disabling range 4", testManager.disableRange(12, 500, "client4"));
3520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
35301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 4, testManager.mConfigList.size());
35401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
35501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
35601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 150, 250, SMS_CB_CODE_SCHEME_MIN,
35701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
35801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(2), 8000, 9998, SMS_CB_CODE_SCHEME_MIN,
35901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
36001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(3), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
36101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
3620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
3630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("updating ranges", testManager.updateRanges());
3640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 4, testManager.mConfigList.size());
3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
3670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(1), 150, 250, SMS_CB_CODE_SCHEME_MIN,
3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(2), 8000, 9998, SMS_CB_CODE_SCHEME_MIN,
3710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(3), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("disabling range 5", testManager.disableRange(8000, 9998, "client5"));
3760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
37701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 3, testManager.mConfigList.size());
37801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
37901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
38001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 150, 250, SMS_CB_CODE_SCHEME_MIN,
38101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
38201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(2), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
38301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
3840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
3850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("updating ranges", testManager.updateRanges());
3860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
3870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 3, testManager.mConfigList.size());
3880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
3890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(1), 150, 250, SMS_CB_CODE_SCHEME_MIN,
3910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(2), 50000, 65535, SMS_CB_CODE_SCHEME_MIN,
3930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
3940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
3950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("disabling range 6", testManager.disableRange(50000, 65535, "client6"));
3960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
39701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 2, testManager.mConfigList.size());
39801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
39901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
40001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 150, 250, SMS_CB_CODE_SCHEME_MIN,
40101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
4020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
4030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("updating ranges", testManager.updateRanges());
4040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
4050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 2, testManager.mConfigList.size());
4060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
4070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
4080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(1), 150, 250, SMS_CB_CODE_SCHEME_MIN,
4090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
4100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
4110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("disabling range 2", testManager.disableRange(150, 250, "client2"));
4120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
41401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
41501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
4170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("updating ranges", testManager.updateRanges());
4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
4200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        checkConfigInfo(testManager.mConfigList.get(0), 25, 75, SMS_CB_CODE_SCHEME_MIN,
4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SMS_CB_CODE_SCHEME_MAX, true);
4220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
4230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("disabling range 3", testManager.disableRange(25, 75, "client3"));
42401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
42501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                testManager.flags);
42601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
42701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
42801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
42901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
43001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                testManager.flags);
43101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
43201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
43301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
43401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddSingleDigitChannels() {
43501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
43601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
43701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(3, 5, "client1"));
4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 1, testManager.mConfigList.size());
44001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 3, 5, SMS_CB_CODE_SCHEME_MIN,
44101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
44201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
44301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(7, 8, "client2"));
44401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
44501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
44601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 7, 8, SMS_CB_CODE_SCHEME_MIN,
44701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
44801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
44901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 3", testManager.enableRange(6, 6, "client3"));
45001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
45101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
45201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 6, 6, SMS_CB_CODE_SCHEME_MIN,
45301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
45401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
45501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
45601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
45701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
45801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 3, 8, SMS_CB_CODE_SCHEME_MIN,
45901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
46001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // test disable
46101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
46201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disable range 3", testManager.disableRange(6, 6, "client3"));
46301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
46401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 2, testManager.mConfigList.size());
46501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 3, 5, SMS_CB_CODE_SCHEME_MIN,
46601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
46701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 7, 8, SMS_CB_CODE_SCHEME_MIN,
46801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
46901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // enable
47001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
47101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 4", testManager.enableRange(6, 12, "client3"));
47201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
47301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
47401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 6, 12, SMS_CB_CODE_SCHEME_MIN,
47501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
47601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
47701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
47801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
47901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
48001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 3, 12, SMS_CB_CODE_SCHEME_MIN,
48101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
48201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // test disable
48301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
48401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disable range 2", testManager.disableRange(7, 8, "client2"));
48501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", 0, testManager.flags);
48601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
48701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
48801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
48901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
49001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
49101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 3, 12, SMS_CB_CODE_SCHEME_MIN,
49201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
49301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
49401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disable range 1", testManager.disableRange(3, 5, "client1"));
49501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
49601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
49701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 6, 12, SMS_CB_CODE_SCHEME_MIN,
49801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
49901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
50001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disable range 4", testManager.disableRange(6, 12, "client3"));
50101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
50201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                testManager.flags);
50301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
50401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
50501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
50601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddSingleDigitChannels2() {
50701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
50801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
50901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(2, 2, "client1"));
51001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
51101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
51201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 2, 2, SMS_CB_CODE_SCHEME_MIN,
51301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
51401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
51501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(1, 1, "client2"));
51601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
51701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
51801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 1, SMS_CB_CODE_SCHEME_MIN,
51901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
52001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
52101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
52201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
52301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
52401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 2, SMS_CB_CODE_SCHEME_MIN,
52501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
52601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
52701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
52801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddSingleDigitChannels3() {
52901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
53001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
53101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(1, 1, "client1"));
53201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
53301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
53401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 1, SMS_CB_CODE_SCHEME_MIN,
53501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
53601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
53701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(3, 5, "client2"));
53801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
53901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
54001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 3, 5, SMS_CB_CODE_SCHEME_MIN,
54101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
54201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
54301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 3", testManager.enableRange(2, 2, "client3"));
54401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
54501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
54601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 2, 2, SMS_CB_CODE_SCHEME_MIN,
54701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
54801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
54901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
55001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
55101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
55201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 5, SMS_CB_CODE_SCHEME_MIN,
55301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
55401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // test disable
55501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
55601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range 1", testManager.disableRange(1, 1, "client1"));
55701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
55801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
55901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 2, 5, SMS_CB_CODE_SCHEME_MIN,
56001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
56101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
56201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
56301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddSingleDigitChannels4() {
56401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
56501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
56601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(1, 1, "client1"));
56701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
56801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
56901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 1, SMS_CB_CODE_SCHEME_MIN,
57001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
57101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
57201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(2, 2, "client2"));
57301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
57401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
57501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 2, 2, SMS_CB_CODE_SCHEME_MIN,
57601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
57701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
57801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
57901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
58001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
58101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 2, SMS_CB_CODE_SCHEME_MIN,
58201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
58301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // test disable
58401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
58501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertFalse("disabling range 1", testManager.disableRange(1, 2, "client1"));
58601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", 0, testManager.flags);
58701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size",0, testManager.mConfigList.size());
58801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
58901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
59001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    private void verifyAddChannel(
59101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks            TestIntRangeManager testManager, int startId, int endId, String client) {
59201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
59301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
59401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range", testManager.enableRange(startId, endId, client));
59501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
59601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
59701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), startId, endId, SMS_CB_CODE_SCHEME_MIN,
59801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
59901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
60001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
60101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddSingleDigitChannels5() {
60201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
60301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        for (int i = 0; i <= 10; i++) {
60401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks            verifyAddChannel(testManager, i, i, "client1");
60501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        }
60601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
60701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
60801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
60901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
61001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 0, 10, SMS_CB_CODE_SCHEME_MIN,
61101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
61201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
61301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // test disable
61401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
61501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range", testManager.disableRange(2, 2, "client1"));
61601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
61701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 2, testManager.mConfigList.size());
61801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 0, 1, SMS_CB_CODE_SCHEME_MIN,
61901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
62001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 3, 10, SMS_CB_CODE_SCHEME_MIN,
62101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
62201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
62301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range", testManager.disableRange(9, 9, "client1"));
62401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
62501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 3, testManager.mConfigList.size());
62601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 0, 1, SMS_CB_CODE_SCHEME_MIN,
62701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
62801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 3, 8, SMS_CB_CODE_SCHEME_MIN,
62901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
63001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(2), 10, 10, SMS_CB_CODE_SCHEME_MIN,
63101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
63201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
63301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
63401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(2, 2, "client1"));
63501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
63601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
63701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 2, 2, SMS_CB_CODE_SCHEME_MIN,
63801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
63901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
64001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
64101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
64201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 2, testManager.mConfigList.size());
64301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 0, 8, SMS_CB_CODE_SCHEME_MIN,
64401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
64501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 10, 10, SMS_CB_CODE_SCHEME_MIN,
64601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
64701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
64801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
64901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    // new [1, 5] existing [1, 2] [1, 4] [1, 7] [2, 5]
65001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testClientInsert() {
65101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
65201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
65301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(1, 2, "client1"));
65401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
65501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
65601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 2, SMS_CB_CODE_SCHEME_MIN,
65701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
65801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
65901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(1, 4, "client2"));
66001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
66101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
66201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 3, 4, SMS_CB_CODE_SCHEME_MIN,
66301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
66401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
66501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 3", testManager.enableRange(2, 5, "client2"));
66601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
66701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
66801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 5, 5, SMS_CB_CODE_SCHEME_MIN,
66901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
67001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
67101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 4", testManager.enableRange(1, 7, "client2"));
67201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
67301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
67401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 6, 7, SMS_CB_CODE_SCHEME_MIN,
67501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
67601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
67701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 5", testManager.enableRange(1, 5, "client2"));
67801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", 0, testManager.flags);
67901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
68001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
68101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
68201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
68301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
68401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 7, SMS_CB_CODE_SCHEME_MIN,
68501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
68601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // test disable
68701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
68801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range 5", testManager.disableRange(1, 5, "client2"));
68901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", 0, testManager.flags);
69001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
69101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
69201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
69301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
69401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddTwoSameChannelsDifferentClient() {
69501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
69601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
69701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(1, 5, "client1"));
69801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
69901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
70001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 5, SMS_CB_CODE_SCHEME_MIN,
70101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
70201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
70301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(1, 5, "client2"));
70401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", 0, testManager.flags);
70501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
70601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
70701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
70801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
70901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
71001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
71101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 5, SMS_CB_CODE_SCHEME_MIN,
71201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
71301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // now try disabling/deleting "client2" only
71401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
71501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range 1", testManager.disableRange(1, 5, "client2"));
71601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", 0, testManager.flags);
71701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
71801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
71901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
72001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
72101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
72201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 5, SMS_CB_CODE_SCHEME_MIN,
72301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
72401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
72501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
72601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddTwoSameChannelsSameClient() {
72701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
72801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
72901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(1, 1, "client1"));
73001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
73101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
73201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 1, SMS_CB_CODE_SCHEME_MIN,
73301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
73401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
73501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(1, 1, "client1"));
73601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", 0, testManager.flags);
73701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
73801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
73901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
74001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
74101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
74201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
74301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 1, SMS_CB_CODE_SCHEME_MIN,
74401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
74501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // now try disabling/deleting
74601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
74701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // trying to delete non-existing "client2"
74801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertFalse("disabling range 2", testManager.disableRange(1, 1, "client2"));
74901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", 0, testManager.flags);
75001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
75101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
75201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // delete "client1"
75301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range 1", testManager.disableRange(1, 1, "client1"));
75401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
75501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                testManager.flags);
75601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
75701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
75801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
75901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
76001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                testManager.flags);
76101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
76201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
76301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
76401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddTwoChannels2() {
76501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // test non contiguous case where 2nd range precedes 2nd range
76601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
76701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
76801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(200, 250, "client1"));
76901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
77001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
77101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 200, 250, SMS_CB_CODE_SCHEME_MIN,
77201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
77301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
77401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(100, 120, "client1"));
77501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
77601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
77701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 100, 120, SMS_CB_CODE_SCHEME_MIN,
77801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
77901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
78001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
78101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
78201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 2, testManager.mConfigList.size());
78301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 100, 120, SMS_CB_CODE_SCHEME_MIN,
78401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
78501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 200, 250, SMS_CB_CODE_SCHEME_MIN,
78601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
78701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
78801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
78901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    // new [2, 10] existing [1, 4] [7, 15]
79001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddThreeChannels() {
79101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // 3rd range can include first two ranges.  Test combine case.
79201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
79301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
79401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(1, 4, "client1"));
79501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
79601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
79701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 4, SMS_CB_CODE_SCHEME_MIN,
79801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
79901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
80001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(7, 15, "client2"));
80101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
80201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
80301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 7, 15, SMS_CB_CODE_SCHEME_MIN,
80401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
80501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
80601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 3", testManager.enableRange(2, 10, "client3"));
80701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
80801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
80901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 5, 6, SMS_CB_CODE_SCHEME_MIN,
81001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
81101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
81201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
81301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
81401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
81501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 15, SMS_CB_CODE_SCHEME_MIN,
81601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
81701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
81801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        //test disable
81901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
82001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range 2", testManager.disableRange(7, 15, "client2"));
82101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
82201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
82301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
82401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
82501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
82601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range 1", testManager.disableRange(1, 4, "client1"));
82701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
82801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
82901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 2, 10, SMS_CB_CODE_SCHEME_MIN,
83001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
83101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
83201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range 3", testManager.disableRange(2, 10, "client3"));
83301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
83401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                testManager.flags);
83501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
83601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
83701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
83801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddThreeChannels2() {
83901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // 3rd range can include first two ranges.  Test combine case.
84001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
84101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
84201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(2, 3, "client1"));
84301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
84401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
84501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 2, 3, SMS_CB_CODE_SCHEME_MIN,
84601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
84701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
84801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(5, 6, "client2"));
84901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
85001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
85101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 5, 6, SMS_CB_CODE_SCHEME_MIN,
85201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
85301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
85401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 3", testManager.enableRange(1, 10, "client3"));
85501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
85601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
85701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
85801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
85901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
86001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
86101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
86201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
86301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
86401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
86501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
86601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        //test disable:
86701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
86801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range 3", testManager.disableRange(1, 10, "client3"));
86901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
87001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 2, testManager.mConfigList.size());
87101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 2, 3, SMS_CB_CODE_SCHEME_MIN,
87201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
87301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 5, 6, SMS_CB_CODE_SCHEME_MIN,
87401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
87501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
87601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
87701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
87801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
87901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 2, testManager.mConfigList.size());
88001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 2, 3, SMS_CB_CODE_SCHEME_MIN,
88101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
88201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 5, 6, SMS_CB_CODE_SCHEME_MIN,
88301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
88401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
88501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
88601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
88701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddChannels() {
88801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
88901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
89001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(2, 3, "client1"));
89101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
89201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
89301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 2, 3, SMS_CB_CODE_SCHEME_MIN,
89401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
89501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
89601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(5, 6, "client2"));
89701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
89801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
89901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 5, 6, SMS_CB_CODE_SCHEME_MIN,
90001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
90101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
90201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 3", testManager.enableRange(14, 15, "client3"));
90301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
90401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
90501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 14, 15, SMS_CB_CODE_SCHEME_MIN,
90601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
90701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
90801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 4", testManager.enableRange(1, 10, "client4"));
90901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
91001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
91101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
91201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
91301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
91401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
91501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
91601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 2, testManager.mConfigList.size());
91701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
91801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
91901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 14, 15, SMS_CB_CODE_SCHEME_MIN,
92001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
92101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // test disable
92201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
92301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range 4", testManager.disableRange(1, 10, "client4"));
92401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
92501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 3, testManager.mConfigList.size());
92601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 2, 3, SMS_CB_CODE_SCHEME_MIN,
92701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
92801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 5, 6, SMS_CB_CODE_SCHEME_MIN,
92901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
93001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(2), 14, 15, SMS_CB_CODE_SCHEME_MIN,
93101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
93201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
93301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
93401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddChannels2() {
93501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
93601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
93701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(2, 3, "client1"));
93801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
93901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
94001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 2, 3, SMS_CB_CODE_SCHEME_MIN,
94101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
94201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
94301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(5, 15, "client2"));
94401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
94501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
94601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 5, 15, SMS_CB_CODE_SCHEME_MIN,
94701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
94801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
94901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 3", testManager.enableRange(1, 10, "client3"));
95001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
95101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
95201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 4, SMS_CB_CODE_SCHEME_MIN,
95301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
95401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
95501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
95601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
95701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
95801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 15, SMS_CB_CODE_SCHEME_MIN,
95901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
96001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // test disable
96101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
96201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range 2", testManager.disableRange(5, 15, "client2"));
96301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
96401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
96501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
96601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
96701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
96801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range 1", testManager.disableRange(2, 3, "client1"));
96901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", 0, testManager.flags);
97001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
97101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
97201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range 3", testManager.disableRange(1, 10, "client3"));
97301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
97401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                testManager.flags);
97501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
97601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
97701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
97801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
97901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddChannels3() {
98001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
98101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
98201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(1, 4, "client1"));
98301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
98401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
98501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 4, SMS_CB_CODE_SCHEME_MIN,
98601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
98701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
98801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
98901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(7, 8, "client2"));
99001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
99101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
99201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 7, 8, SMS_CB_CODE_SCHEME_MIN,
99301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
99401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
99501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 3", testManager.enableRange(2, 10, "client3"));
99601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
99701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
99801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 5, 10, SMS_CB_CODE_SCHEME_MIN,
99901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
100001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
100101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
100201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
100301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
100401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
100501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
100601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // test disable
100701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
100801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
100901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range 2", testManager.disableRange(7, 8, "client2"));
101001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", 0, testManager.flags);
101101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
101201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
101301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
101401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddChannels4() {
101501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // new [2, 10] existing [1, 4] [6, 6] [8, 9] [12, 14]
101601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
101701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
101801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(1, 4, "client1"));
101901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
102001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
102101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 4, SMS_CB_CODE_SCHEME_MIN,
102201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
102301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
102401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
102501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(6, 6, "client2"));
102601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
102701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
102801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 6, 6, SMS_CB_CODE_SCHEME_MIN,
102901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
103001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
103101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
103201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 3", testManager.enableRange(8, 9, "client3"));
103301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
103401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
103501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 8, 9, SMS_CB_CODE_SCHEME_MIN,
103601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
103701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
103801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
103901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 4", testManager.enableRange(12, 14, "client4"));
104001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
104101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
104201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 12, 14, SMS_CB_CODE_SCHEME_MIN,
104301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
104401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
104501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 5", testManager.enableRange(2, 10, "client5"));
104601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
104701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
104801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 5, 10, SMS_CB_CODE_SCHEME_MIN,
104901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
105001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
105101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
105201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
105301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 2, testManager.mConfigList.size());
105401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
105501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
105601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 12, 14, SMS_CB_CODE_SCHEME_MIN,
105701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
105801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
105901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // test disable
106001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
106101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range", testManager.disableRange(8, 9, "client3"));
106201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", 0, testManager.flags);
106301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
106401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
106501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
106601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
106701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 2, testManager.mConfigList.size());
106801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 10, SMS_CB_CODE_SCHEME_MIN,
106901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
107001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 12, 14, SMS_CB_CODE_SCHEME_MIN,
107101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
107201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
107301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range", testManager.disableRange(2, 10, "client5"));
107401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
107501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 3, testManager.mConfigList.size());
107601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 4, SMS_CB_CODE_SCHEME_MIN,
107701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
107801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 6, 6, SMS_CB_CODE_SCHEME_MIN,
107901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
108001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(2), 12, 14, SMS_CB_CODE_SCHEME_MIN,
108101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
108201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
108301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
108401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
108501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 3, testManager.mConfigList.size());
108601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 4, SMS_CB_CODE_SCHEME_MIN,
108701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
108801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(1), 6, 6, SMS_CB_CODE_SCHEME_MIN,
108901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
109001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(2), 12, 14, SMS_CB_CODE_SCHEME_MIN,
109101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
109201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    }
109301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
109401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks    public void testAddChannels5() {
109501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // range already enclosed in existing: new [3, 3], [1,3]
109601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        TestIntRangeManager testManager = new TestIntRangeManager();
109701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
109801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 1", testManager.enableRange(1, 3, "client1"));
109901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
110001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
110101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 3, SMS_CB_CODE_SCHEME_MIN,
110201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
110301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
110401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags before test", 0, testManager.flags);
110501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("enabling range 2", testManager.enableRange(3, 3, "client1"));
110601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", 0, testManager.flags);
110701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
110801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
110901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
111001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
111101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
111201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 3, SMS_CB_CODE_SCHEME_MIN,
111301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
111401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks
111501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        // test disable
111601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
111701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range", testManager.disableRange(3, 3, "client1"));
111801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", 0, testManager.flags);
111901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
112001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
112101fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("updating ranges", testManager.updateRanges());
112201fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", ALL_FLAGS_SET, testManager.flags);
112301fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 1, testManager.mConfigList.size());
112401fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        checkConfigInfo(testManager.mConfigList.get(0), 1, 3, SMS_CB_CODE_SCHEME_MIN,
112501fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                SMS_CB_CODE_SCHEME_MAX, true);
112601fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        testManager.reset();
112701fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertTrue("disabling range", testManager.disableRange(1, 3, "client1"));
112801fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
112901fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks                testManager.flags);
113001fdbd3285be1a8ba2143a4bc11a0f5065bb68d0Rika Brooks        assertEquals("configlist size", 0, testManager.mConfigList.size());
11310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        testManager.reset();
11320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue("updating ranges", testManager.updateRanges());
11330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("flags after test", FLAG_START_UPDATE_CALLED | FLAG_FINISH_UPDATE_CALLED,
11340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                testManager.flags);
11350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("configlist size", 0, testManager.mConfigList.size());
11360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
1138