package no.openandroidweather.weathercontentprovider;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.test.AndroidTestCase;
import android.test.ProviderTestCase2;
public class WeatherContentProviderTest extends ProviderTestCase2<WeatherContentProvider> {
public WeatherContentProviderTest(){
super(WeatherContentProvider.class,WeatherContentProvider.CONTENT_URI.getAuthority());
}
public WeatherContentProviderTest(
Class<WeatherContentProvider> providerClass,
String providerAuthority) {
super(WeatherContentProvider.class,WeatherContentProvider.CONTENT_URI.getAuthority());
}
WeatherContentProvider mProvider;
@Override
protected void setUp() throws Exception {
super.setUp();
mProvider = new WeatherContentProvider(getContext());
}
public void testOnCreate() {
assertTrue(mProvider.onCreate());
}
public void testInsertQuery() {
// Check Meta:
mProvider.onCreate();
ContentValues values = WeatherProxyDatabaseOpenHelperTest
.metaTestContentValues();
Uri uri = WeatherContentProvider.CONTENT_URI;
//Returns the uri to the forecast without the meta directory
uri = mProvider.insert(uri, values);
Cursor c = mProvider.query(uri, null, null, null, null);
assertEquals(1, c.getCount());
WeatherProxyDatabaseOpenHelperTest.checkMetaCursor(c);
c.close();
// Check Forecast:
values = WeatherProxyDatabaseOpenHelperTest
.forecastTestContentValues();
uri = Uri.withAppendedPath(uri,
WeatherContentProvider.Forecast.CONTENT_DIRECTORY);
//Returns the uri to the forecast without the meta directory
uri = mProvider.insert(uri, values);
c = mProvider.query(uri, null, null, null, null);
assertEquals(1, c.getCount());
WeatherProxyDatabaseOpenHelperTest.checkForecastCursor(c);
c.close();
}
public void testInsertUpdateQuery() {
fail();
}
public void testInsertQueryDeleteQuery() {
// Check Meta:
ContentValues values = WeatherProxyDatabaseOpenHelperTest
.metaTestContentValues();
Uri uri = WeatherContentProvider.CONTENT_URI;
//Returns the uri to the forecast
Uri uriId = mProvider.insert(uri, values);
Cursor c = mProvider.query(uriId, null, null, null, null);
assertEquals(1, c.getCount());
WeatherProxyDatabaseOpenHelperTest.checkMetaCursor(c);
c.close();
// Check Forecast:
values = WeatherProxyDatabaseOpenHelperTest
.forecastTestContentValues();
uri = Uri.withAppendedPath(uriId,
WeatherContentProvider.Forecast.CONTENT_DIRECTORY);
//Returns the uri to the forecast with the forecast directory and id for the forecast
uri = mProvider.insert(uri, values);
c = mProvider.query(uri, null, null, null, null);
assertEquals(1, c.getCount());
WeatherProxyDatabaseOpenHelperTest.checkForecastCursor(c);
c.close();
//Gets number of row:
c = mProvider.query(WeatherContentProvider.CONTENT_URI, null, null, null, null);
int count = c.getCount();
c.close();
//Deletes the row and all forecasts:
assertEquals(1, mProvider.delete(uriId, null, null));
c = mProvider.query(WeatherContentProvider.CONTENT_URI, null, null, null, null);
assertEquals(count-1, c.getCount());
c.close();
//Check that there is no forecast data left:
uri = Uri.withAppendedPath(uriId, WeatherContentProvider.Forecast.CONTENT_DIRECTORY);
c = mProvider.query(uri, null,null,null,null);
assertEquals(0, c.getCount());
c.close();
}
public void testGetType() {
fail();
}
}