forked from nus-cs2103-AY2324S1/tp
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #99 from m1oojv/megan/filter-task-by-status
feat: Filter task list by task status
- Loading branch information
Showing
12 changed files
with
204 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
30 changes: 30 additions & 0 deletions
30
src/main/java/seedu/address/logic/commands/FindDoneCommand.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
package seedu.address.logic.commands; | ||
|
||
import static java.util.Objects.requireNonNull; | ||
import static seedu.address.model.Model.PREDICATE_SHOW_DONE_TASKS; | ||
|
||
import seedu.address.logic.Messages; | ||
import seedu.address.model.Model; | ||
import seedu.address.model.task.Status; | ||
|
||
/** | ||
* Finds and lists all task in address book whose status is {@link Status#STATUS_DONE}. | ||
*/ | ||
public class FindDoneCommand extends Command { | ||
|
||
public static final String COMMAND_WORD = "findDone"; | ||
|
||
public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all tasks whose status is marked as " | ||
+ "done and displays them as a list with index numbers.\n" | ||
+ "Example: " + COMMAND_WORD; | ||
|
||
public FindDoneCommand() {} | ||
|
||
@Override | ||
public CommandResult execute(Model model) { | ||
requireNonNull(model); | ||
model.updateFilteredTaskList(PREDICATE_SHOW_DONE_TASKS); | ||
return new CommandResult( | ||
String.format(Messages.MESSAGE_TASKS_LISTED_OVERVIEW, model.getFilteredTaskList().size())); | ||
} | ||
} |
30 changes: 30 additions & 0 deletions
30
src/main/java/seedu/address/logic/commands/FindNotDoneCommand.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
package seedu.address.logic.commands; | ||
|
||
import static java.util.Objects.requireNonNull; | ||
import static seedu.address.model.Model.PREDICATE_SHOW_NOT_DONE_TASKS; | ||
|
||
import seedu.address.logic.Messages; | ||
import seedu.address.model.Model; | ||
import seedu.address.model.task.Status; | ||
|
||
/** | ||
* Finds and lists all task in address book whose status is {@link Status#STATUS_NOT_DONE}. | ||
*/ | ||
public class FindNotDoneCommand extends Command { | ||
|
||
public static final String COMMAND_WORD = "findNotDone"; | ||
|
||
public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all tasks whose status is marked as " | ||
+ "not done and displays them as a list with index numbers.\n" | ||
+ "Example: " + COMMAND_WORD; | ||
|
||
public FindNotDoneCommand() {} | ||
|
||
@Override | ||
public CommandResult execute(Model model) { | ||
requireNonNull(model); | ||
model.updateFilteredTaskList(PREDICATE_SHOW_NOT_DONE_TASKS); | ||
return new CommandResult( | ||
String.format(Messages.MESSAGE_TASKS_LISTED_OVERVIEW, model.getFilteredTaskList().size())); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
53 changes: 53 additions & 0 deletions
53
src/test/java/seedu/address/logic/commands/FindDoneCommandTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
package seedu.address.logic.commands; | ||
|
||
import static org.junit.jupiter.api.Assertions.assertEquals; | ||
import static seedu.address.logic.Messages.MESSAGE_TASKS_LISTED_OVERVIEW; | ||
import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; | ||
import static seedu.address.model.Model.PREDICATE_SHOW_DONE_TASKS; | ||
import static seedu.address.testutil.TypicalTasks.BUDGET; | ||
import static seedu.address.testutil.TypicalTasks.ENTERTAINMENT; | ||
import static seedu.address.testutil.TypicalTasks.FUNDING; | ||
import static seedu.address.testutil.TypicalTasks.GUESTLIST; | ||
import static seedu.address.testutil.TypicalTasks.HOSPITALITY; | ||
import static seedu.address.testutil.TypicalTasks.getTypicalAddressBook; | ||
|
||
import java.util.Arrays; | ||
import java.util.Collections; | ||
|
||
import org.junit.jupiter.api.Test; | ||
|
||
import seedu.address.model.Model; | ||
import seedu.address.model.ModelManager; | ||
import seedu.address.model.UserPrefs; | ||
import seedu.address.model.task.Task; | ||
|
||
/** | ||
* Contains integration tests (interaction with the Model) for {@code FindDoneCommand}. | ||
*/ | ||
public class FindDoneCommandTest { | ||
private final Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); | ||
private final Model expectedModel = new ModelManager(getTypicalAddressBook(), new UserPrefs()); | ||
|
||
@Test | ||
public void execute_noTasksFound() { | ||
String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 0); | ||
FindDoneCommand command = new FindDoneCommand(); | ||
for (Task task : expectedModel.getFilteredTaskList()) { | ||
expectedModel.unmarkTask(task); | ||
model.unmarkTask(task); | ||
} | ||
expectedModel.updateFilteredTaskList(PREDICATE_SHOW_DONE_TASKS); | ||
assertCommandSuccess(command, model, expectedMessage, expectedModel); | ||
assertEquals(Collections.emptyList(), model.getFilteredTaskList()); | ||
} | ||
|
||
@Test | ||
public void execute_multipleTasksFound() { | ||
String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 5); | ||
FindDoneCommand command = new FindDoneCommand(); | ||
expectedModel.updateFilteredTaskList(PREDICATE_SHOW_DONE_TASKS); | ||
assertCommandSuccess(command, model, expectedMessage, expectedModel); | ||
assertEquals(Arrays.asList(BUDGET, ENTERTAINMENT, FUNDING, GUESTLIST, HOSPITALITY), | ||
model.getFilteredTaskList()); | ||
} | ||
} |
52 changes: 52 additions & 0 deletions
52
src/test/java/seedu/address/logic/commands/FindNotDoneCommandTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
package seedu.address.logic.commands; | ||
|
||
import static org.junit.jupiter.api.Assertions.assertEquals; | ||
import static seedu.address.logic.Messages.MESSAGE_TASKS_LISTED_OVERVIEW; | ||
import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; | ||
import static seedu.address.model.Model.PREDICATE_SHOW_NOT_DONE_TASKS; | ||
import static seedu.address.testutil.TypicalTasks.AGENDA; | ||
import static seedu.address.testutil.TypicalTasks.CATERING; | ||
import static seedu.address.testutil.TypicalTasks.DRAFT; | ||
import static seedu.address.testutil.TypicalTasks.INVITATION; | ||
import static seedu.address.testutil.TypicalTasks.getTypicalAddressBook; | ||
|
||
import java.util.Arrays; | ||
import java.util.Collections; | ||
|
||
import org.junit.jupiter.api.Test; | ||
|
||
import seedu.address.model.Model; | ||
import seedu.address.model.ModelManager; | ||
import seedu.address.model.UserPrefs; | ||
import seedu.address.model.task.Task; | ||
|
||
/** | ||
* Contains integration tests (interaction with the Model) for {@code FindNotDoneCommand}. | ||
*/ | ||
public class FindNotDoneCommandTest { | ||
private final Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); | ||
private final Model expectedModel = new ModelManager(getTypicalAddressBook(), new UserPrefs()); | ||
|
||
@Test | ||
public void execute_noTasksFound() { | ||
String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 0); | ||
FindNotDoneCommand command = new FindNotDoneCommand(); | ||
for (Task task : expectedModel.getFilteredTaskList()) { | ||
expectedModel.markTask(task); | ||
model.markTask(task); | ||
} | ||
expectedModel.updateFilteredTaskList(PREDICATE_SHOW_NOT_DONE_TASKS); | ||
assertCommandSuccess(command, model, expectedMessage, expectedModel); | ||
assertEquals(Collections.emptyList(), model.getFilteredTaskList()); | ||
} | ||
|
||
@Test | ||
public void execute_multipleTasksFound() { | ||
String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 4); | ||
FindNotDoneCommand command = new FindNotDoneCommand(); | ||
expectedModel.updateFilteredTaskList(PREDICATE_SHOW_NOT_DONE_TASKS); | ||
assertCommandSuccess(command, model, expectedMessage, expectedModel); | ||
assertEquals(Arrays.asList(AGENDA, CATERING, DRAFT, INVITATION), | ||
model.getFilteredTaskList()); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters