|
|
@ -5,12 +5,15 @@ import java.util.Date;
|
|
|
|
import com.todoroo.andlib.data.TodorooCursor;
|
|
|
|
import com.todoroo.andlib.data.TodorooCursor;
|
|
|
|
import com.todoroo.andlib.data.sql.Query;
|
|
|
|
import com.todoroo.andlib.data.sql.Query;
|
|
|
|
import com.todoroo.andlib.service.Autowired;
|
|
|
|
import com.todoroo.andlib.service.Autowired;
|
|
|
|
|
|
|
|
import com.todoroo.astrid.alarms.Alarm;
|
|
|
|
import com.todoroo.astrid.dao.TaskDao;
|
|
|
|
import com.todoroo.astrid.dao.TaskDao;
|
|
|
|
|
|
|
|
import com.todoroo.astrid.legacy.data.alerts.AlertController;
|
|
|
|
import com.todoroo.astrid.legacy.data.enums.Importance;
|
|
|
|
import com.todoroo.astrid.legacy.data.enums.Importance;
|
|
|
|
import com.todoroo.astrid.legacy.data.enums.RepeatInterval;
|
|
|
|
import com.todoroo.astrid.legacy.data.enums.RepeatInterval;
|
|
|
|
import com.todoroo.astrid.legacy.data.tag.TagController;
|
|
|
|
import com.todoroo.astrid.legacy.data.tag.TagController;
|
|
|
|
import com.todoroo.astrid.legacy.data.tag.TagIdentifier;
|
|
|
|
import com.todoroo.astrid.legacy.data.tag.TagIdentifier;
|
|
|
|
import com.todoroo.astrid.legacy.data.task.TaskController;
|
|
|
|
import com.todoroo.astrid.legacy.data.task.TaskController;
|
|
|
|
|
|
|
|
import com.todoroo.astrid.legacy.data.task.TaskIdentifier;
|
|
|
|
import com.todoroo.astrid.legacy.data.task.TaskModelForEdit;
|
|
|
|
import com.todoroo.astrid.legacy.data.task.TaskModelForEdit;
|
|
|
|
import com.todoroo.astrid.legacy.data.task.AbstractTaskModel.RepeatInfo;
|
|
|
|
import com.todoroo.astrid.legacy.data.task.AbstractTaskModel.RepeatInfo;
|
|
|
|
import com.todoroo.astrid.model.Task;
|
|
|
|
import com.todoroo.astrid.model.Task;
|
|
|
@ -25,7 +28,7 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
|
|
|
|
TaskDao taskDao;
|
|
|
|
TaskDao taskDao;
|
|
|
|
|
|
|
|
|
|
|
|
public void upgrade2To3() {
|
|
|
|
public void upgrade2To3() {
|
|
|
|
new UpgradeService().performUpgrade(130, 150);
|
|
|
|
new UpgradeService().upgrade2To3();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static void assertDatesEqual(Date old, int newDate) {
|
|
|
|
public static void assertDatesEqual(Date old, int newDate) {
|
|
|
@ -35,6 +38,9 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
|
|
|
|
assertEquals(old.getTime() / 1000L, newDate);
|
|
|
|
assertEquals(old.getTime() / 1000L, newDate);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Test upgrade doesn't crash and burn when there is nothing
|
|
|
|
|
|
|
|
*/
|
|
|
|
public void testEmptyUpgrade() {
|
|
|
|
public void testEmptyUpgrade() {
|
|
|
|
TaskController taskController = new TaskController(getContext());
|
|
|
|
TaskController taskController = new TaskController(getContext());
|
|
|
|
taskController.open();
|
|
|
|
taskController.open();
|
|
|
@ -48,6 +54,9 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
|
|
|
|
assertEquals(0, tasks.getCount());
|
|
|
|
assertEquals(0, tasks.getCount());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Test various parameters of tasks table
|
|
|
|
|
|
|
|
*/
|
|
|
|
public void testTaskTableUpgrade() {
|
|
|
|
public void testTaskTableUpgrade() {
|
|
|
|
TaskController taskController = new TaskController(getContext());
|
|
|
|
TaskController taskController = new TaskController(getContext());
|
|
|
|
taskController.open();
|
|
|
|
taskController.open();
|
|
|
@ -106,7 +115,9 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
|
|
|
|
assertDatesEqual(createdDate, task.getValue(Task.MODIFICATION_DATE));
|
|
|
|
assertDatesEqual(createdDate, task.getValue(Task.MODIFICATION_DATE));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Test basic upgrading of tags
|
|
|
|
|
|
|
|
*/
|
|
|
|
public void testTagTableUpgrade() {
|
|
|
|
public void testTagTableUpgrade() {
|
|
|
|
TaskController taskController = new TaskController(getContext());
|
|
|
|
TaskController taskController = new TaskController(getContext());
|
|
|
|
taskController.open();
|
|
|
|
taskController.open();
|
|
|
@ -139,7 +150,7 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
|
|
|
|
Tag[] tags = tagService.getGroupedTags(DataService.GROUPED_TAGS_BY_ALPHA);
|
|
|
|
Tag[] tags = tagService.getGroupedTags(DataService.GROUPED_TAGS_BY_ALPHA);
|
|
|
|
assertEquals(2, tags.length);
|
|
|
|
assertEquals(2, tags.length);
|
|
|
|
assertEquals("salty", tags[0].tag);
|
|
|
|
assertEquals("salty", tags[0].tag);
|
|
|
|
assertEquals("tasty", tags[0].tag);
|
|
|
|
assertEquals("tasty", tags[1].tag);
|
|
|
|
|
|
|
|
|
|
|
|
// verify that tags are applied correctly
|
|
|
|
// verify that tags are applied correctly
|
|
|
|
TodorooCursor<Task> tasks = taskDao.query(Query.select(Task.PROPERTIES));
|
|
|
|
TodorooCursor<Task> tasks = taskDao.query(Query.select(Task.PROPERTIES));
|
|
|
@ -153,9 +164,95 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
|
|
|
|
tasks.moveToNext();
|
|
|
|
tasks.moveToNext();
|
|
|
|
task.readFromCursor(tasks);
|
|
|
|
task.readFromCursor(tasks);
|
|
|
|
assertEquals("", tagService.getTagsAsString(task.getId()));
|
|
|
|
assertEquals("", tagService.getTagsAsString(task.getId()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Test basic upgrading when tags point to deleted tasks
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public void testDanglingTagsUpgrade() {
|
|
|
|
|
|
|
|
TaskController taskController = new TaskController(getContext());
|
|
|
|
|
|
|
|
taskController.open();
|
|
|
|
|
|
|
|
TagController tagController = new TagController(getContext());
|
|
|
|
|
|
|
|
tagController.open();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// create some ish
|
|
|
|
|
|
|
|
TagIdentifier tag1 = tagController.createTag("dangling");
|
|
|
|
|
|
|
|
TagIdentifier tag2 = tagController.createTag("hanging");
|
|
|
|
|
|
|
|
TagIdentifier tag3 = tagController.createTag("attached");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TaskModelForEdit cliff = new TaskModelForEdit();
|
|
|
|
|
|
|
|
cliff.setName("cliff");
|
|
|
|
|
|
|
|
taskController.saveTask(cliff, false);
|
|
|
|
|
|
|
|
TaskModelForEdit water = new TaskModelForEdit();
|
|
|
|
|
|
|
|
water.setName("water");
|
|
|
|
|
|
|
|
taskController.saveTask(water, false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// fake task identifiers
|
|
|
|
|
|
|
|
tagController.addTag(new TaskIdentifier(10), tag1);
|
|
|
|
|
|
|
|
tagController.addTag(new TaskIdentifier(15), tag2);
|
|
|
|
|
|
|
|
tagController.addTag(cliff.getTaskIdentifier(), tag3);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// assert created
|
|
|
|
|
|
|
|
assertEquals(3, tagController.getAllTags().size());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// upgrade
|
|
|
|
|
|
|
|
upgrade2To3();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// verify that data exists in our new table
|
|
|
|
|
|
|
|
database.openForReading();
|
|
|
|
|
|
|
|
DataService tagService = new DataService(getContext());
|
|
|
|
|
|
|
|
Tag[] tags = tagService.getGroupedTags(DataService.GROUPED_TAGS_BY_ALPHA);
|
|
|
|
|
|
|
|
assertEquals(1, tags.length);
|
|
|
|
|
|
|
|
assertEquals("attached", tags[0].tag);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// verify that tags are applied correctly
|
|
|
|
|
|
|
|
TodorooCursor<Task> tasks = taskDao.query(Query.select(Task.PROPERTIES));
|
|
|
|
|
|
|
|
assertEquals(2, tasks.getCount());
|
|
|
|
|
|
|
|
tasks.moveToFirst();
|
|
|
|
|
|
|
|
Task task = new Task(tasks);
|
|
|
|
|
|
|
|
assertEquals("attached", tagService.getTagsAsString(task.getId()));
|
|
|
|
|
|
|
|
tasks.moveToNext();
|
|
|
|
|
|
|
|
task.readFromCursor(tasks);
|
|
|
|
|
|
|
|
assertEquals("", tagService.getTagsAsString(task.getId()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Test basic upgrading of alerts table
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public void testAlertTableUpgrade() {
|
|
|
|
|
|
|
|
TaskController taskController = new TaskController(getContext());
|
|
|
|
|
|
|
|
taskController.open();
|
|
|
|
|
|
|
|
AlertController alertController = new AlertController(getContext());
|
|
|
|
|
|
|
|
alertController.open();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// create some ish
|
|
|
|
|
|
|
|
TaskModelForEdit christmas = new TaskModelForEdit();
|
|
|
|
|
|
|
|
taskController.saveTask(christmas, false);
|
|
|
|
|
|
|
|
Date x1 = new Date(0,11,25);
|
|
|
|
|
|
|
|
Date x2 = new Date(1,11,25);
|
|
|
|
|
|
|
|
alertController.addAlert(christmas.getTaskIdentifier(), x1);
|
|
|
|
|
|
|
|
alertController.addAlert(christmas.getTaskIdentifier(), x2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// assert created
|
|
|
|
|
|
|
|
assertEquals(2, alertController.getTaskAlerts(christmas.getTaskIdentifier()).size());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// upgradeia32-sun-java6-bin
|
|
|
|
|
|
|
|
upgrade2To3();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// verify that data exists in our new table
|
|
|
|
|
|
|
|
database.openForReading();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
alarmsDatabase.openForReading();
|
|
|
|
|
|
|
|
TodorooCursor<Alarm> cursor = alarmsDatabase.getDao().query(Query.select(Alarm.TIME));
|
|
|
|
|
|
|
|
assertEquals(2, cursor.getCount());
|
|
|
|
|
|
|
|
cursor.moveToFirst();
|
|
|
|
|
|
|
|
Alarm alarm = new Alarm(cursor);
|
|
|
|
|
|
|
|
assertDatesEqual(x1, alarm.getValue(Alarm.TIME));
|
|
|
|
|
|
|
|
cursor.moveToNext();
|
|
|
|
|
|
|
|
alarm.readFromCursor(cursor);
|
|
|
|
|
|
|
|
assertDatesEqual(x2, alarm.getValue(Alarm.TIME));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|