package com.gaiagps.iburn.adapters;
import android.database.MatrixCursor;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import android.util.Log;
import org.junit.Test;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@SmallTest
public class EventSectionedCursorAdapterTest extends AndroidTestCase {
@Test
public void testSomething() {
// EventSectionedCursorAdapter adapter = new EventSectionedCursorAdapter(getContext(), prepareMockCursor(), (modelId, type) -> {
// // ignore clicks
// });
//
// List<Integer> expectedHeaderPositions = new ArrayList<Integer>() {{ add(0); add(4); add(6); }};
//
// assertEquals(adapter.headerPositions, expectedHeaderPositions);
//
// assertEquals(adapter.getItemCount(), 8);
//
// assertTrue(adapter.isHeaderPosition(0));
// assertTrue(adapter.isHeaderPosition(4));
// assertTrue(adapter.isHeaderPosition(6));
//
// assertFalse(adapter.isHeaderPosition(1));
// assertFalse(adapter.isHeaderPosition(2));
// assertFalse(adapter.isHeaderPosition(3));
// assertFalse(adapter.isHeaderPosition(5));
// assertFalse(adapter.isHeaderPosition(7));
//
// // Items at position 1-3 are under the first header at position 0
// // Note getHeaderPositionForPosition operates only on non-header positions
// assertEquals(adapter.getHeaderPositionForPosition(1), 0);
// assertEquals(adapter.getHeaderPositionForPosition(2), 0);
// assertEquals(adapter.getHeaderPositionForPosition(3), 0);
//
// assertEquals(adapter.getHeaderPositionForPosition(5), 4);
// assertEquals(adapter.getHeaderPositionForPosition(7), 6);
//
// // Note getCursorPositionForPosition operates only on non-header positions
// assertEquals(adapter.getCursorPositionForPosition(1), 0);
// assertEquals(adapter.getCursorPositionForPosition(2), 1);
// assertEquals(adapter.getCursorPositionForPosition(3), 2);
// assertEquals(adapter.getCursorPositionForPosition(5), 3);
// assertEquals(adapter.getCursorPositionForPosition(7), 4);
//
// Set<Long> itemIds = new HashSet<>(adapter.getItemCount());
// for (int idx = 0; idx < adapter.getItemCount(); idx++) {
// if (!itemIds.add(adapter.getItemId(idx))) throw new AssertionError("Duplicate id " + adapter.getItemId(idx) + " at position " + idx + " previous: " + itemIds);
// }
}
private MatrixCursor prepareMockCursor() {
MatrixCursor matrixCursor = new MatrixCursor(EventSectionedCursorAdapter.Projection);
// 21:00:00 Header
matrixCursor.addRow(new String[] {"1", "Test Event", "2015-09-01 21:00:00", "Mon 9/1 9:00 PM", "2015-09-01 23:00:00", "Mon 9/1 11:00 PM","0", "0", "0", "0", "cere"});
matrixCursor.addRow(new String[] {"2", "Test Event2", "2015-09-01 21:00:00", "Mon 9/1 9:00 PM", "2015-09-01 22:30:00", "Mon 9/1 10:30 PM","0", "0", "0", "0", "cere"});
matrixCursor.addRow(new String[] {"3", "Test Event3", "2015-09-01 21:00:00", "Mon 9/1 9:00 PM", "2015-09-01 23:30:00", "Mon 9/1 11:30 PM","0", "0", "0", "0", "cere"});
// 23:30 Header
matrixCursor.addRow(new String[] {"4", "Test Event4", "2015-09-01 23:30:00", "Mon 9/1 11:30 PM", "2015-09-01 23:45:00", "Mon 9/1 11:45 PM","0", "0", "0", "0", "cere"});
// 0:00 Header
matrixCursor.addRow(new String[] {"5", "Test Event5", "2015-09-02 0:00:00", "Tues 9/2 12:00 AM", "2015-09-02 01:00:00", "Tues 9/2 1:00 AM","0", "0", "0", "0", "cere"});
return matrixCursor;
}
}