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