package com.uphyca.testing.test;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import junit.framework.JUnit4TestAdapter;
import org.junit.Test;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import com.uphyca.testing.IsolatedAndroidTestCase;
public class IsolatedAndroidTestCaseTest extends IsolatedAndroidTestCase {
public static final junit.framework.Test suite() {
return new JUnit4TestAdapter(IsolatedAndroidTestCaseTest.class);
}
@Test
public void assertPreconditions() {
assertNotNull(getMockContext());
}
private void invokeDatabaseOperation() {
Context context = getMockContext();
String database = "test.db";
CursorFactory factory = null;
int version = 1;
SQLiteOpenHelper helper = new SQLiteOpenHelper(context,
database,
factory,
version) {
@Override
public void onUpgrade(SQLiteDatabase db,
int oldVersion,
int newVersion) {
onCreate(db);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table test (_id integer primary key autoincrement not null, name varchar);");
}
};
SQLiteDatabase db = helper.getWritableDatabase();
assertThat(db.query("test", null, null, null, null, null, null)
.getCount(), is(0));
ContentValues values = new ContentValues();
values.put("name", "foo");
db.insert("test", null, values);
assertThat(db.query("test", null, null, null, null, null, null)
.getCount(), is(1));
}
/**
* If context is not isolated when thatDatabaseShouldBeIsolated1 or thatDatabaseShouldBeIsolated2 got failed.
*/
@Test
public void thatDatabaseShouldBeIsolated1() {
invokeDatabaseOperation();
}
/**
* If context is not isolated when thatDatabaseShouldBeIsolated1 or thatDatabaseShouldBeIsolated2 got failed.
*/
@Test
public void thatDatabaseShouldBeIsolated2() {
invokeDatabaseOperation();
}
}