package com.evancharlton.mileage.dao; import java.util.ArrayList; import android.database.MatrixCursor; import com.evancharlton.mileage.provider.tables.FillupsTable; import com.evancharlton.mileage.tests.TestCase; public class FillupSeriesTest extends TestCase { private final FillupSeries mSeries = new FillupSeries(); private static final String[] PROJECTION = FillupsTable.PROJECTION; private static int ID = 1; private static Object[] createFillup(int vehicleId, double odometer, double volume, double price, boolean partial, boolean restart) { Object[] values = new Object[PROJECTION.length]; int i = 0; values[i++] = ID++; values[i++] = volume * price; values[i++] = price; values[i++] = volume; values[i++] = odometer; values[i++] = 0; // economy values[i++] = vehicleId; values[i++] = System.currentTimeMillis(); values[i++] = 0; // latitude values[i++] = 0; // longitude values[i++] = partial ? 1 : 0; values[i++] = restart ? 1 : 0; return values; } @Override public void setUp() { ID = 1; } @Override public void tearDown() { mSeries.clear(); } public void testLoadSeries() { MatrixCursor cursor = new MatrixCursor(FillupsTable.PROJECTION); cursor.addRow(createFillup(1, 100, 10, 10, false, false)); cursor.addRow(createFillup(1, 200, 10, 10, false, false)); ArrayList<FillupSeries> series = FillupSeries.load(cursor); assertEquals(1, series.size()); } public void testLoadSeriesWithRestart() { MatrixCursor cursor = new MatrixCursor(FillupsTable.PROJECTION); int odometer = 0; odometer += 100; cursor.addRow(createFillup(1, odometer, 10, 10, false, false)); odometer += 100; cursor.addRow(createFillup(1, odometer, 10, 10, false, false)); odometer += 100; cursor.addRow(createFillup(1, odometer, 10, 10, false, true)); odometer += 100; cursor.addRow(createFillup(1, odometer, 10, 10, false, false)); ArrayList<FillupSeries> series = FillupSeries.load(cursor); assertEquals(2, series.size()); } public void testGetTotalDistance() { MatrixCursor cursor = new MatrixCursor(FillupsTable.PROJECTION); int odometer = 0; odometer += 100; cursor.addRow(createFillup(1, odometer, 10, 10, false, false)); odometer += 100; cursor.addRow(createFillup(1, odometer, 10, 10, false, false)); ArrayList<FillupSeries> series = FillupSeries.load(cursor); FillupSeries underTest = series.get(0); assertEquals(100D, underTest.getTotalDistance()); } public void testGetTotalVolume() { MatrixCursor cursor = new MatrixCursor(FillupsTable.PROJECTION); int odometer = 0; odometer += 100; cursor.addRow(createFillup(1, odometer, 10, 10, false, false)); odometer += 100; cursor.addRow(createFillup(1, odometer, 10, 10, false, false)); ArrayList<FillupSeries> series = FillupSeries.load(cursor); FillupSeries underTest = series.get(0); assertEquals(20D, underTest.getTotalVolume()); } public void testGetEconomyVolume() { MatrixCursor cursor = new MatrixCursor(FillupsTable.PROJECTION); int odometer = 0; odometer += 100; cursor.addRow(createFillup(1, odometer, 10, 10, false, false)); odometer += 100; cursor.addRow(createFillup(1, odometer, 10, 10, false, false)); ArrayList<FillupSeries> series = FillupSeries.load(cursor); FillupSeries underTest = series.get(0); assertEquals(10D, underTest.getEconomyVolume()); } }