package co.mwater.clientapp.test;
import co.mwater.clientapp.dbsync.DataSlicesTable;
import co.mwater.clientapp.dbsync.SyncChangesTable;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class TestSyncDatabase {
SQLiteDatabase db;
Context context;
SyncChangesTable syncChangesTable = new SyncChangesTable();
DataSlicesTable syncStatusTable = new DataSlicesTable();
TestSyncTable testSyncTable = new TestSyncTable();
public SQLiteDatabase setUp(Context context) {
this.context = context;
// Create database
context.deleteDatabase("test");
db = context.openOrCreateDatabase("test", Context.MODE_PRIVATE, null);
// Create changes table
syncChangesTable.onCreate(db);
syncStatusTable.onCreate(db);
// Create test table
testSyncTable.onCreate(db);
return db;
}
public Cursor query() {
return db.query(TestSyncTable.TABLE_NAME, null, null, null, null, null, null);
}
public void insert(String uid, int rowVersion) {
ContentValues values = new ContentValues();
values.put(TestSyncTable.COLUMN_UID, uid);
values.put(TestSyncTable.COLUMN_ROW_VERSION, rowVersion);
values.put(TestSyncTable.COLUMN_A, "apple");
values.put(TestSyncTable.COLUMN_B, "banana");
try {
db.beginTransaction();
db.insert(testSyncTable.getTableName(), null, values);
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
public void update(String uid, String a, int rowVersion) {
ContentValues values = new ContentValues();
values.put(TestSyncTable.COLUMN_ROW_VERSION, rowVersion);
values.put(TestSyncTable.COLUMN_A, a);
try {
db.beginTransaction();
db.update(testSyncTable.getTableName(), values, "uid=?", new String[] { uid });
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
public void delete(String uid) {
try {
db.beginTransaction();
db.delete(testSyncTable.getTableName(), "uid=?", new String[] { uid });
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
public void tearDown() {
context.deleteDatabase("test");
}
}