Upgrade tests pass! woo woo woo

pull/14/head
Tim Su 14 years ago
parent a1b12d15ef
commit 55ea028ec7

@ -184,14 +184,16 @@ public abstract class Property<TYPE> extends Field implements Cloneable {
/** Runs a SQL function and returns the result as a string */
public static class StringFunctionProperty extends StringProperty {
public StringFunctionProperty(String function, String columnName) {
super(null, columnName, function + " AS " + columnName);
super(null, columnName, function);
alias = columnName;
}
}
/** Runs a SQL function and returns the result as a string */
public static class IntegerFunctionProperty extends IntegerProperty {
public IntegerFunctionProperty(String function, String columnName) {
super(null, columnName, function + " AS " + columnName);
super(null, columnName, function);
alias = columnName;
}
}

@ -48,6 +48,13 @@ public abstract class DBObject<T extends DBObject<?>> implements Cloneable {
@Override
public final String toString() {
if (hasAlias()) {
return alias;
}
return expression;
}
public final String toStringInSelect() {
StringBuilder sb = new StringBuilder(expression);
if (hasAlias()) {
sb.append(SPACE).append(AS).append(SPACE).append(alias);

@ -149,7 +149,7 @@ public class Query {
return;
}
for (Field field : fields) {
sql.append(field).append(COMMA);
sql.append(field.toStringInSelect()).append(COMMA);
}
sql.deleteCharAt(sql.length() - 1).append(SPACE);
}

@ -3,6 +3,7 @@ package com.todoroo.astrid.tags;
import java.util.ArrayList;
import android.content.Context;
import android.util.Log;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.TodorooCursor;
@ -26,7 +27,7 @@ import com.todoroo.astrid.service.MetadataService;
*
*/
@SuppressWarnings("nls")
public class DataService {
public class TagService {
/**
* Metadata key for tag data
@ -39,7 +40,7 @@ public class DataService {
@Autowired
private MetadataService metadataService;
public DataService(@SuppressWarnings("unused") Context context) {
public TagService(@SuppressWarnings("unused") Context context) {
DependencyInjectionService.getInstance().inject(this);
}
@ -75,7 +76,7 @@ public class DataService {
*/
public Tag[] getGroupedTags(Order order) {
TodorooCursor<Metadata> cursor = metadataService.fetchWithCount(
COUNT, MetadataCriteria.withKey(KEY), order, true);
COUNT, MetadataCriteria.withKey(KEY), order);
try {
Tag[] array = new Tag[cursor.getCount()];
for (int i = 0; i < array.length; i++) {
@ -83,6 +84,7 @@ public class DataService {
array[i] = new Tag();
array[i].tag = cursor.get(Metadata.VALUE);
array[i].count = cursor.get(COUNT);
Log.e("GET GET", "GET " + array[i].tag + " count " + array[i].count);
}
return array;
} finally {

@ -27,7 +27,7 @@ import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.model.Metadata;
import com.todoroo.astrid.model.Task;
import com.todoroo.astrid.tags.DataService;
import com.todoroo.astrid.tags.TagService;
public class Astrid2To3UpgradeHelper {
@ -37,6 +37,9 @@ public class Astrid2To3UpgradeHelper {
@Autowired
private MetadataDao metadataDao;
@Autowired
private MetadataService metadataService;
@Autowired
private Database database;
@ -131,6 +134,9 @@ public class Astrid2To3UpgradeHelper {
// --- upgrade RTM sync mappings (?)
// --- clean up database
metadataService.cleanup();
database.close();
}
@ -267,7 +273,7 @@ public class Astrid2To3UpgradeHelper {
return;
Metadata metadata = new Metadata();
metadata.setValue(Metadata.KEY, DataService.KEY);
metadata.setValue(Metadata.KEY, TagService.KEY);
long tagId = -1;
String tag = null;
for(mapCursor.moveToFirst(); !mapCursor.isAfterLast(); mapCursor.moveToNext()) {
@ -283,11 +289,12 @@ public class Astrid2To3UpgradeHelper {
if(tag == null)
tag = tagCursor.getString(1);
long task = mapCursor.getLong(1);
metadata.clear();
metadata.setValue(Metadata.TASK, task);
metadata.setValue(Metadata.KEY, TagService.KEY);
metadata.setValue(Metadata.VALUE, tag);
Log.e("PUT PUT", "PUT task " + task + " and tag " + tag);
metadataDao.createItem(metadata);
metadata.clearValue(Metadata.ID);
}
}

@ -1,5 +1,7 @@
package com.todoroo.astrid.service;
import android.util.Log;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.data.Property.CountProperty;
@ -68,11 +70,10 @@ public class MetadataService {
* @param onlyCountsGreaterThanZero only include items where count > 0
*/
public TodorooCursor<Metadata> fetchWithCount(CountProperty count,
Criterion where, Order order, boolean onlyCountsGreaterThanZero) {
Criterion where, Order order) {
Query query = Query.select(Metadata.VALUE.as(Metadata.VALUE.name), count).
where(where).orderBy(order);
if(onlyCountsGreaterThanZero)
query.having(count.gt(0));
where(where).orderBy(order).groupBy(Metadata.VALUE);
Log.e("egads", query.toString());
TodorooCursor<Metadata> cursor = metadataDao.query(query);
return cursor;
}

@ -18,8 +18,8 @@ import com.todoroo.astrid.legacy.data.task.TaskModelForEdit;
import com.todoroo.astrid.legacy.data.task.AbstractTaskModel.RepeatInfo;
import com.todoroo.astrid.model.Task;
import com.todoroo.astrid.service.Astrid2To3UpgradeHelper;
import com.todoroo.astrid.tags.DataService;
import com.todoroo.astrid.tags.DataService.Tag;
import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.tags.TagService.Tag;
import com.todoroo.astrid.test.DatabaseTestCase;
public class Astrid2To3UpgradeTests extends DatabaseTestCase {
@ -147,8 +147,8 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
// verify that data exists in our new table
database.openForReading();
DataService tagService = new DataService(getContext());
Tag[] tags = tagService.getGroupedTags(DataService.GROUPED_TAGS_BY_ALPHA);
TagService tagService = new TagService(getContext());
Tag[] tags = tagService.getGroupedTags(TagService.GROUPED_TAGS_BY_ALPHA);
assertEquals(2, tags.length);
assertEquals("salty", tags[0].tag);
assertEquals("tasty", tags[1].tag);
@ -158,7 +158,7 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
assertEquals(3, tasks.getCount());
tasks.moveToFirst();
Task task = new Task(tasks);
assertEquals("tasty,salty", tagService.getTagsAsString(task.getId()));
assertEquals("tasty, salty", tagService.getTagsAsString(task.getId()));
tasks.moveToNext();
task.readFromCursor(tasks);
assertEquals("tasty", tagService.getTagsAsString(task.getId()));
@ -201,8 +201,8 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
// verify that data exists in our new table
database.openForReading();
DataService tagService = new DataService(getContext());
Tag[] tags = tagService.getGroupedTags(DataService.GROUPED_TAGS_BY_ALPHA);
TagService tagService = new TagService(getContext());
Tag[] tags = tagService.getGroupedTags(TagService.GROUPED_TAGS_BY_ALPHA);
assertEquals(1, tags.length);
assertEquals("attached", tags[0].tag);

Loading…
Cancel
Save