diff --git a/src/main/java/seedu/address/logic/commands/ListTaskCommand.java b/src/main/java/seedu/address/logic/commands/ListTaskCommand.java new file mode 100644 index 00000000000..338fb081b38 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/ListTaskCommand.java @@ -0,0 +1,23 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_TASKS; + +import seedu.address.model.Model; + +/** + * Lists all tasks in CoordiMate to the user. + */ +public class ListTaskCommand extends Command { + public static final String COMMAND_WORD = "listTask"; + + public static final String MESSAGE_SUCCESS = "Listed all tasks"; + + + @Override + public CommandResult execute(Model model) { + requireNonNull(model); + model.updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); + return new CommandResult(MESSAGE_SUCCESS); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index c968961c856..dfbfece6d3d 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -19,6 +19,7 @@ import seedu.address.logic.commands.FindTaskCommand; import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.ListPersonCommand; +import seedu.address.logic.commands.ListTaskCommand; import seedu.address.logic.commands.MarkTaskCommand; import seedu.address.logic.commands.UnmarkTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; @@ -75,6 +76,9 @@ public Command parseCommand(String userInput) throws ParseException { case ListPersonCommand.COMMAND_WORD: return new ListPersonCommand(); + case ListTaskCommand.COMMAND_WORD: + return new ListTaskCommand(); + case MarkTaskCommand.COMMAND_WORD: return new MarkTaskCommandParser().parse(arguments); diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index 9ca0618e916..6c709041d51 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -22,6 +22,7 @@ import seedu.address.model.person.NameContainsKeywordsPredicate; import seedu.address.model.person.Person; import seedu.address.model.task.Task; +import seedu.address.model.task.TaskContainsKeywordsPredicate; import seedu.address.model.task.TitleContainsKeywordsPredicate; import seedu.address.testutil.EditPersonDescriptorBuilder; @@ -150,8 +151,8 @@ public static void showTaskAtIndex(Model model, Index targetIndex) { Task task = model.getFilteredTaskList().get(targetIndex.getZeroBased()); final String[] splitName = task.getTitle().value.split("\\s+"); + model.updateFilteredTaskList(new TaskContainsKeywordsPredicate(Arrays.asList(splitName[1]))); model.updateFilteredTaskList(new TitleContainsKeywordsPredicate(Arrays.asList(splitName[1]))); - assertEquals(1, model.getFilteredTaskList().size()); } diff --git a/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java new file mode 100644 index 00000000000..d5ac1e5ffac --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java @@ -0,0 +1,35 @@ +package seedu.address.logic.commands; + +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.logic.commands.CommandTestUtil.showTaskAtIndex; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST; +import static seedu.address.testutil.TypicalTasks.getTypicalAddressBook; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.UserPrefs; + +public class ListTaskCommandTest { + private Model model; + private Model expectedModel; + + @BeforeEach + public void setUp() { + model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); + } + + @Test + public void execute_listIsNotFiltered_showsSameList() { + assertCommandSuccess(new ListTaskCommand(), model, ListTaskCommand.MESSAGE_SUCCESS, expectedModel); + } + + @Test + public void execute_listIsFiltered_showsEverything() { + showTaskAtIndex(model, INDEX_FIRST); + assertCommandSuccess(new ListTaskCommand(), model, ListTaskCommand.MESSAGE_SUCCESS, expectedModel); + } +} diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index e7fd27e714c..a10d49c3084 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -23,6 +23,7 @@ import seedu.address.logic.commands.FindTaskCommand; import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.ListPersonCommand; +import seedu.address.logic.commands.ListTaskCommand; import seedu.address.logic.commands.MarkTaskCommand; import seedu.address.logic.commands.UnmarkTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; @@ -90,7 +91,7 @@ public void parseCommand_help() throws Exception { } @Test - public void parseCommand_list() throws Exception { + public void parseCommand_listPerson() throws Exception { assertTrue(parser.parseCommand(ListPersonCommand.COMMAND_WORD) instanceof ListPersonCommand); assertTrue(parser.parseCommand(ListPersonCommand.COMMAND_WORD + " 3") instanceof ListPersonCommand); } @@ -102,6 +103,12 @@ public void parseCommand_addTask() throws Exception { assertEquals(new AddTaskCommand(task), command); } + @Test + public void parseCommand_listTask() throws Exception { + assertTrue(parser.parseCommand(ListTaskCommand.COMMAND_WORD) instanceof ListTaskCommand); + assertTrue(parser.parseCommand(ListTaskCommand.COMMAND_WORD + " 3") instanceof ListTaskCommand); + } + @Test public void parseCommand_findTask() throws Exception { List keywords = Arrays.asList("foo", "bar", "baz"); diff --git a/src/test/java/seedu/address/testutil/TypicalIndexes.java b/src/test/java/seedu/address/testutil/TypicalIndexes.java index 134e60a4c20..553c00734b0 100644 --- a/src/test/java/seedu/address/testutil/TypicalIndexes.java +++ b/src/test/java/seedu/address/testutil/TypicalIndexes.java @@ -6,7 +6,9 @@ * A utility class containing a list of {@code Index} objects to be used in tests. */ public class TypicalIndexes { + public static final Index INDEX_FIRST = Index.fromOneBased(1); public static final Index INDEX_SECOND = Index.fromOneBased(2); public static final Index INDEX_THIRD = Index.fromOneBased(3); + }