@@ -0,0 +1,2641 @@
+package guitests;%0A%0Aimport static org.junit.Assert.assertTrue;%0A%0Aimport org.junit.Test;%0A%0Aimport seedu.taskboss.commons.core.Messages;%0Aimport seedu.taskboss.logic.commands.UndoCommand;%0Aimport seedu.taskboss.testutil.TestTask;%0Aimport seedu.taskboss.testutil.TestUtil;%0A%0A//@@author A0138961W%0Apublic class RedoCommandTest extends TaskBossGuiTest %7B%0A%0A    @Test%0A    public void redo() %7B%0A        //without any last command%0A        commandBox.runCommand(%22redo%22);%0A        assertResultMessage(RedoCommand.MESSAGE_WITHOUT_PREVIOUS_OPERATION);%0A%0A        //redo one undo command%0A        TestTask%5B%5D currentList = td.getTypicalTasks();%0A        TestTask taskToAdd = td.taskI;%0A        commandBox.runCommand(taskToAdd.getAddCommand());%0A        commandBox.runCommand(%22undo%22);%0A        TestTask%5B%5D expectedList = TestUtil.addTasksToList(currentList, taskToAdd);%0A        assertUndoCommandSuccess(false, expectedList);%0A%0A        //redo operation fails when apply delete operation after undo operation%0A        commandBox.runCommand(%22undo%22);%0A        commandBox.runCommand(%22delete 1%22);%0A        commandBox.runCommand(%22redo%22);%0A        assertResultMessage(RedoCommand.MESSAGE_WITHOUT_PREVIOUS_OPERATION);%0A%0A        //invalid command%0A        commandBox.runCommand(%22redo2%22);%0A        assertResultMessage(Messages.MESSAGE_UNKNOWN_COMMAND);%0A    %7D%0A%0A    @Test%0A    public void redoShortCommand() %7B       %0A%0A        //without any last command%0A        commandBox.runCommand(%22redo%22);%0A        assertResultMessage(RedoCommand.MESSAGE_WITHOUT_PREVIOUS_OPERATION);%0A%0A        //redo one undo command%0A        TestTask%5B%5D currentList = td.getTypicalTasks();%0A        TestTask taskToAdd = td.taskI;%0A        commandBox.runCommand(taskToAdd.getAddCommand());%0A        commandBox.runCommand(%22undo%22);%0A        TestTask%5B%5D expectedList = TestUtil.addTasksToList(currentList, taskToAdd);%0A        assertUndoCommandSuccess(true, expectedList);%0A%0A        //redo operation fails when apply delete operation after undo operation%0A        commandBox.runCommand(%22u%22);%0A        commandBox.runCommand(%22delete 1%22);%0A        commandBox.runCommand(%22r%22);%0A        assertResultMessage(RedoCommand.MESSAGE_WITHOUT_PREVIOUS_OPERATION);%0A%0A        //invalid command%0A        commandBox.runCommand(%22r2%22);%0A        assertResultMessage(Messages.MESSAGE_UNKNOWN_COMMAND);%0A    %7D%0A%0A    private void assertUndoCommandSuccess(boolean isShortCommand, TestTask%5B%5D expectedList) %7B%0A        if (isShortCommand) %7B%0A            commandBox.runCommand(%22r%22);%0A        %7D else %7B%0A            commandBox.runCommand(%22redo%22);%0A        %7D%0A        assertTrue(taskListPanel.isListMatching(expectedList));%0A        assertResultMessage(RedoCommand.MESSAGE_SUCCESS);%0A    %7D%0A

Create RedoCommandTest.java