1a41c174e52ec211ef950259b274b120a705af438Yigit Boyar/* 2ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikas * Copyright 2018 The Android Open Source Project 3a41c174e52ec211ef950259b274b120a705af438Yigit Boyar * 4a41c174e52ec211ef950259b274b120a705af438Yigit Boyar * Licensed under the Apache License, Version 2.0 (the "License"); 5a41c174e52ec211ef950259b274b120a705af438Yigit Boyar * you may not use this file except in compliance with the License. 6a41c174e52ec211ef950259b274b120a705af438Yigit Boyar * You may obtain a copy of the License at 7a41c174e52ec211ef950259b274b120a705af438Yigit Boyar * 8a41c174e52ec211ef950259b274b120a705af438Yigit Boyar * http://www.apache.org/licenses/LICENSE-2.0 9a41c174e52ec211ef950259b274b120a705af438Yigit Boyar * 10a41c174e52ec211ef950259b274b120a705af438Yigit Boyar * Unless required by applicable law or agreed to in writing, software 11a41c174e52ec211ef950259b274b120a705af438Yigit Boyar * distributed under the License is distributed on an "AS IS" BASIS, 12a41c174e52ec211ef950259b274b120a705af438Yigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a41c174e52ec211ef950259b274b120a705af438Yigit Boyar * See the License for the specific language governing permissions and 14a41c174e52ec211ef950259b274b120a705af438Yigit Boyar * limitations under the License. 15a41c174e52ec211ef950259b274b120a705af438Yigit Boyar */ 16ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikaspackage androidx.recyclerview.widget; 17a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 18754cb29c50f09a83251dd4bb633ba445b2411adbAurimas Liutikasimport static org.mockito.Mockito.mock; 19754cb29c50f09a83251dd4bb633ba445b2411adbAurimas Liutikasimport static org.mockito.Mockito.verify; 20754cb29c50f09a83251dd4bb633ba445b2411adbAurimas Liutikasimport static org.mockito.Mockito.verifyNoMoreInteractions; 21754cb29c50f09a83251dd4bb633ba445b2411adbAurimas Liutikas 22754cb29c50f09a83251dd4bb633ba445b2411adbAurimas Liutikasimport android.support.test.filters.SmallTest; 23a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 24a41c174e52ec211ef950259b274b120a705af438Yigit Boyarimport org.junit.Before; 25a41c174e52ec211ef950259b274b120a705af438Yigit Boyarimport org.junit.Test; 26a41c174e52ec211ef950259b274b120a705af438Yigit Boyarimport org.junit.runner.RunWith; 27a41c174e52ec211ef950259b274b120a705af438Yigit Boyarimport org.junit.runners.JUnit4; 28a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 29a41c174e52ec211ef950259b274b120a705af438Yigit Boyar@RunWith(JUnit4.class) 30a41c174e52ec211ef950259b274b120a705af438Yigit Boyar@SmallTest 31a41c174e52ec211ef950259b274b120a705af438Yigit Boyarpublic class BatchingListUpdateCallbackTest { 32a41c174e52ec211ef950259b274b120a705af438Yigit Boyar BatchingListUpdateCallback mBatching; 33a41c174e52ec211ef950259b274b120a705af438Yigit Boyar ListUpdateCallback mCallback; 34a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 35a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Before 36a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void setup() { 37a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mCallback = mock(ListUpdateCallback.class); 38a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching = new BatchingListUpdateCallback(mCallback); 39a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 40a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 41a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 42a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void addSimple() { 43a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onInserted(3, 2); 44a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 45a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onInserted(3, 2); 46a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 47a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 48a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 49a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 50a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void addToSamePos() { 51a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onInserted(3, 2); 52a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onInserted(3, 1); 53a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 54a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onInserted(3, 3); 55a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 56a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 57a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 58a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 59a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void addInsidePrevious() { 60a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onInserted(3, 5); 61a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onInserted(5, 1); 62a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 63a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onInserted(3, 6); 64a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 65a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 66a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 67a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 68a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void addBefore() { 69a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onInserted(3, 5); 70a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onInserted(2, 1); 71a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 72a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onInserted(3, 5); 73a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onInserted(2, 1); 74a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 75a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 76a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 77a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 78a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void removeSimple() { 79a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onRemoved(3, 2); 80a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 81a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onRemoved(3, 2); 82a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 83a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 84a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 85a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 86a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void removeSamePosition() { 87a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onRemoved(3, 2); 88a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onRemoved(3, 1); 89a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 90a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onRemoved(3, 3); 91a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 92a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 93a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 94a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 95a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void removeInside() { 96a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onRemoved(3, 5); 97a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onRemoved(4, 2); 98a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 99a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onRemoved(3, 5); 100a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onRemoved(4, 2); 101a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 102a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 103a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 104a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 105a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void removeBefore() { 106a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onRemoved(3, 2); 107a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onRemoved(2, 1); 108a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 109a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onRemoved(2, 3); 110a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 111a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 112a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 113a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 114a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void removeBefore2() { 115a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onRemoved(3, 2); 116a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onRemoved(2, 4); 117a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 118a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onRemoved(2, 6); 119a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 120a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 121a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 122a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 123a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void removeBefore3() { 124a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onRemoved(3, 2); 125a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onRemoved(1, 1); 126a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 127a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onRemoved(3, 2); 128a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onRemoved(1, 1); 129a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 130a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 131a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 132a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 133a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void moveSimple() { 134a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onMoved(3, 2); 135a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 136a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onMoved(3, 2); 137a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 138a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 139a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 140a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 141a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void moveTwice() { 142a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onMoved(3, 2); 143a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onMoved(5, 6); 144a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 145a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onMoved(3, 2); 146a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onMoved(5, 6); 147a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 148a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 149a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 150a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 151a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeSimple() { 152a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, null); 153a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 154a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(3, 2, null); 155a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 156a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 157a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 158a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 159a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeConsecutive() { 160a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, null); 161a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(5, 2, null); 162a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 163a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(3, 4, null); 164a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 165a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 166a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 167a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 168a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeTheSame() { 169a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, null); 170a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(4, 2, null); 171a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 172a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(3, 3, null); 173a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 174a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 175a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 176a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 177a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeTheSame2() { 178a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, null); 179a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, null); 180a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 181a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(3, 2, null); 182a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 183a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 184a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 185a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 186a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeBefore() { 187a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, null); 188a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(2, 1, null); 189a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 190a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(2, 3, null); 191a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 192a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 193a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 194a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 195a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeBeforeOverlap() { 196a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, null); 197a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(2, 2, null); 198a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 199a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(2, 3, null); 200a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 201a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 202a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 203a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 204a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeSimpleWithPayload() { 205a41c174e52ec211ef950259b274b120a705af438Yigit Boyar Object payload = new Object(); 206a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, payload); 207a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 208a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(3, 2, payload); 209a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 210a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 211a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 212a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeConsecutiveWithPayload() { 213a41c174e52ec211ef950259b274b120a705af438Yigit Boyar Object payload = new Object(); 214a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, payload); 215a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(5, 2, payload); 216a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 217a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(3, 4, payload); 218a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 219a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 220a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 221a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 222a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeTheSameWithPayload() { 223a41c174e52ec211ef950259b274b120a705af438Yigit Boyar Object payload = new Object(); 224a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, payload); 225a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(4, 2, payload); 226a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 227a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(3, 3, payload); 228a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 229a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 230a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 231a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 232a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeTheSame2WithPayload() { 233a41c174e52ec211ef950259b274b120a705af438Yigit Boyar Object payload = new Object(); 234a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, payload); 235a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, payload); 236a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 237a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(3, 2, payload); 238a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 239a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 240a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 241a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 242a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeBeforeWithPayload() { 243a41c174e52ec211ef950259b274b120a705af438Yigit Boyar Object payload = new Object(); 244a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, payload); 245a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(2, 1, payload); 246a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 247a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(2, 3, payload); 248a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 249a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 250a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 251a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 252a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeBeforeOverlapWithPayload() { 253a41c174e52ec211ef950259b274b120a705af438Yigit Boyar Object payload = new Object(); 254a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, payload); 255a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(2, 2, payload); 256a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 257a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(2, 3, payload); 258a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 259a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 260a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 261a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 262a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeWithNewPayload() { 263a41c174e52ec211ef950259b274b120a705af438Yigit Boyar Object payload1 = new Object(); 264a41c174e52ec211ef950259b274b120a705af438Yigit Boyar Object payload2 = new Object(); 265a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, payload1); 266a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(2, 2, payload2); 267a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 268a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(3, 2, payload1); 269a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(2, 2, payload2); 270a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 271a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 272a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 273a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 274a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeWithEmptyPayload() { 275a41c174e52ec211ef950259b274b120a705af438Yigit Boyar Object payload = new Object(); 276a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, payload); 277a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(2, 2, null); 278a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 279a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(3, 2, payload); 280a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(2, 2, null); 281a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 282a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 283a41c174e52ec211ef950259b274b120a705af438Yigit Boyar 284a41c174e52ec211ef950259b274b120a705af438Yigit Boyar @Test 285a41c174e52ec211ef950259b274b120a705af438Yigit Boyar public void changeWithEmptyPayload2() { 286a41c174e52ec211ef950259b274b120a705af438Yigit Boyar Object payload = new Object(); 287a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(3, 2, null); 288a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.onChanged(2, 2, payload); 289a41c174e52ec211ef950259b274b120a705af438Yigit Boyar mBatching.dispatchLastEvent(); 290a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(3, 2, null); 291a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verify(mCallback).onChanged(2, 2, payload); 292a41c174e52ec211ef950259b274b120a705af438Yigit Boyar verifyNoMoreInteractions(mCallback); 293a41c174e52ec211ef950259b274b120a705af438Yigit Boyar } 294a41c174e52ec211ef950259b274b120a705af438Yigit Boyar} 295