Speeding up repeat tests unit test.

pull/14/head
Tim Su 14 years ago
parent 3cb375924d
commit 1fd2ca4599

@ -2,6 +2,8 @@ package com.todoroo.astrid.repeats;
import java.util.Date; import java.util.Date;
import android.content.Intent;
import com.google.ical.values.Frequency; import com.google.ical.values.Frequency;
import com.google.ical.values.RRule; import com.google.ical.values.RRule;
import com.timsu.astrid.R; import com.timsu.astrid.R;
@ -9,6 +11,7 @@ import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.dao.MetadataDao; import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
@ -18,8 +21,6 @@ import com.todoroo.astrid.utility.Preferences;
public class RepeatTests extends DatabaseTestCase { public class RepeatTests extends DatabaseTestCase {
private static final int REPEAT_WAIT = 1500;
@Autowired @Autowired
TaskDao taskDao; TaskDao taskDao;
@ -39,10 +40,7 @@ public class RepeatTests extends DatabaseTestCase {
taskDao.save(task); taskDao.save(task);
task.setValue(Task.COMPLETION_DATE, DateUtilities.now()); task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
taskDao.save(task); saveAndTriggerRepeatListener(task);
// wait for repeat handler
Thread.sleep(REPEAT_WAIT);
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.ID)); TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.ID));
try { try {
@ -52,6 +50,16 @@ public class RepeatTests extends DatabaseTestCase {
} }
} }
private void saveAndTriggerRepeatListener(Task task) {
if(task.isSaved())
taskDao.saveExisting(task);
else
taskDao.createNew(task);
Intent intent = new Intent(AstridApiConstants.BROADCAST_EVENT_TASK_COMPLETED);
intent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, task.getId());
new RepeatTaskCompleteListener().onReceive(getContext(), intent);
}
/** test daily repeat from due date, but with no due date set */ /** test daily repeat from due date, but with no due date set */
public void testDailyWithNoDueDate() throws Exception { public void testDailyWithNoDueDate() throws Exception {
Task task = new Task(); Task task = new Task();
@ -63,10 +71,7 @@ public class RepeatTests extends DatabaseTestCase {
taskDao.save(task); taskDao.save(task);
task.setValue(Task.COMPLETION_DATE, DateUtilities.now()); task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
taskDao.save(task); saveAndTriggerRepeatListener(task);
// wait for repeat handler
Thread.sleep(REPEAT_WAIT);
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES)); TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
try { try {
@ -105,10 +110,7 @@ public class RepeatTests extends DatabaseTestCase {
taskDao.save(task); taskDao.save(task);
task.setValue(Task.COMPLETION_DATE, DateUtilities.now()); task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
taskDao.save(task); saveAndTriggerRepeatListener(task);
// wait for repeat handler
Thread.sleep(REPEAT_WAIT);
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES)); TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
try { try {
@ -147,10 +149,7 @@ public class RepeatTests extends DatabaseTestCase {
taskDao.save(task); taskDao.save(task);
task.setValue(Task.COMPLETION_DATE, DateUtilities.now()); task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
taskDao.save(task); saveAndTriggerRepeatListener(task);
// wait for repeat handler
Thread.sleep(2 * REPEAT_WAIT);
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES)); TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
try { try {
@ -190,10 +189,7 @@ public class RepeatTests extends DatabaseTestCase {
taskDao.save(task); taskDao.save(task);
task.setValue(Task.COMPLETION_DATE, DateUtilities.now()); task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
taskDao.save(task); saveAndTriggerRepeatListener(task);
// wait for repeat handler
Thread.sleep(REPEAT_WAIT);
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES)); TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
try { try {
@ -235,10 +231,7 @@ public class RepeatTests extends DatabaseTestCase {
metadataDao.persist(metadata); metadataDao.persist(metadata);
task.setValue(Task.COMPLETION_DATE, DateUtilities.now()); task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
taskDao.save(task); saveAndTriggerRepeatListener(task);
// wait for repeat handler
Thread.sleep(REPEAT_WAIT);
TodorooCursor<Metadata> cursor = metadataDao.query(Query.select(Metadata.TASK)); TodorooCursor<Metadata> cursor = metadataDao.query(Query.select(Metadata.TASK));
try { try {
@ -269,10 +262,7 @@ public class RepeatTests extends DatabaseTestCase {
taskDao.save(task); taskDao.save(task);
task.setValue(Task.COMPLETION_DATE, DateUtilities.now()); task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
taskDao.save(task); saveAndTriggerRepeatListener(task);
// wait for repeat handler
Thread.sleep(REPEAT_WAIT);
TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES)); TodorooCursor<Task> cursor = taskDao.query(Query.select(Task.PROPERTIES));
try { try {

Loading…
Cancel
Save