You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tasks/tests/src/com/todoroo/astrid/subtasks/SubtasksHelperTest.java

60 lines
2.0 KiB
Java

package com.todoroo.astrid.subtasks;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Task;
public class SubtasksHelperTest extends SubtasksTestCase {
private Task A, B, C, D, E, F;
@Override
protected void setUp() throws Exception {
super.setUp();
createTasks();
updater.initializeFromSerializedTree(SubtasksUpdater.ACTIVE_TASKS_ORDER, filter, DEFAULT_SERIALIZED_TREE);
}
private Task createTask(String title, String uuid) {
Task t = new Task();
t.setValue(Task.TITLE, title);
t.setValue(Task.UUID, uuid);
PluginServices.getTaskService().save(t);
return t;
}
private void createTasks() {
A = createTask("A", "6"); // Local id 1
B = createTask("B", "4"); // Local id 2
C = createTask("C", "3"); // Local id 3
D = createTask("D", "1"); // Local id 4
E = createTask("E", "2"); // Local id 5
F = createTask("F", "5"); // Local id 6
}
private static final Long[] EXPECTED_ORDER = {-1L, 1L, 2L, 3L, 4L, 5L, 6L };
public void testOrderedIdArray() {
Long[] ids = SubtasksHelper.getIdArray(DEFAULT_SERIALIZED_TREE);
assertEquals(EXPECTED_ORDER.length, ids.length);
for (int i = 0; i < EXPECTED_ORDER.length; i++) {
assertEquals(EXPECTED_ORDER[i], ids[i]);
}
}
// Default order: "[-1, [1, 2, [3, 4]], 5, 6]"
private static String EXPECTED_REMOTE = "[\"-1\", [\"6\", \"4\", [\"3\", \"1\"]], \"2\", \"5\"]".replaceAll("\\s", "");
public void testLocalToRemoteIdMapping() {
String mapped = SubtasksHelper.convertTreeToRemoteIds(DEFAULT_SERIALIZED_TREE).replaceAll("\\s", "");
assertEquals(EXPECTED_REMOTE, mapped);
}
private static String EXPECTED_LOCAL = "[-1, [4, 5, [3, 2]], 6, 1]".replaceAll("\\s", "");
public void testRemoteToLocalIdMapping() {
String mapped = SubtasksHelper.convertTreeToLocalIds(DEFAULT_SERIALIZED_TREE).replaceAll("\\s", "");
assertEquals(EXPECTED_LOCAL, mapped);
}
}