gtasks: passing almost every gtasks unit test

pull/14/head
Tim Su 14 years ago
parent 88f4c2a622
commit 7e8c2321ce

@ -35,7 +35,7 @@ public class GtasksDecorationExposer implements TaskDecorationExposer {
if(!gtasksPreferenceService.isLoggedIn())
return null;
if(Flags.check(Flags.GTASKS))
if(!Flags.check(Flags.GTASKS))
return null;
return createDecoration(task);

@ -16,7 +16,6 @@ import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Functions;
import com.todoroo.andlib.sql.Join;
import com.todoroo.andlib.sql.Order;
import com.todoroo.andlib.sql.QueryTemplate;
@ -26,9 +25,9 @@ import com.todoroo.astrid.api.FilterCategory;
import com.todoroo.astrid.api.FilterListHeader;
import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.MetadataApiDao.MetadataCriteria;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.MetadataApiDao.MetadataCriteria;
import com.todoroo.astrid.data.TaskApiDao.TaskCriteria;
/**
@ -54,9 +53,7 @@ public class GtasksFilterExposer extends BroadcastReceiver {
Join.left(Metadata.TABLE, Task.ID.eq(Metadata.TASK))).where(Criterion.and(
MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY),
TaskCriteria.activeAndVisible(),
GtasksMetadata.LIST_ID.eq(list.getValue(GtasksList.REMOTE_ID)))).orderBy(
Order.asc(Functions.caseStatement(GtasksMetadata.ORDER.eq(0),
Task.CREATION_DATE, GtasksMetadata.ORDER))),
GtasksMetadata.LIST_ID.eq(list.getValue(GtasksList.REMOTE_ID)))).orderBy(Order.asc(GtasksMetadata.ORDER)),
values);
return filter;

@ -4,6 +4,7 @@ import com.todoroo.andlib.data.AbstractModel;
import com.todoroo.andlib.data.Property.IntegerProperty;
import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.andlib.data.Property.StringProperty;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.utility.Preferences;
@ -14,7 +15,7 @@ import com.todoroo.astrid.utility.Preferences;
*/
public class GtasksMetadata {
private static final int VALUE_UNSET = -1;
static final int VALUE_UNSET = -1;
/** metadata key */
public static final String METADATA_KEY = "gtasks"; //$NON-NLS-1$
@ -53,7 +54,7 @@ public class GtasksMetadata {
metadata.setValue(LIST_ID, defaultList);
metadata.setValue(PARENT_TASK, (long)VALUE_UNSET);
metadata.setValue(INDENT, 0);
metadata.setValue(ORDER, VALUE_UNSET);
metadata.setValue(ORDER, (int)(DateUtilities.now() / 1000L));
if(taskId > AbstractModel.NO_ID)
metadata.setValue(Metadata.TASK, taskId);
return metadata;

@ -99,7 +99,7 @@ public class GtasksTaskListUpdater {
int indent = metadata.getValue(GtasksMetadata.INDENT);
final long parent, sibling;
long parent, sibling;
if(indent > previousIndent.get()) {
parent = previousTask.get();
sibling = -1L;
@ -107,7 +107,10 @@ public class GtasksTaskListUpdater {
sibling = previousTask.get();
parent = parents.get(sibling);
} else {
sibling = parents.get(previousTask.get());
// move up once for each indent
sibling = previousTask.get();
for(int i = indent; i < previousIndent.get(); i++)
sibling = parents.get(sibling);
parent = parents.get(sibling);
}
parents.put(taskId, parent);

@ -30,7 +30,7 @@ public final class Constants {
/**
* Whether to turn on debugging logging and UI
*/
public static final boolean DEBUG = true;
public static final boolean DEBUG = false;
/**
* Upgrade time

@ -65,7 +65,7 @@ public class GtasksTaskListUpdaterTest extends DatabaseTestCase {
public void testNewTaskOrder() {
givenTasksABCDE();
Task newTask = createTask("F", -1, 0);
Task newTask = createTask("F", GtasksMetadata.VALUE_UNSET, 0);
whenCalculatingOrder();
thenExpectMetadataIndentAndOrder(newTask, 5, 0);
@ -77,7 +77,7 @@ public class GtasksTaskListUpdaterTest extends DatabaseTestCase {
private void thenExpectMetadataIndentAndOrder(Task task, int order, int indent) {
Metadata metadata = gtasksMetadataService.getTaskMetadata(task.getId());
assertNotNull("metadata was found", metadata);
assertEquals("indentation", order, (int)metadata.getValue(GtasksMetadata.ORDER));
assertEquals("order", order, (int)metadata.getValue(GtasksMetadata.ORDER));
assertEquals("indentation", indent, (int)metadata.getValue(GtasksMetadata.INDENT));
}
@ -92,21 +92,21 @@ public class GtasksTaskListUpdaterTest extends DatabaseTestCase {
}
private void thenExpectSibling(Task task, Task expectedSibling) {
Long sibling = gtasksTaskListUpdater.siblings.get(task.getId());
long sibling = gtasksTaskListUpdater.siblings.get(task.getId());
if(expectedSibling == null)
assertNull("Task " + task.getValue(Task.TITLE) + " sibling null", sibling);
assertEquals("Task " + task.getValue(Task.TITLE) + " sibling null", -1L, sibling);
else
assertEquals("Task " + task.getValue(Task.TITLE) + " sibling " +
expectedSibling.getValue(Task.TITLE), (Long)expectedSibling.getId(), sibling);
expectedSibling.getValue(Task.TITLE), expectedSibling.getId(), sibling);
}
private void thenExpectParent(Task task, Task expectedParent) {
Long parent = gtasksTaskListUpdater.parents.get(task.getId());
long parent = gtasksTaskListUpdater.parents.get(task.getId());
if(expectedParent == null)
assertNull("Task " + task.getValue(Task.TITLE) + " parent null", parent);
assertEquals("Task " + task.getValue(Task.TITLE) + " parent null", -1L, parent);
else
assertEquals("Task " + task.getValue(Task.TITLE) + " parent " +
expectedParent.getValue(Task.TITLE), Long.valueOf(expectedParent.getId()), parent);
expectedParent.getValue(Task.TITLE), expectedParent.getId(), parent);
}
@Override
@ -153,8 +153,10 @@ public class GtasksTaskListUpdaterTest extends DatabaseTestCase {
PluginServices.getTaskService().save(task);
Metadata metadata = GtasksMetadata.createEmptyMetadata(task.getId());
metadata.setValue(GtasksMetadata.LIST_ID, "1");
metadata.setValue(GtasksMetadata.ORDER, order);
metadata.setValue(GtasksMetadata.INDENT, indent);
if(order != GtasksMetadata.VALUE_UNSET)
metadata.setValue(GtasksMetadata.ORDER, order);
if(indent != GtasksMetadata.VALUE_UNSET)
metadata.setValue(GtasksMetadata.INDENT, indent);
PluginServices.getMetadataService().save(metadata);
return task;
}

@ -0,0 +1,12 @@
package com.todoroo.astrid.provider;
import com.todoroo.andlib.data.AbstractDatabase;
import com.todoroo.astrid.test.DatabaseTestCase;
public class ProviderTestUtilities extends DatabaseTestCase {
public static final void setDatabaseOverride(AbstractDatabase database) {
Astrid3ContentProvider.setDatabaseOverride(database);
}
}

@ -5,6 +5,7 @@ import java.io.File;
import com.todoroo.andlib.test.TodorooTestCaseWithInjector;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.legacy.AlarmDatabase;
import com.todoroo.astrid.provider.ProviderTestUtilities;
import com.todoroo.astrid.service.AstridDependencyInjector;
/**
@ -34,6 +35,8 @@ public class DatabaseTestCase extends TodorooTestCaseWithInjector {
// empty out test databases
database.clear();
database.openForWriting();
ProviderTestUtilities.setDatabaseOverride(database);
}
/**

Loading…
Cancel
Save