12c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount/*
22c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount * Copyright (C) 2015 The Android Open Source Project
32c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount *
42c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount * Licensed under the Apache License, Version 2.0 (the "License");
52c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount * you may not use this file except in compliance with the License.
62c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount * You may obtain a copy of the License at
72c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount *
82c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount *      http://www.apache.org/licenses/LICENSE-2.0
92c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount *
102c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount * Unless required by applicable law or agreed to in writing, software
112c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount * distributed under the License is distributed on an "AS IS" BASIS,
122c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount * See the License for the specific language governing permissions and
142c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount * limitations under the License.
152c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount */
16fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding.testapp;
172c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
18fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountimport android.databinding.ListChangeRegistry;
19722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mountimport android.databinding.ObservableList;
20722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mountimport android.databinding.ObservableList.OnListChangedCallback;
212e2043d30f95585de2069e1cbb23e022ab0e71c4George Mountimport android.databinding.testapp.databinding.BasicBindingBinding;
222c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
234c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mountpublic class ListChangeRegistryTest extends BaseDataBinderTest<BasicBindingBinding> {
242c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
252c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    private ListChangeRegistry mListChangeRegistry;
262c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
272c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    private int mCallCount;
282c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
292c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    public ListChangeRegistryTest() {
304c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        super(BasicBindingBinding.class);
312c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    }
322c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
332c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    @Override
342c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    protected void setUp() throws Exception {
352c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        super.setUp();
362c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        mListChangeRegistry = new ListChangeRegistry();
372c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        mCallCount = 0;
382c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    }
392c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
402c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    @Override
412c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    protected void tearDown() throws Exception {
422c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        super.tearDown();
432c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        mListChangeRegistry = null;
442c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    }
452c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
462c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    public void testNotifyChangedAll() {
47722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount        OnListChangedCallback listChangedCallback = new OnListChangedCallback() {
482c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
49722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onChanged(ObservableList sender) {
502c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                mCallCount++;
512c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
522c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
532c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
54722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeChanged(ObservableList sender, int start, int count) {
552c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeChanged should not be called");
562c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
572c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
582c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
59722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeInserted(ObservableList sender, int start, int count) {
602c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeInserted should not be called");
612c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
622c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
632c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
64722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeMoved(ObservableList sender, int from, int to, int count) {
652c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeMoved should not be called");
662c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
672c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
682c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
69722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeRemoved(ObservableList sender, int start, int count) {
702c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeRemoved should not be called");
712c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
722c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        };
732c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
74722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount        mListChangeRegistry.add(listChangedCallback);
752c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        assertEquals(0, mCallCount);
762c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        mListChangeRegistry.notifyChanged(null);
772c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        assertEquals(1, mCallCount);
782c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    }
792c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
802c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    public void testNotifyChanged() {
812c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        final int expectedStart = 10;
822c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        final int expectedCount = 3;
832c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
84722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount        OnListChangedCallback listChangedCallback = new OnListChangedCallback() {
852c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
86722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onChanged(ObservableList sender) {
872c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onChanged should not be called");
882c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
892c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
902c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
91722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeChanged(ObservableList sender, int start, int count) {
922c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                assertEquals(expectedStart, start);
932c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                assertEquals(expectedCount, count);
942c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                mCallCount++;
952c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
962c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
972c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
98722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeInserted(ObservableList sender, int start, int count) {
992c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeInserted should not be called");
1002c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
1012c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
1022c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
103722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeMoved(ObservableList sender, int from, int to, int count) {
1042c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeMoved should not be called");
1052c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
1062c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
1072c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
108722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeRemoved(ObservableList sender, int start, int count) {
1092c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeRemoved should not be called");
1102c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
1112c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        };
1122c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
113722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount        mListChangeRegistry.add(listChangedCallback);
1142c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        assertEquals(0, mCallCount);
1152c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        mListChangeRegistry.notifyChanged(null, expectedStart, expectedCount);
1162c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        assertEquals(1, mCallCount);
1172c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    }
1182c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
1192c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    public void testNotifyInserted() {
1202c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        final int expectedStart = 10;
1212c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        final int expectedCount = 3;
1222c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
123722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount        OnListChangedCallback listChangedCallback = new OnListChangedCallback() {
1242c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
125722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onChanged(ObservableList sender) {
1262c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onChanged should not be called");
1272c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
1282c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
1292c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
130722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeChanged(ObservableList sender, int start, int count) {
1312c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeChanged should not be called");
1322c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
1332c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
1342c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
135722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeInserted(ObservableList sender, int start, int count) {
1362c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                assertEquals(expectedStart, start);
1372c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                assertEquals(expectedCount, count);
1382c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                mCallCount++;
1392c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
1402c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
1412c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
142722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeMoved(ObservableList sender, int from, int to, int count) {
1432c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeMoved should not be called");
1442c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
1452c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
1462c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
147722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeRemoved(ObservableList sender, int start, int count) {
1482c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeRemoved should not be called");
1492c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
1502c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        };
1512c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
152722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount        mListChangeRegistry.add(listChangedCallback);
1532c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        assertEquals(0, mCallCount);
1542c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        mListChangeRegistry.notifyInserted(null, expectedStart, expectedCount);
1552c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        assertEquals(1, mCallCount);
1562c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    }
1572c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
1582c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    public void testNotifyMoved() {
1592c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        final int expectedFrom = 10;
1602c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        final int expectedTo = 100;
1612c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        final int expectedCount = 3;
1622c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
163722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount        OnListChangedCallback listChangedCallback = new OnListChangedCallback() {
1642c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
165722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onChanged(ObservableList sender) {
1662c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onChanged should not be called");
1672c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
1682c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
1692c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
170722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeChanged(ObservableList sender, int start, int count) {
1712c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeChanged should not be called");
1722c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
1732c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
1742c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
175722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeInserted(ObservableList sender, int start, int count) {
1762c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeInserted should not be called");
1772c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
1782c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
1792c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
180722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeMoved(ObservableList sender, int from, int to, int count) {
1812c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                assertEquals(expectedFrom, from);
1822c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                assertEquals(expectedTo, to);
1832c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                assertEquals(expectedCount, count);
1842c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                mCallCount++;
1852c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
1862c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
1872c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
188722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeRemoved(ObservableList sender, int start, int count) {
1892c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeRemoved should not be called");
1902c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
1912c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        };
1922c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
193722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount        mListChangeRegistry.add(listChangedCallback);
1942c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        assertEquals(0, mCallCount);
1952c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        mListChangeRegistry.notifyMoved(null, expectedFrom, expectedTo, expectedCount);
1962c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        assertEquals(1, mCallCount);
1972c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    }
1982c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
1992c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    public void testNotifyRemoved() {
2002c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        final int expectedStart = 10;
2012c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        final int expectedCount = 3;
2022c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
203722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount        OnListChangedCallback listChangedCallback = new OnListChangedCallback() {
2042c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
205722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onChanged(ObservableList sender) {
2062c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onChanged should not be called");
2072c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
2082c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
2092c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
210722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeChanged(ObservableList sender, int start, int count) {
2112c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeChanged should not be called");
2122c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
2132c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
2142c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
215722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeInserted(ObservableList sender, int start, int count) {
2162c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeInserted should not be called");
2172c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
2182c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
2192c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
220722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeMoved(ObservableList sender, int from, int to, int count) {
2212c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                fail("onItemRangeMoved should not be called");
2222c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
2232c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
2242c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            @Override
225722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount            public void onItemRangeRemoved(ObservableList sender, int start, int count) {
2262c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                assertEquals(expectedStart, start);
2272c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                assertEquals(expectedCount, count);
2282c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount                mCallCount++;
2292c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount            }
2302c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        };
2312c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount
232722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount        mListChangeRegistry.add(listChangedCallback);
2332c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        assertEquals(0, mCallCount);
2342c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        mListChangeRegistry.notifyRemoved(null, expectedStart, expectedCount);
2352c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount        assertEquals(1, mCallCount);
2362c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount    }
2372c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount}
238