package com.todoroo.astrid.dao; import android.content.ContentValues; import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.sql.Query; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.TaskOutstanding; import com.todoroo.astrid.test.DatabaseTestCase; public class DatabaseDaoTests extends DatabaseTestCase { private TaskDao dao; private TaskOutstandingDao outstandingDao; @Override protected void setUp() throws Exception { super.setUp(); RemoteModelDao.setOutstandingEntryFlags(RemoteModelDao.OUTSTANDING_ENTRY_FLAG_RECORD_OUTSTANDING); } public void testFailedTransactionCreatesNoRows() { dao = new TaskDao() { @Override protected int createOutstandingEntries(long modelId, ContentValues modelSetValues) { super.createOutstandingEntries(modelId, modelSetValues); return -1; } }; dao.setDatabase(database); outstandingDao = new TaskOutstandingDao(); outstandingDao.setDatabase(database); Task t = new Task(); t.setValue(Task.TITLE, "Should not appear"); dao.createNew(t); TodorooCursor<Task> tasks = dao.query(Query.select(Task.ID)); try { assertEquals(0, tasks.getCount()); } finally { tasks.close(); } TodorooCursor<TaskOutstanding> outstanding = outstandingDao.query(Query.select(TaskOutstanding.ID)); try { assertEquals(0, outstanding.getCount()); } finally { outstanding.close(); } } }