160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov/* 260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * Copyright (C) 2010 The Android Open Source Project 360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * 460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * Licensed under the Apache License, Version 2.0 (the "License"); 560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * you may not use this file except in compliance with the License. 660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * You may obtain a copy of the License at 760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * 860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * http://www.apache.org/licenses/LICENSE-2.0 960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * 1060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * Unless required by applicable law or agreed to in writing, software 1160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * distributed under the License is distributed on an "AS IS" BASIS, 1260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * See the License for the specific language governing permissions and 1460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * limitations under the License. 1560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov */ 1660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikovpackage com.android.common.widget; 1760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 1860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikovimport android.content.Context; 1960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikovimport android.database.Cursor; 2060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikovimport android.database.MatrixCursor; 2160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikovimport android.test.AndroidTestCase; 2260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikovimport android.test.suitebuilder.annotation.SmallTest; 2360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikovimport android.view.View; 2460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikovimport android.view.ViewGroup; 2560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 2660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov/** 2760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * Tests for {@link CompositeCursorAdapter}. 2860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * 2960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * To execute, run: 3060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * <pre> 3160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * adb shell am instrument -e class com.android.common.widget.CompositeCursorAdapterTest \ 3260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * -w com.android.common.tests/android.test.InstrumentationTestRunner 3360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov * </pre> 3460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov */ 3560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov@SmallTest 3660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikovpublic class CompositeCursorAdapterTest extends AndroidTestCase { 3760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 3860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public class TestCompositeCursorAdapter extends CompositeCursorAdapter { 3960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 4060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public TestCompositeCursorAdapter() { 4160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov super(CompositeCursorAdapterTest.this.getContext()); 4260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 4360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 4460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov private StringBuilder mRequests = new StringBuilder(); 4560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 4660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov @Override 4760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov protected View newHeaderView(Context context, int partition, Cursor cursor, ViewGroup parent) { 4860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov return new View(context); 4960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 5060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 5160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov @Override 5260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov protected void bindHeaderView(View view, int partition, Cursor cursor) { 5360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov mRequests.append(partition + (cursor == null ? "" : cursor.getColumnNames()[0]) 5460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov + "[H] "); 5560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 5660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 5760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov @Override 5860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov protected View newView(Context context, int sectionIndex, Cursor cursor, int position, 5960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov ViewGroup parent) { 6060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov return new View(context); 6160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 6260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 6360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov @Override 6460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov protected void bindView(View v, int partition, Cursor cursor, int position) { 6560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov if (!cursor.moveToPosition(position)) { 6660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov fail("Invalid position:" + partition + " " + cursor.getColumnNames()[0] + " " 6760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov + position); 6860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 6960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 7060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov mRequests.append(partition + cursor.getColumnNames()[0] + "[" 7160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov + cursor.getInt(0) + "] "); 7260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 7360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 7460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov @Override 7560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public String toString() { 7660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov return mRequests.toString().trim(); 7760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 7860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 7960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 8060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testGetCountNoEmptySections() { 8160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 8260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(false, false); 8360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(false, false); 8460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 8560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(0, makeCursor("a", 2)); 8660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(1, makeCursor("b", 3)); 8760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 8860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(5, adapter.getCount()); 8960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 9060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 9160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testGetViewNoEmptySections() { 9260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 9360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(false, false); 9460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(false, false); 9560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 9660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(0, makeCursor("a", 1)); 9760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(1, makeCursor("b", 2)); 9860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 9960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov for (int i = 0; i < adapter.getCount(); i++) { 10060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.getView(i, null, null); 10160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 10260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 10360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals("0a[0] 1b[0] 1b[1]", adapter.toString()); 10460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 10560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 10660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testGetCountWithHeadersAndNoEmptySections() { 10760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 10860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(false, true); 10960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(false, true); 11060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 11160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(0, makeCursor("a", 2)); 11260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(1, makeCursor("b", 3)); 11360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 11460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(7, adapter.getCount()); 11560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 11660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 11760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testGetViewWithHeadersNoEmptySections() { 11860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 11960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(false, true); 12060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(false, true); 12160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 12260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(0, makeCursor("a", 1)); 12360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(1, makeCursor("b", 2)); 12460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 12560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov for (int i = 0; i < adapter.getCount(); i++) { 12660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.getView(i, null, null); 12760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 12860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 12960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals("0a[H] 0a[0] 1b[H] 1b[0] 1b[1]", adapter.toString()); 13060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 13160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 13260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testGetCountWithHiddenEmptySection() { 13360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 13460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(false, true); 13560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(false, true); 13660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 13760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(1, makeCursor("a", 2)); 13860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 13960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(3, adapter.getCount()); 14060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 14160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 14260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testGetPartitionForPosition() { 14360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 14460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, false); 14560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, true); 14660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 14760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(0, makeCursor("a", 1)); 14860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(1, makeCursor("b", 2)); 14960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 15060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(0, adapter.getPartitionForPosition(0)); 15160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(1, adapter.getPartitionForPosition(1)); 15260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(1, adapter.getPartitionForPosition(2)); 15360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(1, adapter.getPartitionForPosition(3)); 15460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 15560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 15660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testGetOffsetForPosition() { 15760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 15860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, false); 15960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, true); 16060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 16160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(0, makeCursor("a", 1)); 16260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(1, makeCursor("b", 2)); 16360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 16460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(0, adapter.getOffsetInPartition(0)); 16560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(-1, adapter.getOffsetInPartition(1)); 16660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(0, adapter.getOffsetInPartition(2)); 16760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(1, adapter.getOffsetInPartition(3)); 16860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 16960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 17060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testGetPositionForPartition() { 17160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 17260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, true); 17360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, true); 17460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 17560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(0, makeCursor("a", 1)); 17660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(1, makeCursor("b", 2)); 17760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 17860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(0, adapter.getPositionForPartition(0)); 17960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(2, adapter.getPositionForPartition(1)); 18060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 18160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 18260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testGetViewWithHiddenEmptySections() { 18360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 18460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(false, false); 18560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(false, false); 18660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 18760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(1, makeCursor("b", 2)); 18860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 18960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov for (int i = 0; i < adapter.getCount(); i++) { 19060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.getView(i, null, null); 19160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 19260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 19360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals("1b[0] 1b[1]", adapter.toString()); 19460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 19560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 19660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testGetCountWithShownEmptySection() { 19760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 19860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, true); 19960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, true); 20060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 20160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(1, makeCursor("a", 2)); 20260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 20360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals(4, adapter.getCount()); 20460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 20560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 20660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testGetViewWithShownEmptySections() { 20760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 20860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, true); 20960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, true); 21060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 21160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(1, makeCursor("b", 2)); 21260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 21360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov for (int i = 0; i < adapter.getCount(); i++) { 21460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.getView(i, null, null); 21560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 21660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 21760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertEquals("0[H] 1b[H] 1b[0] 1b[1]", adapter.toString()); 21860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 21960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 22060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testAreAllItemsEnabledFalse() { 22160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 22260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, false); 22360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, true); 22460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 22560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertFalse(adapter.areAllItemsEnabled()); 22660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 22760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 22860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testAreAllItemsEnabledTrue() { 22960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 23060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, false); 23160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, false); 23260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 23360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertTrue(adapter.areAllItemsEnabled()); 23460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 23560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 23660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov public void testIsEnabled() { 23760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov TestCompositeCursorAdapter adapter = new TestCompositeCursorAdapter(); 23860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, false); 23960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.addPartition(true, true); 24060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 24160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(0, makeCursor("a", 1)); 24260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov adapter.changeCursor(1, makeCursor("b", 2)); 24360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 24460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertTrue(adapter.isEnabled(0)); 24560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertFalse(adapter.isEnabled(1)); 24660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertTrue(adapter.isEnabled(2)); 24760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov assertTrue(adapter.isEnabled(3)); 24860ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 24960ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov 25060ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov private Cursor makeCursor(String name, int count) { 25160ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov MatrixCursor cursor = new MatrixCursor(new String[]{name}); 25260ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov for (int i = 0; i < count; i++) { 25360ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov cursor.addRow(new Object[]{i}); 25460ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 25560ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov return cursor; 25660ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov } 25760ae52719e0567fa5b1860df19807716951eca50Dmitri Plotnikov} 258