111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan/* 211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan * Copyright (C) 2016 The Android Open Source Project 311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan * 411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan * Licensed under the Apache License, Version 2.0 (the "License"); 511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan * you may not use this file except in compliance with the License. 611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan * You may obtain a copy of the License at 711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan * 811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan * http://www.apache.org/licenses/LICENSE-2.0 911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan * 1011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan * Unless required by applicable law or agreed to in writing, software 1111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan * distributed under the License is distributed on an "AS IS" BASIS, 1211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan * See the License for the specific language governing permissions and 1411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan * limitations under the License. 1511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan */ 1611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 1711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanpackage com.android.documentsui.sorting; 1811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 1911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport static org.junit.Assert.assertEquals; 2011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport static org.junit.Assert.assertSame; 2111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport static org.junit.Assert.fail; 2211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 2311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport android.support.annotation.Nullable; 2411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport android.support.test.filters.SmallTest; 2511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport android.support.test.runner.AndroidJUnit4; 2611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport android.view.View; 2711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 2811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport com.android.documentsui.R; 2911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport com.android.documentsui.sorting.SortModel.UpdateListener; 3011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport com.android.documentsui.sorting.SortModel.UpdateType; 3161f564beacafc5edebbb4b05d098203816ff7f64Garfield, Tanimport com.android.documentsui.testing.Parcelables; 3211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 3311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport org.junit.Before; 3411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport org.junit.Test; 3511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport org.junit.runner.RunWith; 3611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 3711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanimport java.util.Arrays; 3811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 3911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan@RunWith(AndroidJUnit4.class) 4011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan@SmallTest 4111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tanpublic class SortModelTest { 4211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 4311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan private static final SortDimension DIMENSION_1 = new SortDimension.Builder() 4411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withId(1) 4511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withLabelId(R.string.sort_dimension_name) 4611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withDataType(SortDimension.DATA_TYPE_STRING) 4711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withSortCapability(SortDimension.SORT_CAPABILITY_BOTH_DIRECTION) 4811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withDefaultSortDirection(SortDimension.SORT_DIRECTION_ASCENDING) 4911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withVisibility(View.VISIBLE) 5011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .build(); 5111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 5211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan private static final SortDimension DIMENSION_2 = new SortDimension.Builder() 5311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withId(2) 5411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withLabelId(R.string.sort_dimension_date) 5511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withSortCapability(SortDimension.SORT_CAPABILITY_BOTH_DIRECTION) 5611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withDefaultSortDirection(SortDimension.SORT_DIRECTION_DESCENDING) 5711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .build(); 5811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 5911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan private static final SortDimension DIMENSION_3 = new SortDimension.Builder() 6011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withId(3) 6111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withLabelId(R.string.sort_dimension_size) 6211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withDataType(SortDimension.DATA_TYPE_NUMBER) 6311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .withSortCapability(SortDimension.SORT_CAPABILITY_NONE) 6411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan .build(); 6511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 6611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan private static final SortDimension[] DIMENSIONS = new SortDimension[] { 6711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan DIMENSION_1, 6811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan DIMENSION_2, 6911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan DIMENSION_3 7011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan }; 7111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 7211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan private static final DummyListener DUMMY_LISTENER = new DummyListener(); 7311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 7411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan private SortModel mModel; 7511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 7611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Before 7711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void setUp() { 7811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel = new SortModel(Arrays.asList(DIMENSIONS)); 7911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.addListener(DUMMY_LISTENER); 8011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 8111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 8211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 8311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testSizeEquals() { 8411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(DIMENSIONS.length, mModel.getSize()); 8511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 8611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 8711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 8811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testDimensionSame_getDimensionAt() { 8911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan for (int i = 0; i < DIMENSIONS.length; ++i) { 9011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertSame(DIMENSIONS[i], mModel.getDimensionAt(i)); 9111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 9211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 9311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 9411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 9511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testDimensionSame_getDimensionById() { 9611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan for (SortDimension dimension : DIMENSIONS) { 9711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertSame(dimension, mModel.getDimensionById(dimension.getId())); 9811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 9911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 10011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 10111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 10211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testSetDimensionVisibility() { 10311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(View.VISIBLE, DIMENSION_1.getVisibility()); 10411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 10511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.setDimensionVisibility(DIMENSION_1.getId(), View.GONE); 10611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 10711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(View.GONE, DIMENSION_1.getVisibility()); 10811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(SortModel.UPDATE_TYPE_VISIBILITY, DUMMY_LISTENER.mLastUpdateType); 10911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 11011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 11111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 11211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testNotSortedByDefault() { 11311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(SortModel.SORT_DIMENSION_ID_UNKNOWN, mModel.getSortedDimensionId()); 11411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 11511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 11611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 11711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testSortByDefault() { 11811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.setDefaultDimension(DIMENSION_1.getId()); 11911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 12011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan SortDimension sortedDimension = getSortedDimension(); 12111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertSame(DIMENSION_1, sortedDimension); 12211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(DIMENSION_1.getDefaultSortDirection(), sortedDimension.getSortDirection()); 12311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 12411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertSame(mModel, DUMMY_LISTENER.mLastSortModel); 12511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(SortModel.UPDATE_TYPE_SORTING, DUMMY_LISTENER.mLastUpdateType); 12611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 12711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 12811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 12911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testSortByUser() { 13011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.sortByUser(DIMENSION_1.getId(), SortDimension.SORT_DIRECTION_DESCENDING); 13111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 13211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan SortDimension sortedDimension = getSortedDimension(); 13311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertSame(DIMENSION_1, sortedDimension); 13411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(SortDimension.SORT_DIRECTION_DESCENDING, sortedDimension.getSortDirection()); 13511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 13611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertSame(mModel, DUMMY_LISTENER.mLastSortModel); 13711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(SortModel.UPDATE_TYPE_SORTING, DUMMY_LISTENER.mLastUpdateType); 13811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 13911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 14011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 14111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testOrderNotChanged_sortByDefaultAfterSortByUser() { 14211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.sortByUser(DIMENSION_1.getId(), SortDimension.SORT_DIRECTION_DESCENDING); 14311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.setDefaultDimension(DIMENSION_2.getId()); 14411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 14511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan SortDimension sortedDimension = getSortedDimension(); 14611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertSame(DIMENSION_1, sortedDimension); 14711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(SortDimension.SORT_DIRECTION_DESCENDING, sortedDimension.getSortDirection()); 14811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 14911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertSame(mModel, DUMMY_LISTENER.mLastSortModel); 15011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(SortModel.UPDATE_TYPE_SORTING, DUMMY_LISTENER.mLastUpdateType); 15111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 15211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 15311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 15411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testOrderChanged_sortByUserAfterSortByDefault() { 15511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.setDefaultDimension(DIMENSION_2.getId()); 15611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.sortByUser(DIMENSION_1.getId(), SortDimension.SORT_DIRECTION_DESCENDING); 15711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 15811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan SortDimension sortedDimension = getSortedDimension(); 15911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertSame(DIMENSION_1, sortedDimension); 16011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(SortDimension.SORT_DIRECTION_DESCENDING, sortedDimension.getSortDirection()); 16111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 16211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertSame(mModel, DUMMY_LISTENER.mLastSortModel); 16311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(SortModel.UPDATE_TYPE_SORTING, DUMMY_LISTENER.mLastUpdateType); 16411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 16511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 16611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 16711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testSortByUserTwice() { 16811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.sortByUser(DIMENSION_1.getId(), SortDimension.SORT_DIRECTION_DESCENDING); 16911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.sortByUser(DIMENSION_2.getId(), SortDimension.SORT_DIRECTION_ASCENDING); 17011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 17111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan SortDimension sortedDimension = getSortedDimension(); 17211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertSame(DIMENSION_2, sortedDimension); 17311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(SortDimension.SORT_DIRECTION_ASCENDING, sortedDimension.getSortDirection()); 17411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 17511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(SortDimension.SORT_DIRECTION_NONE, DIMENSION_1.getSortDirection()); 17611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 17711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 17811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 17911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testSortByUserTwice_sameDimension() { 18011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.sortByUser(DIMENSION_1.getId(), SortDimension.SORT_DIRECTION_DESCENDING); 18111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.sortByUser(DIMENSION_1.getId(), SortDimension.SORT_DIRECTION_ASCENDING); 18211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 18311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan SortDimension sortedDimension = getSortedDimension(); 18411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertSame(DIMENSION_1, sortedDimension); 18511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan assertEquals(SortDimension.SORT_DIRECTION_ASCENDING, sortedDimension.getSortDirection()); 18611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 18711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 18811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 18911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testSetDefaultDimension_noSortingCapability() { 19011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan try { 19111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.setDefaultDimension(DIMENSION_3.getId()); 19211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan fail("Expect exception but not raised."); 19311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } catch(IllegalStateException expected) { 19411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan // Expected 19511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 19611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 19711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 19811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 19911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testSortByUser_noSortingCapability() { 20011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan try { 20111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.sortByUser(DIMENSION_3.getId(), SortDimension.SORT_DIRECTION_DESCENDING); 20211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan fail("Expect exception but not raised."); 20311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } catch(IllegalStateException expected) { 20411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan // Expected 20511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 20611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 20711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 20811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Test 20911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void testParceling() { 21011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.setDefaultDimension(DIMENSION_1.getId()); 21111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.sortByUser(DIMENSION_2.getId(), SortDimension.SORT_DIRECTION_DESCENDING); 21211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mModel.setDimensionVisibility(DIMENSION_3.getId(), View.GONE); 21311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 214c6b0432938a798833a4bbe528e5abcc67e69a7b1Garfield Tan Parcelables.assertParcelable(mModel, 0); 21561f564beacafc5edebbb4b05d098203816ff7f64Garfield, Tan } 21611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 21761f564beacafc5edebbb4b05d098203816ff7f64Garfield, Tan @Test 21861f564beacafc5edebbb4b05d098203816ff7f64Garfield, Tan public void testParceling_NoSortedDimension() { 219c6b0432938a798833a4bbe528e5abcc67e69a7b1Garfield Tan Parcelables.assertParcelable(mModel, 0); 22011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 22111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 22211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan private @Nullable SortDimension getSortedDimension() { 22311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan final int sortedDimensionId = mModel.getSortedDimensionId(); 22411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan return mModel.getDimensionById(sortedDimensionId); 22511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 22611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 22711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan private static class DummyListener implements UpdateListener { 22811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 22911d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan private SortModel mLastSortModel; 23011d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan private @UpdateType int mLastUpdateType; 23111d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan 23211d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan @Override 23311d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan public void onModelUpdate(SortModel newModel, @UpdateType int updateType) { 23411d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mLastSortModel = newModel; 23511d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan mLastUpdateType = updateType; 23611d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 23711d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan } 23811d23483bf28768c04c25e4056df648fa8301aefGarfield, Tan} 239