From d77cd2a0dfe8bef5195f341afae23b9e279b037c Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 14 Mar 2013 17:02:54 -0700 Subject: [PATCH] Added a unit test to confirm that rolling back transactions works the way we expect it to --- .../todoroo/astrid/dao/DatabaseDaoTests.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 tests/src/com/todoroo/astrid/dao/DatabaseDaoTests.java diff --git a/tests/src/com/todoroo/astrid/dao/DatabaseDaoTests.java b/tests/src/com/todoroo/astrid/dao/DatabaseDaoTests.java new file mode 100644 index 000000000..b46be1911 --- /dev/null +++ b/tests/src/com/todoroo/astrid/dao/DatabaseDaoTests.java @@ -0,0 +1,54 @@ +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.outstandingEntryFlag = 1; + } + + 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 tasks = dao.query(Query.select(Task.ID)); + try { + assertEquals(0, tasks.getCount()); + } finally { + tasks.close(); + } + + TodorooCursor outstanding = outstandingDao.query(Query.select(TaskOutstanding.ID)); + try { + assertEquals(0, outstanding.getCount()); + } finally { + outstanding.close(); + } + } + +}