/* * Copyright (C) 2010 Paul Watts (paulcwatts@gmail.com) * * 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 org.onebusaway.android.provider.test; import org.onebusaway.android.provider.ObaContract; import org.onebusaway.android.provider.ObaProvider; import android.content.ContentResolver; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.test.ProviderTestCase2; public class ProviderTest extends ProviderTestCase2<ObaProvider> { public ProviderTest() { super(ObaProvider.class, ObaContract.AUTHORITY); } public void testStops() { ContentResolver cr = getMockContentResolver(); // // Create // final String stopId = "1_11060-TEST"; ContentValues values = new ContentValues(); values.put(ObaContract.Stops._ID, stopId); values.put(ObaContract.Stops.CODE, "11060"); values.put(ObaContract.Stops.NAME, "Broadway & E Denny Way"); values.put(ObaContract.Stops.DIRECTION, "S"); values.put(ObaContract.Stops.USE_COUNT, 0); values.put(ObaContract.Stops.LATITUDE, 47.617676); values.put(ObaContract.Stops.LONGITUDE, -122.314523); Uri uri = cr.insert(ObaContract.Stops.CONTENT_URI, values); assertNotNull(uri); assertEquals(uri, Uri.withAppendedPath(ObaContract.Stops.CONTENT_URI, stopId)); // // Read // Cursor c = cr.query(ObaContract.Stops.CONTENT_URI, new String[]{ObaContract.Stops._ID, ObaContract.Stops.DIRECTION}, null, null, null); assertNotNull(c); assertTrue(c.getCount() == 1); c.moveToNext(); assertEquals(c.getString(0), stopId); c.close(); // Test counting c = cr.query(ObaContract.Stops.CONTENT_URI, new String[]{ObaContract.Stops._COUNT}, null, null, null); assertNotNull(c); assertEquals(c.getCount(), 1); c.moveToNext(); assertTrue(c.getInt(0) == 1); c.close(); // Get the one that we care about c = cr.query(uri, new String[]{ObaContract.Stops.CODE}, null, null, null); assertNotNull(c); assertEquals(c.getCount(), 1); c.moveToNext(); assertEquals(c.getString(0), "11060"); c.close(); // // Update // values = new ContentValues(); values.put(ObaContract.Stops.USE_COUNT, 1); int result = cr.update(uri, values, null, null); assertEquals(result, 1); // // Delete // result = cr.delete(uri, null, null); assertEquals(result, 1); result = cr.delete(uri, null, null); assertEquals(result, 0); } public void testLimit() { ContentResolver cr = getMockContentResolver(); // // Create // final String stopId = "1_11060-TEST"; ContentValues values = new ContentValues(); values.put(ObaContract.Stops._ID, stopId); values.put(ObaContract.Stops.CODE, "11060"); values.put(ObaContract.Stops.NAME, "Broadway & E Denny Way"); values.put(ObaContract.Stops.DIRECTION, "S"); values.put(ObaContract.Stops.USE_COUNT, 0); values.put(ObaContract.Stops.LATITUDE, 47.617676); values.put(ObaContract.Stops.LONGITUDE, -122.314523); Uri uri = cr.insert(ObaContract.Stops.CONTENT_URI, values); assertNotNull(uri); final String stopId2 = "1_1010101"; values.put(ObaContract.Stops._ID, stopId2); uri = cr.insert(ObaContract.Stops.CONTENT_URI, values); assertNotNull(uri); Cursor c = cr.query(ObaContract.Stops.CONTENT_URI, new String[]{ObaContract.Stops._COUNT}, null, null, null); assertNotNull(c); assertEquals(c.getCount(), 1); c.moveToNext(); assertTrue(c.getInt(0) == 2); c.close(); c = cr.query(ObaContract.Stops.CONTENT_URI .buildUpon() .appendQueryParameter("limit", "1") .build(), new String[]{ObaContract.Stops._ID}, null, null, null ); assertNotNull(c); assertEquals(c.getCount(), 1); c.close(); } }