/** * Copyright (c) 2012 Todoroo Inc * * See the file "LICENSE" for the full license governing this code. */ package com.todoroo.astrid.model; import java.util.ArrayList; import java.util.TreeSet; 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; 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<Integer>(); reminderFlags.add(Task.NOTIFY_AFTER_DEADLINE); reminderFlags.add(Task.NOTIFY_AT_DEADLINE); reminderFlags.add(Task.NOTIFY_MODE_NONSTOP); // assert no duplicates assertEquals(new TreeSet<Integer>(reminderFlags).size(), reminderFlags.size()); } /** Check defaults */ public void checkDefaults() { 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 checkCreationDate() { Task task = new Task(); taskService.save(task); assertTrue(task.getValue(Task.CREATION_DATE) > 0); } /** * Check various getters */ public void checkGetters() { 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()); } }