Update unit tests

* Fix repeat tests
* Migrate some instrument task tests
* Enable instrumentTest during travis build
pull/73/head
Alex Baker 11 years ago
parent 5c753ea491
commit 381d7ab4c5

@ -28,14 +28,14 @@ before_install:
- echo yes | android update sdk --filter extra-android-m2repository --no-ui --force > /dev/null
# Create and start emulator
# - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI
# - emulator -avd test -no-skin -no-audio -no-window &
- echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI
- emulator -avd test -no-skin -no-audio -no-window &
before_script:
# - chmod +x .wait_for_emulator.sh
# - ./.wait_for_emulator.sh
# - adb shell input keyevent 82 &
- chmod +x .wait_for_emulator.sh
- ./.wait_for_emulator.sh
- adb shell input keyevent 82 &
script:
- ./gradlew test --stacktrace --info
# - ./gradlew :astrid:connectedInstrumentTest --stacktrace --info
- ./gradlew :astrid:connectedInstrumentTest --stacktrace --info

@ -1,17 +0,0 @@
/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.andlib.test;
import android.test.AndroidTestCase;
import junit.framework.Assert;
public class SimpleAndroidTest extends AndroidTestCase {
public void testSimpleAssert() throws Throwable {
Assert.assertTrue(true);
}
}

@ -5,75 +5,20 @@
*/
package com.todoroo.astrid.model;
import android.content.ContentValues;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.test.DatabaseTestCase;
import com.todoroo.astrid.utility.AstridPreferences;
import java.util.ArrayList;
import java.util.TreeSet;
public class TaskTests extends DatabaseTestCase {
@Autowired
TaskService taskService;
/** Sanity-check the constants */
public void testSanity() {
assertTrue(Task.IMPORTANCE_DO_OR_DIE < Task.IMPORTANCE_MUST_DO);
assertTrue(Task.IMPORTANCE_MUST_DO < Task.IMPORTANCE_SHOULD_DO);
assertTrue(Task.IMPORTANCE_SHOULD_DO < Task.IMPORTANCE_NONE);
ArrayList<Integer> reminderFlags = new ArrayList<>();
reminderFlags.add(Task.NOTIFY_AFTER_DEADLINE);
reminderFlags.add(Task.NOTIFY_AT_DEADLINE);
reminderFlags.add(Task.NOTIFY_MODE_NONSTOP);
// assert no duplicates
assertEquals(new TreeSet<>(reminderFlags).size(),
reminderFlags.size());
}
/** Check defaults */
public void testDefaults() {
AstridPreferences.setPreferenceDefaults();
ContentValues defaults = new Task().getDefaultValues();
assertTrue(defaults.containsKey(Task.TITLE.name));
assertTrue(defaults.containsKey(Task.DUE_DATE.name));
assertTrue(defaults.containsKey(Task.HIDE_UNTIL.name));
assertTrue(defaults.containsKey(Task.COMPLETION_DATE.name));
assertTrue(defaults.containsKey(Task.IMPORTANCE.name));
}
/** Check task gets a creation date at some point */
public void testCreationDate() {
Task task = new Task();
taskService.save(task);
assertTrue(task.getValue(Task.CREATION_DATE) > 0);
}
/**
* Check various getters
*/
public void testGetters() {
Task task = new Task();
assertFalse(task.isCompleted());
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
assertTrue(task.isCompleted());
task = new Task();
assertFalse(task.isHidden());
task.setValue(Task.HIDE_UNTIL, DateUtilities.now() + 1000);
assertTrue(task.isHidden());
task = new Task();
assertFalse(task.hasDueDate());
task.setValue(Task.DUE_DATE, DateUtilities.now() + 1000);
assertTrue(task.hasDueDate());
}
}

@ -1,17 +0,0 @@
/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.astrid.provider;
import com.todoroo.andlib.data.AbstractDatabase;
import com.todoroo.astrid.test.DatabaseTestCase;
public class ProviderTestUtilities extends DatabaseTestCase {
public static void setDatabaseOverride(AbstractDatabase database) {
Astrid3ContentProvider.setDatabaseOverride(database);
}
}

@ -8,7 +8,7 @@ package com.todoroo.astrid.test;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.test.TodorooTestCaseWithInjector;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.provider.ProviderTestUtilities;
import com.todoroo.astrid.provider.Astrid3ContentProvider;
import com.todoroo.astrid.service.AstridDependencyInjector;
/**
@ -40,7 +40,7 @@ public class DatabaseTestCase extends TodorooTestCaseWithInjector {
database.clear();
database.openForWriting();
ProviderTestUtilities.setDatabaseOverride(database);
Astrid3ContentProvider.setDatabaseOverride(database);
}
@Override

@ -145,6 +145,16 @@ public class DateUtilitiesTest extends TodorooRobolectricTestCase {
}});
}
@Test
public void getSixMonthsFromEndOfDecember() {
final DateTime now = new DateTime(2013, 12, 31, 17, 17, 32, 900);
final long expected = new DateTime(2014, 7, 1, 17, 17, 32, 900).getMillis();
freezeAt(now).thawAfter(new Snippet() {{
assertEquals(expected, addCalendarMonthsToUnixtime(now.getMillis(), 6));
}});
}
@Test
public void oneMonthFromEndOfJanuary() {
DateTime now = new DateTime(2014, 1, 31, 12, 54, 33, 175);

@ -1,5 +1,9 @@
package com.todoroo.astrid.data;
import android.content.ContentValues;
import com.todoroo.astrid.utility.AstridPreferences;
import org.joda.time.DateTime;
import org.junit.After;
import org.junit.Before;
@ -8,6 +12,9 @@ import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.tasks.Snippet;
import java.util.ArrayList;
import java.util.TreeSet;
import static com.todoroo.astrid.data.Task.COMPLETION_DATE;
import static com.todoroo.astrid.data.Task.DELETION_DATE;
import static com.todoroo.astrid.data.Task.DUE_DATE;
@ -234,4 +241,30 @@ public class TaskTest {
assertTrue(task.isOverdue());
}});
}
@Test
public void testDefaults() {
AstridPreferences.setPreferenceDefaults();
ContentValues defaults = new Task().getDefaultValues();
assertTrue(defaults.containsKey(Task.TITLE.name));
assertTrue(defaults.containsKey(Task.DUE_DATE.name));
assertTrue(defaults.containsKey(Task.HIDE_UNTIL.name));
assertTrue(defaults.containsKey(Task.COMPLETION_DATE.name));
assertTrue(defaults.containsKey(Task.IMPORTANCE.name));
}
@Test
public void testSanity() {
assertTrue(Task.IMPORTANCE_DO_OR_DIE < Task.IMPORTANCE_MUST_DO);
assertTrue(Task.IMPORTANCE_MUST_DO < Task.IMPORTANCE_SHOULD_DO);
assertTrue(Task.IMPORTANCE_SHOULD_DO < Task.IMPORTANCE_NONE);
ArrayList<Integer> reminderFlags = new ArrayList<>();
reminderFlags.add(Task.NOTIFY_AFTER_DEADLINE);
reminderFlags.add(Task.NOTIFY_AT_DEADLINE);
reminderFlags.add(Task.NOTIFY_MODE_NONSTOP);
// assert no duplicates
assertEquals(new TreeSet<>(reminderFlags).size(), reminderFlags.size());
}
}

@ -16,7 +16,6 @@ import java.text.ParseException;
import static com.google.ical.values.Frequency.DAILY;
import static com.google.ical.values.Frequency.HOURLY;
import static com.google.ical.values.Frequency.MINUTELY;
import static com.google.ical.values.Frequency.MONTHLY;
import static com.google.ical.values.Frequency.WEEKLY;
import static com.google.ical.values.Frequency.YEARLY;
import static com.todoroo.andlib.utility.DateUtilities.addCalendarMonthsToUnixtime;
@ -25,7 +24,6 @@ import static java.util.concurrent.TimeUnit.DAYS;
import static java.util.concurrent.TimeUnit.HOURS;
import static java.util.concurrent.TimeUnit.MINUTES;
import static org.junit.Assert.assertEquals;
import static org.tasks.date.DateTimeUtils.currentTimeMillis;
@SuppressLint("NewApi")
@RunWith(RobolectricTestRunner.class)
@ -36,8 +34,8 @@ public class RepeatTaskCompleteListenerTest {
private final long completionDate;
{
completionDate = currentTimeMillis();
dueDate = completionDate - DAYS.toMillis(7);
completionDate = new DateTime(2014, 1, 7, 17, 17, 32, 900).getMillis();
dueDate = new DateTime(2013, 12, 31, 17, 17, 32, 900).getMillis();
task.setValue(Task.DUE_DATE, dueDate);
task.setValue(Task.COMPLETION_DATE, completionDate);
}
@ -64,8 +62,16 @@ public class RepeatTaskCompleteListenerTest {
@Test
public void monthlyRepeat() {
checkExpected(6, addCalendarMonthsToUnixtime(dueDate, 6), MONTHLY, false);
checkExpected(6, addCalendarMonthsToUnixtime(completionDate, 6), MONTHLY, true);
assertEquals(
new DateTime(2014, 7, 7, 17, 17, 1, 0).getMillis(),
nextDueDate(6, Frequency.MONTHLY, true));
}
@Test
public void monthlyRepeatAtEndOfMonth() {
assertEquals(
new DateTime(2014, 6, 30, 17, 17, 1, 0).getMillis(),
nextDueDate(6, Frequency.MONTHLY, false));
}
@Test
@ -80,20 +86,22 @@ public class RepeatTaskCompleteListenerTest {
}
private void checkExpected(int count, long expected, Frequency frequency, boolean repeatAfterCompletion) {
assertEquals(
new DateTime(expected)
.withSecondOfMinute(1)
.withMillisOfSecond(0)
.getMillis(),
nextDueDate(count, frequency, repeatAfterCompletion));
}
private long nextDueDate(int count, Frequency frequency, boolean repeatAfterCompletion) {
RRule rrule = new RRule();
rrule.setInterval(count);
rrule.setFreq(frequency);
long nextDueDate;
try {
nextDueDate = computeNextDueDate(task, rrule.toIcal(), repeatAfterCompletion);
return computeNextDueDate(task, rrule.toIcal(), repeatAfterCompletion);
} catch (ParseException e) {
throw new RuntimeException(e);
}
assertEquals(
new DateTime(expected)
.withSecondOfMinute(1)
.withMillisOfSecond(0)
.getMillis(),
nextDueDate);
}
}

Loading…
Cancel
Save