diff --git a/src/main/java/seedu/todo/controllers/DestroyController.java b/src/main/java/seedu/todo/controllers/DestroyController.java index d942f8c1870e..44604f9aec2a 100644 --- a/src/main/java/seedu/todo/controllers/DestroyController.java +++ b/src/main/java/seedu/todo/controllers/DestroyController.java @@ -20,10 +20,10 @@ public class DestroyController extends Controller { private static final String COMMAND_SYNTAX = "destroy "; private static final String COMMAND_KEYWORD = "destroy"; - private static final String MESSAGE_DELETE_SUCCESS = "Item deleted successfully!\n" + "To undo, type \"undo\"."; - private static final String MESSAGE_INDEX_OUT_OF_RANGE = "Could not delete task/event: Invalid index provided!"; - private static final String MESSAGE_MISSING_INDEX = "Please specify the index of the item to delete."; - private static final String MESSAGE_INDEX_NOT_NUMBER = "Index has to be a number!"; + public static final String MESSAGE_DELETE_SUCCESS = "Item deleted successfully!\n" + "To undo, type \"undo\"."; + public static final String MESSAGE_INDEX_OUT_OF_RANGE = "Could not delete task/event: Invalid index provided!"; + public static final String MESSAGE_MISSING_INDEX = "Please specify the index of the item to delete."; + public static final String MESSAGE_INDEX_NOT_NUMBER = "Index has to be a number!"; private static CommandDefinition commandDefinition = new CommandDefinition(NAME, DESCRIPTION, COMMAND_SYNTAX, COMMAND_KEYWORD); diff --git a/src/test/java/seedu/todo/guitests/DestroyCommandTest.java b/src/test/java/seedu/todo/guitests/DestroyCommandTest.java new file mode 100644 index 000000000000..acf63c09530b --- /dev/null +++ b/src/test/java/seedu/todo/guitests/DestroyCommandTest.java @@ -0,0 +1,95 @@ +package seedu.todo.guitests; + +import static org.junit.Assert.assertEquals; + +import java.time.LocalDateTime; + +import org.junit.Before; +import org.junit.Test; + +import seedu.todo.commons.util.DateUtil; +import seedu.todo.controllers.DestroyController; +import seedu.todo.controllers.concerns.Renderer; +import seedu.todo.models.Event; +import seedu.todo.models.Task; + +/** + * @@author A0093907W + */ +public class DestroyCommandTest extends GuiTest { + + private final LocalDateTime oneDayFromNow = LocalDateTime.now().plusDays(1); + private final String oneDayFromNowString = DateUtil.formatDate(oneDayFromNow); + private final String oneDayFromNowIsoString = DateUtil.formatIsoDate(oneDayFromNow); + private final LocalDateTime twoDaysFromNow = LocalDateTime.now().plusDays(2); + private final String twoDaysFromNowString = DateUtil.formatDate(twoDaysFromNow); + private final String twoDaysFromNowIsoString = DateUtil.formatIsoDate(twoDaysFromNow); + private final LocalDateTime oneDayToNow = LocalDateTime.now().minusDays(1); + private final String oneDayToNowString = DateUtil.formatDate(oneDayToNow); + private final String oneDayToNowIsoString = DateUtil.formatIsoDate(oneDayToNow); + + String commandAdd1 = String.format("add task Buy KOI by \"%s 8pm\"", oneDayToNowString); + Task task1 = new Task(); + String commandAdd2 = String.format("add task Buy Milk by \"%s 9pm\"", oneDayFromNowString); + Task task2 = new Task(); + String commandAdd3 = String.format("add event Some Event from \"%s 4pm\" to \"%s 5pm\"", + twoDaysFromNowString, twoDaysFromNowString); + Event event3 = new Event(); + + public DestroyCommandTest() { + task1.setName("Buy KOI"); + task1.setDueDate(DateUtil.parseDateTime( + String.format("%s 20:00:00", oneDayToNowIsoString))); + task2.setName("Buy Milk"); + task2.setDueDate(DateUtil.parseDateTime( + String.format("%s 21:00:00", oneDayFromNowIsoString))); + event3.setName("Some Event"); + event3.setStartDate(DateUtil.parseDateTime( + String.format("%s 16:00:00", twoDaysFromNowIsoString))); + event3.setEndDate(DateUtil.parseDateTime( + String.format("%s 17:00:00", twoDaysFromNowIsoString))); + } + + @Before + public void fixtures() { + console.runCommand("clear"); + console.runCommand(commandAdd1); + console.runCommand(commandAdd2); + console.runCommand(commandAdd3); + } + + @Test + public void destroy_task_hide() { + assertTaskNotVisibleAfterCmd("destroy 1", task1); + } + + @Test + public void destroy_event_hide() { + assertEventNotVisibleAfterCmd("destroy 3", event3); + } + + @Test + public void destroy_wrongIndex_error() { + console.runCommand("destroy 10"); + String consoleMessage = Renderer.MESSAGE_DISAMBIGUATE + "\n\n" + + DestroyController.MESSAGE_INDEX_OUT_OF_RANGE; + assertEquals(consoleMessage, console.getConsoleTextArea()); + } + + @Test + public void destroy_invalidIndex_error() { + console.runCommand("destroy alamak"); + String consoleMessage = Renderer.MESSAGE_DISAMBIGUATE + "\n\n" + + DestroyController.MESSAGE_INDEX_NOT_NUMBER; + assertEquals(consoleMessage, console.getConsoleTextArea()); + } + + @Test + public void destroy_missingIndex_error() { + console.runCommand("destroy"); + String consoleMessage = Renderer.MESSAGE_DISAMBIGUATE + "\n\n" + + DestroyController.MESSAGE_MISSING_INDEX; + assertEquals(consoleMessage, console.getConsoleTextArea()); + } + +}