|
|
@ -23,6 +23,7 @@ import android.graphics.Color;
|
|
|
|
import android.support.test.runner.AndroidJUnit4;
|
|
|
|
import android.support.test.runner.AndroidJUnit4;
|
|
|
|
import android.test.suitebuilder.annotation.SmallTest;
|
|
|
|
import android.test.suitebuilder.annotation.SmallTest;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.isoron.helpers.DateHelper;
|
|
|
|
import org.isoron.uhabits.models.Habit;
|
|
|
|
import org.isoron.uhabits.models.Habit;
|
|
|
|
import org.junit.Before;
|
|
|
|
import org.junit.Before;
|
|
|
|
import org.junit.Test;
|
|
|
|
import org.junit.Test;
|
|
|
@ -31,10 +32,12 @@ import org.junit.runner.RunWith;
|
|
|
|
import java.util.LinkedList;
|
|
|
|
import java.util.LinkedList;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import static org.hamcrest.Matchers.equalTo;
|
|
|
|
import static org.hamcrest.Matchers.is;
|
|
|
|
import static org.hamcrest.Matchers.is;
|
|
|
|
import static org.hamcrest.Matchers.nullValue;
|
|
|
|
import static org.hamcrest.Matchers.nullValue;
|
|
|
|
import static org.hamcrest.core.IsNot.not;
|
|
|
|
import static org.hamcrest.core.IsNot.not;
|
|
|
|
import static org.junit.Assert.assertThat;
|
|
|
|
import static org.junit.Assert.assertThat;
|
|
|
|
|
|
|
|
import static org.junit.Assert.fail;
|
|
|
|
|
|
|
|
|
|
|
|
@RunWith(AndroidJUnit4.class)
|
|
|
|
@RunWith(AndroidJUnit4.class)
|
|
|
|
@SmallTest
|
|
|
|
@SmallTest
|
|
|
@ -90,11 +93,116 @@ public class HabitTest
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
public void reorderTest()
|
|
|
|
public void get_withValidId()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
List<Long> ids = new LinkedList<>();
|
|
|
|
Habit habit = new Habit();
|
|
|
|
|
|
|
|
habit.save();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Habit habit2 = Habit.get(habit.getId());
|
|
|
|
|
|
|
|
assertThat(habit, equalTo(habit2));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void get_withInvalidId()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Habit habit = Habit.get(123456L);
|
|
|
|
|
|
|
|
assertThat(habit, is(nullValue()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void getAll_withoutArchived()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
List<Habit> habits = new LinkedList<>();
|
|
|
|
|
|
|
|
List<Habit> habitsWithArchived = new LinkedList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < 10; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Habit h = new Habit();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(i % 2 == 0)
|
|
|
|
|
|
|
|
h.archived = 1;
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
habits.add(h);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
habitsWithArchived.add(h);
|
|
|
|
|
|
|
|
h.save();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(habits, equalTo(Habit.getAll(false)));
|
|
|
|
|
|
|
|
assertThat(habitsWithArchived, equalTo(Habit.getAll(true)));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void getByPosition()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
List<Habit> habits = new LinkedList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < 10; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Habit h = new Habit();
|
|
|
|
|
|
|
|
h.save();
|
|
|
|
|
|
|
|
habits.add(h);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < 10; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Habit h = Habit.getByPosition(i);
|
|
|
|
|
|
|
|
if(h == null) fail();
|
|
|
|
|
|
|
|
assertThat(h, equalTo(habits.get(i)));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void count()
|
|
|
|
|
|
|
|
{
|
|
|
|
for(int i = 0; i < 10; i++)
|
|
|
|
for(int i = 0; i < 10; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Habit h = new Habit();
|
|
|
|
|
|
|
|
if(i % 2 == 0) h.archived = 1;
|
|
|
|
|
|
|
|
h.save();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(Habit.count(), equalTo(5));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void countWithArchived()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
for(int i = 0; i < 10; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Habit h = new Habit();
|
|
|
|
|
|
|
|
if(i % 2 == 0) h.archived = 1;
|
|
|
|
|
|
|
|
h.save();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(Habit.countWithArchived(), equalTo(10));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void updateId()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Habit habit = new Habit();
|
|
|
|
|
|
|
|
habit.name = "Hello World";
|
|
|
|
|
|
|
|
habit.save();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Long oldId = habit.getId();
|
|
|
|
|
|
|
|
Long newId = 123456L;
|
|
|
|
|
|
|
|
Habit.updateId(oldId, newId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Habit newHabit = Habit.get(newId);
|
|
|
|
|
|
|
|
if(newHabit == null) fail();
|
|
|
|
|
|
|
|
assertThat(newHabit, is(not(nullValue())));
|
|
|
|
|
|
|
|
assertThat(newHabit.name, equalTo(habit.name));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void reorder()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
List<Long> ids = new LinkedList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int n = 10;
|
|
|
|
|
|
|
|
for (int i = 0; i < n; i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Habit h = new Habit();
|
|
|
|
Habit h = new Habit();
|
|
|
|
h.save();
|
|
|
|
h.save();
|
|
|
@ -102,22 +210,44 @@ public class HabitTest
|
|
|
|
assertThat(h.position, is(i));
|
|
|
|
assertThat(h.position, is(i));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int from = 5, to = 2;
|
|
|
|
int operations[][] = {
|
|
|
|
int expectedPosition[] = {0, 1, 3, 4, 5, 2, 6, 7, 8, 9};
|
|
|
|
{5, 2},
|
|
|
|
|
|
|
|
{3, 7},
|
|
|
|
|
|
|
|
{4, 4},
|
|
|
|
|
|
|
|
{3, 2}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Habit fromHabit = Habit.get(ids.get(from));
|
|
|
|
int expectedPosition[][] = {
|
|
|
|
Habit toHabit = Habit.get(ids.get(to));
|
|
|
|
{0, 1, 3, 4, 5, 2, 6, 7, 8, 9},
|
|
|
|
|
|
|
|
{0, 1, 7, 3, 4, 2, 5, 6, 8, 9},
|
|
|
|
|
|
|
|
{0, 1, 7, 3, 4, 2, 5, 6, 8, 9},
|
|
|
|
|
|
|
|
{0, 1, 7, 2, 4, 3, 5, 6, 8, 9},
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < operations.length; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
int from = operations[i][0];
|
|
|
|
|
|
|
|
int to = operations[i][1];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Habit fromHabit = Habit.getByPosition(from);
|
|
|
|
|
|
|
|
Habit toHabit = Habit.getByPosition(to);
|
|
|
|
Habit.reorder(fromHabit, toHabit);
|
|
|
|
Habit.reorder(fromHabit, toHabit);
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 10; i++)
|
|
|
|
int actualPositions[] = new int[n];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int j = 0; j < n; j++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Habit h = Habit.get(ids.get(i));
|
|
|
|
Habit h = Habit.get(ids.get(j));
|
|
|
|
assertThat(h.position, is(expectedPosition[i]));
|
|
|
|
if (h == null) fail();
|
|
|
|
|
|
|
|
actualPositions[j] = h.position;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(actualPositions, equalTo(expectedPosition[i]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
public void rebuildOrderTest()
|
|
|
|
public void rebuildOrder()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
List<Long> ids = new LinkedList<>();
|
|
|
|
List<Long> ids = new LinkedList<>();
|
|
|
|
int originalPositions[] = { 0, 1, 1, 4, 6, 8, 10, 10, 13};
|
|
|
|
int originalPositions[] = { 0, 1, 1, 4, 6, 8, 10, 10, 13};
|
|
|
@ -135,7 +265,92 @@ public class HabitTest
|
|
|
|
for (int i = 0; i < originalPositions.length; i++)
|
|
|
|
for (int i = 0; i < originalPositions.length; i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Habit h = Habit.get(ids.get(i));
|
|
|
|
Habit h = Habit.get(ids.get(i));
|
|
|
|
|
|
|
|
if(h == null) fail();
|
|
|
|
assertThat(h.position, is(i));
|
|
|
|
assertThat(h.position, is(i));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void getHabitsWithReminder()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
List<Habit> habitsWithReminder = new LinkedList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < 10; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Habit habit = new Habit();
|
|
|
|
|
|
|
|
if(i % 2 == 0)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
habit.reminderDays = DateHelper.ALL_WEEK_DAYS;
|
|
|
|
|
|
|
|
habit.reminderHour = 8;
|
|
|
|
|
|
|
|
habit.reminderMin = 30;
|
|
|
|
|
|
|
|
habitsWithReminder.add(habit);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
habit.save();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(habitsWithReminder, equalTo(Habit.getHabitsWithReminder()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void archive_unarchive()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
List<Habit> allHabits = new LinkedList<>();
|
|
|
|
|
|
|
|
List<Habit> archivedHabits = new LinkedList<>();
|
|
|
|
|
|
|
|
List<Habit> unarchivedHabits = new LinkedList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < 10; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Habit habit = new Habit();
|
|
|
|
|
|
|
|
habit.save();
|
|
|
|
|
|
|
|
allHabits.add(habit);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(i % 2 == 0)
|
|
|
|
|
|
|
|
archivedHabits.add(habit);
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
unarchivedHabits.add(habit);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Habit.archive(archivedHabits);
|
|
|
|
|
|
|
|
assertThat(Habit.getAll(false), equalTo(unarchivedHabits));
|
|
|
|
|
|
|
|
assertThat(Habit.getAll(true), equalTo(allHabits));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Habit.unarchive(archivedHabits);
|
|
|
|
|
|
|
|
assertThat(Habit.getAll(false), equalTo(allHabits));
|
|
|
|
|
|
|
|
assertThat(Habit.getAll(true), equalTo(allHabits));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void setColor()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
List<Habit> habits = new LinkedList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < 10; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Habit habit = new Habit();
|
|
|
|
|
|
|
|
habit.color = i;
|
|
|
|
|
|
|
|
habit.save();
|
|
|
|
|
|
|
|
habits.add(habit);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int newColor = 100;
|
|
|
|
|
|
|
|
Habit.setColor(habits, newColor);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(Habit h : habits)
|
|
|
|
|
|
|
|
assertThat(h.color, equalTo(newColor));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void hasReminder_clearReminder()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Habit h = new Habit();
|
|
|
|
|
|
|
|
assertThat(h.hasReminder(), is(false));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
h.reminderDays = DateHelper.ALL_WEEK_DAYS;
|
|
|
|
|
|
|
|
h.reminderHour = 8;
|
|
|
|
|
|
|
|
h.reminderMin = 30;
|
|
|
|
|
|
|
|
assertThat(h.hasReminder(), is(true));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
h.clearReminder();
|
|
|
|
|
|
|
|
assertThat(h.hasReminder(), is(false));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|