Fix sorted list batched callback.
Bug: 30938398
Change-Id: I5a05661d610ca7a3ea8ee9d004ff2b1cd523e616
diff --git a/v7/recyclerview/jvm-tests/src/android/support/v7/util/SortedListBatchedCallbackTest.java b/v7/recyclerview/jvm-tests/src/android/support/v7/util/SortedListBatchedCallbackTest.java
new file mode 100644
index 0000000..ccffd70
--- /dev/null
+++ b/v7/recyclerview/jvm-tests/src/android/support/v7/util/SortedListBatchedCallbackTest.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.support.v7.util;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.verifyZeroInteractions;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+import org.mockito.Mockito;
+
+@SuppressWarnings("unchecked")
+@RunWith(JUnit4.class)
+@SmallTest
+public class SortedListBatchedCallbackTest {
+ SortedList.BatchedCallback mBatchedCallback;
+ SortedList.Callback mMockCallback;
+ @Before
+ public void init() {
+ mMockCallback = Mockito.mock(SortedList.Callback.class);
+ mBatchedCallback = new SortedList.BatchedCallback(mMockCallback);
+ }
+
+ @Test
+ public void onChange() {
+ mBatchedCallback.onChanged(1, 2);
+ verifyZeroInteractions(mMockCallback);
+ mBatchedCallback.dispatchLastEvent();
+ verify(mMockCallback).onChanged(1, 2, null);
+ verifyNoMoreInteractions(mMockCallback);
+ }
+
+ @Test
+ public void onRemoved() {
+ mBatchedCallback.onRemoved(2, 3);
+ verifyZeroInteractions(mMockCallback);
+ mBatchedCallback.dispatchLastEvent();
+ verify(mMockCallback).onRemoved(2, 3);
+ verifyNoMoreInteractions(mMockCallback);
+ }
+
+ @Test
+ public void onInserted() {
+ mBatchedCallback.onInserted(3, 4);
+ verifyNoMoreInteractions(mMockCallback);
+ mBatchedCallback.dispatchLastEvent();
+ verify(mMockCallback).onInserted(3, 4);
+ verifyNoMoreInteractions(mMockCallback);
+ }
+
+ @Test
+ public void onMoved() {
+ mBatchedCallback.onMoved(5, 6);
+ // moves are not merged
+ verify(mMockCallback).onMoved(5, 6);
+ verifyNoMoreInteractions(mMockCallback);
+ }
+
+ @Test
+ public void compare() {
+ Object o1 = new Object();
+ Object o2 = new Object();
+ mBatchedCallback.compare(o1, o2);
+ verify(mMockCallback).compare(o1, o2);
+ verifyNoMoreInteractions(mMockCallback);
+ }
+
+ @Test
+ public void areContentsTheSame() {
+ Object o1 = new Object();
+ Object o2 = new Object();
+ mBatchedCallback.areContentsTheSame(o1, o2);
+ verify(mMockCallback).areContentsTheSame(o1, o2);
+ verifyNoMoreInteractions(mMockCallback);
+ }
+
+ @Test
+ public void areItemsTheSame() {
+ Object o1 = new Object();
+ Object o2 = new Object();
+ mBatchedCallback.areItemsTheSame(o1, o2);
+ verify(mMockCallback).areItemsTheSame(o1, o2);
+ verifyNoMoreInteractions(mMockCallback);
+ }
+}
diff --git a/v7/recyclerview/jvm-tests/src/android/support/v7/util/SortedListTest.java b/v7/recyclerview/jvm-tests/src/android/support/v7/util/SortedListTest.java
index 9bcae5c..f53b5b2 100644
--- a/v7/recyclerview/jvm-tests/src/android/support/v7/util/SortedListTest.java
+++ b/v7/recyclerview/jvm-tests/src/android/support/v7/util/SortedListTest.java
@@ -257,7 +257,6 @@
for (int index = mList.size(); index < mList.mData.length; index++) {
assertNull(mList.mData[index]);
}
-
}
} catch (Throwable t) {
Collections.sort(copy, sItemComparator);
diff --git a/v7/recyclerview/src/android/support/v7/util/SortedList.java b/v7/recyclerview/src/android/support/v7/util/SortedList.java
index 1d48468..fd78348 100644
--- a/v7/recyclerview/src/android/support/v7/util/SortedList.java
+++ b/v7/recyclerview/src/android/support/v7/util/SortedList.java
@@ -792,7 +792,7 @@
@Override
public void onMoved(int fromPosition, int toPosition) {
- mBatchingListUpdateCallback.onInserted(fromPosition, toPosition);
+ mBatchingListUpdateCallback.onMoved(fromPosition, toPosition);
}
@Override