/*
* Copyright (C) 2012 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.ObaContract.RegionBounds;
import org.onebusaway.android.provider.ObaContract.Regions;
import org.onebusaway.android.provider.ObaProvider;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.test.ProviderTestCase2;
public class RegionsTest extends ProviderTestCase2<ObaProvider> {
public RegionsTest() {
super(ObaProvider.class, ObaContract.AUTHORITY);
}
public void testInsertOrUpdate() {
ContentResolver cr = getMockContentResolver();
ContentValues values = new ContentValues();
values.put(Regions.NAME, "Test region");
values.put(Regions.OBA_BASE_URL, "http://test.onebusaway.org/");
values.put(Regions.SIRI_BASE_URL, "");
values.put(Regions.LANGUAGE, "en_US");
values.put(Regions.CONTACT_EMAIL, "contact@onebusaway.org");
values.put(Regions.SUPPORTS_OBA_DISCOVERY, true);
values.put(Regions.SUPPORTS_OBA_REALTIME, false);
values.put(Regions.SUPPORTS_SIRI_REALTIME, false);
Uri uri1 = cr.insert(Regions.CONTENT_URI, values);
final String[] PROJECTION = {
ObaContract.Regions._ID,
ObaContract.Regions.NAME,
ObaContract.Regions.SUPPORTS_OBA_DISCOVERY,
ObaContract.Regions.SUPPORTS_SIRI_REALTIME
};
// Query
Cursor c1 = cr.query(uri1, PROJECTION, null, null, null);
assertNotNull(c1);
assertEquals(1, c1.getCount());
c1.moveToFirst();
int id = c1.getInt(0);
c1.close();
values = new ContentValues();
values.put(Regions.SUPPORTS_SIRI_REALTIME, 1);
Uri uri2 = Regions.insertOrUpdate(cr, id, values);
assertEquals(uri1, uri2);
Cursor c2 = cr.query(uri2, PROJECTION, null, null, null);
assertNotNull(c2);
assertEquals(1, c2.getCount());
c2.moveToFirst();
assertEquals(id, c2.getInt(0));
assertEquals("Test region", c2.getString(1));
assertEquals(1, c2.getInt(2));
assertEquals(1, c2.getInt(3));
c2.close();
// Delete this alert
cr.delete(uri1, null, null);
}
public void testBounds() {
ContentResolver cr = getMockContentResolver();
ContentValues values = new ContentValues();
values.put(Regions.NAME, "Test region");
values.put(Regions.OBA_BASE_URL, "http://test.onebusaway.org/");
values.put(Regions.SIRI_BASE_URL, "");
values.put(Regions.LANGUAGE, "en_US");
values.put(Regions.CONTACT_EMAIL, "contact@onebusaway.org");
values.put(Regions.SUPPORTS_OBA_DISCOVERY, true);
values.put(Regions.SUPPORTS_OBA_REALTIME, false);
values.put(Regions.SUPPORTS_SIRI_REALTIME, false);
Uri uri1 = cr.insert(Regions.CONTENT_URI, values);
long regionId = ContentUris.parseId(uri1);
// Insert bounds
values = new ContentValues();
values.put(RegionBounds.REGION_ID, regionId);
values.put(RegionBounds.LATITUDE, 47.5607395);
values.put(RegionBounds.LONGITUDE, -122.1462785);
values.put(RegionBounds.LAT_SPAN, 0.7432510000000008);
values.put(RegionBounds.LON_SPAN, 0.720901000000012);
cr.insert(RegionBounds.CONTENT_URI, values);
// Get the bounds count
Cursor c1 = cr.query(RegionBounds.CONTENT_URI, null, null, null, null);
assertNotNull(c1);
assertEquals(1, c1.getCount());
cr.delete(uri1, null, null);
// Make sure there are no regions
Cursor c2 = cr.query(RegionBounds.CONTENT_URI, null, null, null, null);
assertNotNull(c2);
assertEquals(0, c2.getCount());
}
}