Allow user to sort by status (#660)

This commit is contained in:
Quentin Hibon
2020-11-20 02:05:21 +01:00
committed by GitHub
parent dc0b8deccf
commit bfddc42f5e
16 changed files with 262 additions and 107 deletions

View File

@@ -68,11 +68,11 @@ public class HabitsCSVExporterTest extends BaseUnitTest
unzip(archive);
assertPathExists("Habits.csv");
assertPathExists("001 Wake up early");
assertPathExists("001 Wake up early/Checkmarks.csv");
assertPathExists("001 Wake up early/Scores.csv");
assertPathExists("002 Meditate/Checkmarks.csv");
assertPathExists("002 Meditate/Scores.csv");
assertPathExists("001 Meditate/Checkmarks.csv");
assertPathExists("001 Meditate/Scores.csv");
assertPathExists("002 Wake up early");
assertPathExists("002 Wake up early/Checkmarks.csv");
assertPathExists("002 Wake up early/Scores.csv");
assertPathExists("Checkmarks.csv");
assertPathExists("Scores.csv");
}

View File

@@ -81,7 +81,7 @@ public class ImportTest extends BaseUnitTest
assertThat(habitList.size(), equalTo(3));
Habit habit = habitList.getByPosition(0);
Habit habit = habitList.getByPosition(1);
assertThat(habit.getName(), equalTo("Wake up early"));
assertThat(habit.getFrequency(), equalTo(THREE_TIMES_PER_WEEK));
assertFalse(habit.hasReminder());
@@ -90,7 +90,7 @@ public class ImportTest extends BaseUnitTest
assertTrue(containsRepetition(habit, 2016, 1, 28));
assertFalse(containsRepetition(habit, 2016, 3, 10));
habit = habitList.getByPosition(1);
habit = habitList.getByPosition(2);
assertThat(habit.getName(), equalTo("brush teeth"));
assertThat(habit.getFrequency(), equalTo(THREE_TIMES_PER_WEEK));
assertThat(habit.hasReminder(), equalTo(true));
@@ -109,7 +109,7 @@ public class ImportTest extends BaseUnitTest
assertThat(habitList.size(), equalTo(3));
Habit h = habitList.getByPosition(0);
Habit h = habitList.getByPosition(2);
assertThat(h.getName(), equalTo("Vegan"));
assertTrue(containsRepetition(h, 2016, 1, 24));
assertTrue(containsRepetition(h, 2016, 2, 5));

View File

@@ -111,7 +111,6 @@ public class HabitListTest extends BaseUnitTest
@Test
public void testOrdering()
{
HabitList list = modelFactory.buildHabitList();
Habit h1 = fixtures.createEmptyHabit();
h1.setName("A Habit");
h1.setColor(2);
@@ -132,46 +131,51 @@ public class HabitListTest extends BaseUnitTest
h4.setColor(1);
h4.setPosition(2);
HabitList list = modelFactory.buildHabitList();
list.add(h3);
list.add(h1);
list.add(h4);
list.add(h2);
list.setOrder(BY_POSITION);
list.setPrimaryOrder(BY_POSITION);
assertThat(list.getByPosition(0), equalTo(h3));
assertThat(list.getByPosition(1), equalTo(h1));
assertThat(list.getByPosition(2), equalTo(h4));
assertThat(list.getByPosition(3), equalTo(h2));
list.setOrder(BY_NAME_DESC);
list.setPrimaryOrder(BY_NAME_DESC);
assertThat(list.getByPosition(0), equalTo(h4));
assertThat(list.getByPosition(1), equalTo(h3));
assertThat(list.getByPosition(2), equalTo(h2));
assertThat(list.getByPosition(3), equalTo(h1));
list.setOrder(BY_NAME_ASC);
list.setPrimaryOrder(BY_NAME_ASC);
assertThat(list.getByPosition(0), equalTo(h1));
assertThat(list.getByPosition(1), equalTo(h2));
assertThat(list.getByPosition(2), equalTo(h3));
assertThat(list.getByPosition(3), equalTo(h4));
list.setPrimaryOrder(BY_NAME_ASC);
list.remove(h1);
list.add(h1);
assertThat(list.getByPosition(0), equalTo(h1));
list.setOrder(BY_COLOR_ASC);
list.setPrimaryOrder(BY_COLOR_ASC);
list.setSecondaryOrder(BY_NAME_ASC);
assertThat(list.getByPosition(0), equalTo(h3));
assertThat(list.getByPosition(1), equalTo(h4));
assertThat(list.getByPosition(2), equalTo(h1));
assertThat(list.getByPosition(3), equalTo(h2));
list.setOrder(BY_COLOR_DESC);
assertThat(list.getByPosition(0), equalTo(h2));
assertThat(list.getByPosition(1), equalTo(h1));
list.setPrimaryOrder(BY_COLOR_DESC);
list.setSecondaryOrder(BY_NAME_ASC);
assertThat(list.getByPosition(0), equalTo(h1));
assertThat(list.getByPosition(1), equalTo(h2));
assertThat(list.getByPosition(2), equalTo(h4));
assertThat(list.getByPosition(3), equalTo(h3));
list.setOrder(BY_POSITION);
list.setPrimaryOrder(BY_POSITION);
assertThat(list.getByPosition(0), equalTo(h3));
assertThat(list.getByPosition(1), equalTo(h1));
assertThat(list.getByPosition(2), equalTo(h4));
@@ -179,8 +183,7 @@ public class HabitListTest extends BaseUnitTest
}
@Test
public void testReorder()
{
public void testReorder() {
int operations[][] = {
{ 5, 2 }, { 3, 7 }, { 4, 4 }, { 8, 3 }
};
@@ -225,12 +228,12 @@ public class HabitListTest extends BaseUnitTest
@Test
public void testOrder_inherit()
{
habitList.setOrder(BY_COLOR_ASC);
habitList.setPrimaryOrder(BY_COLOR_ASC);
HabitList filteredList = habitList.getFiltered(new HabitMatcherBuilder()
.setArchivedAllowed(false)
.setCompletedAllowed(false)
.build());
assertEquals(filteredList.getOrder(), BY_COLOR_ASC);
assertEquals(filteredList.getPrimaryOrder(), BY_COLOR_ASC);
}
@Test
@@ -306,7 +309,7 @@ public class HabitListTest extends BaseUnitTest
@Test
public void testReorder_onSortedList() throws Exception
{
habitList.setOrder(BY_SCORE_DESC);
habitList.setPrimaryOrder(BY_SCORE_DESC);
Habit h1 = habitsArray.get(1);
Habit h2 = habitsArray.get(2);
thrown.expect(IllegalStateException.class);

View File

@@ -75,13 +75,13 @@ public class PreferencesTest extends BaseUnitTest
@Test
public void testDefaultOrder() throws Exception
{
assertThat(prefs.getDefaultOrder(), equalTo(HabitList.Order.BY_POSITION));
assertThat(prefs.getDefaultPrimaryOrder(), equalTo(HabitList.Order.BY_POSITION));
prefs.setDefaultOrder(HabitList.Order.BY_SCORE_DESC);
assertThat(prefs.getDefaultOrder(), equalTo(HabitList.Order.BY_SCORE_DESC));
prefs.setDefaultPrimaryOrder(HabitList.Order.BY_SCORE_DESC);
assertThat(prefs.getDefaultPrimaryOrder(), equalTo(HabitList.Order.BY_SCORE_DESC));
storage.putString("pref_default_order", "BOGUS");
assertThat(prefs.getDefaultOrder(), equalTo(HabitList.Order.BY_POSITION));
assertThat(prefs.getDefaultPrimaryOrder(), equalTo(HabitList.Order.BY_POSITION));
assertThat(storage.getString("pref_default_order", ""), equalTo("BY_POSITION"));
}

View File

@@ -54,6 +54,9 @@ public class ListHabitsMenuBehaviorTest extends BaseUnitTest
@Captor
private ArgumentCaptor<HabitList.Order> orderCaptor;
@Captor
private ArgumentCaptor<HabitList.Order> secondaryOrderCaptor;
@Override
public void setUp() throws Exception
{
@@ -103,7 +106,7 @@ public class ListHabitsMenuBehaviorTest extends BaseUnitTest
public void testOnSortByColor()
{
behavior.onSortByColor();
verify(adapter).setOrder(orderCaptor.capture());
verify(adapter).setPrimaryOrder(orderCaptor.capture());
assertThat(orderCaptor.getValue(), equalTo(BY_COLOR_ASC));
}
@@ -111,7 +114,7 @@ public class ListHabitsMenuBehaviorTest extends BaseUnitTest
public void testOnSortManually()
{
behavior.onSortByManually();
verify(adapter).setOrder(orderCaptor.capture());
verify(adapter).setPrimaryOrder(orderCaptor.capture());
assertThat(orderCaptor.getValue(), equalTo(BY_POSITION));
}
@@ -119,7 +122,7 @@ public class ListHabitsMenuBehaviorTest extends BaseUnitTest
public void testOnSortScore()
{
behavior.onSortByScore();
verify(adapter).setOrder(orderCaptor.capture());
verify(adapter).setPrimaryOrder(orderCaptor.capture());
assertThat(orderCaptor.getValue(), equalTo(BY_SCORE_DESC));
}
@@ -127,10 +130,34 @@ public class ListHabitsMenuBehaviorTest extends BaseUnitTest
public void testOnSortName()
{
behavior.onSortByName();
verify(adapter).setOrder(orderCaptor.capture());
verify(adapter).setPrimaryOrder(orderCaptor.capture());
assertThat(orderCaptor.getValue(), equalTo(BY_NAME_ASC));
}
@Test
public void testOnSortStatus()
{
when(adapter.getPrimaryOrder()).thenReturn(BY_NAME_ASC);
behavior.onSortByStatus();
verify(adapter).setPrimaryOrder(orderCaptor.capture());
verify(adapter).setSecondaryOrder(secondaryOrderCaptor.capture());
assertThat(orderCaptor.getValue(), equalTo(BY_STATUS_ASC));
assertThat(secondaryOrderCaptor.getValue(), equalTo(BY_NAME_ASC));
}
@Test
public void testOnSortStatusToggle()
{
when(adapter.getPrimaryOrder()).thenReturn(BY_STATUS_ASC);
behavior.onSortByStatus();
verify(adapter).setPrimaryOrder(orderCaptor.capture());
verify(adapter, never()).setSecondaryOrder(any());
assertThat(orderCaptor.getValue(), equalTo(BY_STATUS_DESC));
}
@Test
public void testOnToggleShowArchived()
{