From df796a8f421022fa90ae28b810ae4e8146bbaea0 Mon Sep 17 00:00:00 2001 From: Irvin Lim Date: Fri, 4 Nov 2016 10:33:28 +0800 Subject: [PATCH 1/5] Add UpdateCommandTest cases --- .../todo/guitests/AddEventCommandTest.java | 59 +------ .../todo/guitests/AddTaskCommandTest.java | 40 +---- .../java/seedu/todo/guitests/GuiTest.java | 92 +++++++++++ .../todo/guitests/UpdateCommandTest.java | 149 ++++++++++++++++++ 4 files changed, 245 insertions(+), 95 deletions(-) create mode 100644 src/test/java/seedu/todo/guitests/UpdateCommandTest.java diff --git a/src/test/java/seedu/todo/guitests/AddEventCommandTest.java b/src/test/java/seedu/todo/guitests/AddEventCommandTest.java index 0b59b5afd8b6..b9502d166b7c 100644 --- a/src/test/java/seedu/todo/guitests/AddEventCommandTest.java +++ b/src/test/java/seedu/todo/guitests/AddEventCommandTest.java @@ -1,16 +1,12 @@ package seedu.todo.guitests; import static org.junit.Assert.*; -import static seedu.todo.testutil.AssertUtil.assertSameDate; -import java.time.LocalDate; import java.time.LocalDateTime; import org.junit.Test; import seedu.todo.commons.util.DateUtil; -import seedu.todo.guitests.guihandles.TaskListDateItemHandle; -import seedu.todo.guitests.guihandles.TaskListEventItemHandle; import seedu.todo.models.Event; public class AddEventCommandTest extends GuiTest { @@ -27,7 +23,7 @@ public void addEvent_eventSameDateInFuture_isVisible() { event.setName("Presentation in the Future"); event.setStartDate(DateUtil.parseDateTime(String.format("%s 14:00:00", twoDaysFromNowIsoString))); event.setEndDate(DateUtil.parseDateTime(String.format("%s 19:00:00", twoDaysFromNowIsoString))); - assertAddSuccess(command, event); + assertEventNotVisibleAfterCmd(command, event); } @Test @@ -45,7 +41,7 @@ public void addEvent_eventSameDateInPast_isNotVisible() { event.setName("Presentation in the Past"); event.setStartDate(DateUtil.parseDateTime(String.format("%s 14:00:00", twoDaysBeforeNowIsoString))); event.setEndDate(DateUtil.parseDateTime(String.format("%s 19:00:00", twoDaysBeforeNowIsoString))); - assertAddNotVisible(command, event); + assertEventNotVisibleAfterCmd(command, event); } @Test @@ -81,55 +77,4 @@ public void addEvent_unmatchedQuotes_commandRemains() { assertEquals(console.getConsoleInputText(), command); } - /** - * Utility method for testing if event has been successfully added to the GUI. - * This runs a command and checks if TaskList contains TaskListEventItem that matches - * the task that was just added.

- * - * TODO: Extract out method in AddController that can return task from command, - * and possibly remove the need to have eventToAdd. - */ - private void assertAddSuccess(String command, Event eventToAdd) { - // Run the command in the console. - console.runCommand(command); - - // Get the event date. - LocalDateTime eventStartDateTime = eventToAdd.getStartDate(); - if (eventStartDateTime == null) { - eventStartDateTime = DateUtil.NO_DATETIME_VALUE; - } - LocalDate eventStartDate = eventStartDateTime.toLocalDate(); - - // Check TaskList if it contains a TaskListDateItem with the date of the event start date. - TaskListDateItemHandle dateItem = taskList.getTaskListDateItem(eventStartDate); - assertSameDate(eventStartDate, dateItem); - - // Check TaskListDateItem if it contains the TaskListEventItem with the same data. - TaskListEventItemHandle eventItem = dateItem.getTaskListEventItem(eventToAdd.getName()); - assertEquals(eventItem.getName(), eventToAdd.getName()); - } - - private void assertAddNotVisible(String command, Event eventToAdd) { - // Run the command in the console. - console.runCommand(command); - - // Get the event date. - LocalDateTime eventStartDateTime = eventToAdd.getStartDate(); - if (eventStartDateTime == null) { - eventStartDateTime = DateUtil.NO_DATETIME_VALUE; - } - LocalDate eventStartDate = eventStartDateTime.toLocalDate(); - - // Gets the date item that might contain the event - TaskListDateItemHandle dateItem = taskList.getTaskListDateItem(eventStartDate); - - // It's fine if there's not date item, because it's not visible. - if (dateItem == null) { - return; - } - - TaskListEventItemHandle eventItem = dateItem.getTaskListEventItem(eventToAdd.getName()); - assertNull(eventItem); - } - } diff --git a/src/test/java/seedu/todo/guitests/AddTaskCommandTest.java b/src/test/java/seedu/todo/guitests/AddTaskCommandTest.java index f434190ffde2..7e29bc64a1c5 100644 --- a/src/test/java/seedu/todo/guitests/AddTaskCommandTest.java +++ b/src/test/java/seedu/todo/guitests/AddTaskCommandTest.java @@ -3,16 +3,8 @@ import org.junit.Test; import seedu.todo.commons.util.DateUtil; -import seedu.todo.guitests.guihandles.TaskListDateItemHandle; -import seedu.todo.guitests.guihandles.TaskListTaskItemHandle; import seedu.todo.models.Task; -import static seedu.todo.testutil.AssertUtil.assertSameDate; -import static org.junit.Assert.assertEquals; - -import java.time.LocalDate; -import java.time.LocalDateTime; - /** * @@author A0139812A */ @@ -24,7 +16,7 @@ public void addTaskWithDeadline() { Task task = new Task(); task.setName("Buy milk"); task.setCalendarDateTime(DateUtil.parseDateTime("2016-10-15 14:00:00")); - assertAddSuccess(command, task); + assertTaskVisibleAfterCmd(command, task); } @Test @@ -32,34 +24,6 @@ public void addFloatingTask() { String command = "add task Buy milk"; Task task = new Task(); task.setName("Buy milk"); - assertAddSuccess(command, task); - } - - /** - * Utility method for testing if task has been successfully added to the GUI. - * This runs a command and checks if TaskList contains TaskListTaskItem that matches - * the task that was just added.

- * - * TODO: Extract out method in AddController that can return task from command, - * and possibly remove the need to have taskToAdd. - */ - private void assertAddSuccess(String command, Task taskToAdd) { - // Run the command in the console. - console.runCommand(command); - - // Get the task date. - LocalDateTime taskDateTime = taskToAdd.getCalendarDateTime(); - if (taskDateTime == null) { - taskDateTime = DateUtil.NO_DATETIME_VALUE; - } - LocalDate taskDate = taskDateTime.toLocalDate(); - - // Check TaskList if it contains a TaskListDateItem with the date. - TaskListDateItemHandle dateItem = taskList.getTaskListDateItem(taskDate); - assertSameDate(taskDate, dateItem); - - // Check TaskListDateItem if it contains the TaskListTaskItem with the same data. - TaskListTaskItemHandle taskItem = dateItem.getTaskListTaskItem(taskToAdd.getName()); - assertEquals(taskItem.getName(), taskToAdd.getName()); + assertTaskVisibleAfterCmd(command, task); } } diff --git a/src/test/java/seedu/todo/guitests/GuiTest.java b/src/test/java/seedu/todo/guitests/GuiTest.java index f17c821f9368..2445733ee424 100644 --- a/src/test/java/seedu/todo/guitests/GuiTest.java +++ b/src/test/java/seedu/todo/guitests/GuiTest.java @@ -1,5 +1,11 @@ package seedu.todo.guitests; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static seedu.todo.testutil.AssertUtil.assertSameDate; + +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.concurrent.TimeoutException; import org.junit.After; @@ -14,9 +20,15 @@ import seedu.todo.TestApp; import seedu.todo.commons.core.EventsCenter; import seedu.todo.commons.events.BaseEvent; +import seedu.todo.commons.util.DateUtil; import seedu.todo.guitests.guihandles.ConsoleHandle; import seedu.todo.guitests.guihandles.MainGuiHandle; +import seedu.todo.guitests.guihandles.TaskListDateItemHandle; +import seedu.todo.guitests.guihandles.TaskListEventItemHandle; import seedu.todo.guitests.guihandles.TaskListHandle; +import seedu.todo.guitests.guihandles.TaskListTaskItemHandle; +import seedu.todo.models.Event; +import seedu.todo.models.Task; import seedu.todo.models.TodoListDB; /** @@ -88,4 +100,84 @@ public void raise(BaseEvent e) { //JUnit doesn't run its test cases on the UI thread. Platform.runLater is used to post event on the UI thread. Platform.runLater(() -> EventsCenter.getInstance().post(e)); } + + /* ========= COMMON TEST METHODS ============= */ + + /** + * Utility method for testing if task has been successfully added to the GUI. + * This runs a command and checks if TaskList contains TaskListTaskItem that matches + * the task that was just added. + */ + protected void assertTaskVisibleAfterCmd(String command, Task taskToAdd) { + // Run the command in the console. + console.runCommand(command); + + // Get the task date. + LocalDateTime taskDateTime = taskToAdd.getCalendarDateTime(); + if (taskDateTime == null) { + taskDateTime = DateUtil.NO_DATETIME_VALUE; + } + LocalDate taskDate = taskDateTime.toLocalDate(); + + // Check TaskList if it contains a TaskListDateItem with the date. + TaskListDateItemHandle dateItem = taskList.getTaskListDateItem(taskDate); + assertSameDate(taskDate, dateItem); + + // Check TaskListDateItem if it contains the TaskListTaskItem with the same data. + TaskListTaskItemHandle taskItem = dateItem.getTaskListTaskItem(taskToAdd.getName()); + assertEquals(taskItem.getName(), taskToAdd.getName()); + } + + /** + * Utility method for testing if event has been successfully added to the GUI. + * This runs a command and checks if TaskList contains TaskListEventItem that matches + * the task that was just added. + * + * TODO: Check event dates if they match. + */ + protected void assertEventVisibleAfterCmd(String command, Event eventToAdd) { + // Run the command in the console. + console.runCommand(command); + + // Get the event date. + LocalDateTime eventStartDateTime = eventToAdd.getStartDate(); + if (eventStartDateTime == null) { + eventStartDateTime = DateUtil.NO_DATETIME_VALUE; + } + LocalDate eventStartDate = eventStartDateTime.toLocalDate(); + + // Check TaskList if it contains a TaskListDateItem with the date of the event start date. + TaskListDateItemHandle dateItem = taskList.getTaskListDateItem(eventStartDate); + assertSameDate(eventStartDate, dateItem); + + // Check TaskListDateItem if it contains the TaskListEventItem with the same data. + TaskListEventItemHandle eventItem = dateItem.getTaskListEventItem(eventToAdd.getName()); + assertEquals(eventItem.getName(), eventToAdd.getName()); + } + + /** + * Utility method for testing if event does not appear in the GUI after a command. + */ + protected void assertEventNotVisibleAfterCmd(String command, Event eventToAdd) { + // Run the command in the console. + console.runCommand(command); + + // Get the event date. + LocalDateTime eventStartDateTime = eventToAdd.getStartDate(); + if (eventStartDateTime == null) { + eventStartDateTime = DateUtil.NO_DATETIME_VALUE; + } + LocalDate eventStartDate = eventStartDateTime.toLocalDate(); + + // Gets the date item that might contain the event + TaskListDateItemHandle dateItem = taskList.getTaskListDateItem(eventStartDate); + + // It's fine if there's not date item, because it's not visible. + if (dateItem == null) { + return; + } + + TaskListEventItemHandle eventItem = dateItem.getTaskListEventItem(eventToAdd.getName()); + assertNull(eventItem); + } } diff --git a/src/test/java/seedu/todo/guitests/UpdateCommandTest.java b/src/test/java/seedu/todo/guitests/UpdateCommandTest.java new file mode 100644 index 000000000000..652944480fb5 --- /dev/null +++ b/src/test/java/seedu/todo/guitests/UpdateCommandTest.java @@ -0,0 +1,149 @@ +package seedu.todo.guitests; + +import java.time.LocalDateTime; + +import org.junit.Ignore; +import org.junit.Test; + +import seedu.todo.commons.util.DateUtil; +import seedu.todo.models.Event; +import seedu.todo.models.Task; + +public class UpdateCommandTest extends GuiTest { + + @Test + public void updateCommand_updateTaskName_success() { + // Clear first + console.runCommand("clear"); + + // Add a task + console.runCommand("add Buy milk by 2016-10-15 2pm"); + + // Update the task + String command = "update 1 name Buy bread"; + Task task = new Task(); + task.setName("Buy bread"); + task.setDueDate(DateUtil.parseDateTime("2016-10-15 14:00:00")); + assertTaskVisibleAfterCmd(command, task); + } + + @Test + public void updateCommand_updateTaskWithDeadlineToNewDeadline_success() { + // Clear first + console.runCommand("clear"); + + // Add a task + console.runCommand("add Buy milk by 2016-10-15 2pm"); + + // Update the task + String command = "update 1 by today"; + Task task = new Task(); + task.setName("Buy milk"); + task.setDueDate(LocalDateTime.now()); + assertTaskVisibleAfterCmd(command, task); + } + + @Test + public void updateCommand_updateFloatingTaskToNewDeadline_success() { + // Clear first + console.runCommand("clear"); + + // Add a task + console.runCommand("add Buy milk"); + + // Update the task + String command = "update 1 by today"; + Task task = new Task(); + task.setName("Buy milk"); + task.setDueDate(LocalDateTime.now()); + assertTaskVisibleAfterCmd(command, task); + } + + @Ignore + @Test + public void updateCommand_updateTaskWithDeadlineToFloatingTask() { + // TODO: Make this pass + + // Clear first + console.runCommand("clear"); + + // Add a task + console.runCommand("add Buy milk by today"); + + // Update the task + String command = "update 1 nodeadline"; + Task task = new Task(); + task.setName("Buy milk"); + task.setDueDate(DateUtil.NO_DATETIME_VALUE); + assertTaskVisibleAfterCmd(command, task); + } + + @Test + public void updateCommand_updateEventName_success() { + // Clear first + + console.runCommand("clear"); + + // Get formatted string for two days from now, e.g. 17 Oct 2016 + LocalDateTime twoDaysFromNow = LocalDateTime.now().plusDays(2); + String twoDaysFromNowString = DateUtil.formatDate(twoDaysFromNow); + String twoDaysFromNowIsoString = DateUtil.formatIsoDate(twoDaysFromNow); + + // Add a task + console.runCommand(String.format("add event Presentation from %s 2pm to %s 9pm", twoDaysFromNowString, twoDaysFromNowString)); + + // Update the task + String command = "update 1 name Updated presentation"; + Event event = new Event(); + event.setName("Updated presentation"); + event.setStartDate(DateUtil.parseDateTime(String.format("%s 14:00:00", twoDaysFromNowIsoString))); + event.setEndDate(DateUtil.parseDateTime(String.format("%s 21:00:00", twoDaysFromNowIsoString))); + assertEventVisibleAfterCmd(command, event); + } + + @Test + public void updateCommand_updateEventStartDate_success() { + // Clear first + + console.runCommand("clear"); + + // Get formatted string for two days from now, e.g. 17 Oct 2016 + LocalDateTime twoDaysFromNow = LocalDateTime.now().plusDays(2); + String twoDaysFromNowString = DateUtil.formatDate(twoDaysFromNow); + String twoDaysFromNowIsoString = DateUtil.formatIsoDate(twoDaysFromNow); + + // Add a task + console.runCommand(String.format("add event Presentation from %s 2pm to %s 9pm", twoDaysFromNowString, twoDaysFromNowString)); + + // Update the task + String command = String.format("update 1 from %s 5pm", twoDaysFromNowString); + Event event = new Event(); + event.setName("Updated presentation"); + event.setStartDate(DateUtil.parseDateTime(String.format("%s 17:00:00", twoDaysFromNowIsoString))); + event.setEndDate(DateUtil.parseDateTime(String.format("%s 21:00:00", twoDaysFromNowIsoString))); + assertEventVisibleAfterCmd(command, event); + } + + @Test + public void updateCommand_updateEventEndDate_success() { + // Clear first + console.runCommand("clear"); + + // Get formatted string for two days from now, e.g. 17 Oct 2016 + LocalDateTime twoDaysFromNow = LocalDateTime.now().plusDays(2); + String twoDaysFromNowString = DateUtil.formatDate(twoDaysFromNow); + String twoDaysFromNowIsoString = DateUtil.formatIsoDate(twoDaysFromNow); + + // Add a task + console.runCommand(String.format("add event Presentation from %s 2pm to %s 9pm", twoDaysFromNowString, twoDaysFromNowString)); + + // Update the task + String command = String.format("update 1 to %s 5pm", twoDaysFromNowString); + Event event = new Event(); + event.setName("Updated presentation"); + event.setStartDate(DateUtil.parseDateTime(String.format("%s 14:00:00", twoDaysFromNowIsoString))); + event.setEndDate(DateUtil.parseDateTime(String.format("%s 17:00:00", twoDaysFromNowIsoString))); + assertEventVisibleAfterCmd(command, event); + } + +} From 5bbbbdb16bb666ea5e29209ad2f1474693b2ac84 Mon Sep 17 00:00:00 2001 From: Irvin Lim Date: Sat, 5 Nov 2016 18:59:33 +0800 Subject: [PATCH 2/5] Make tests pass, guard against null handles --- src/test/java/seedu/todo/guitests/GuiTest.java | 3 +++ src/test/java/seedu/todo/guitests/UpdateCommandTest.java | 6 ++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/test/java/seedu/todo/guitests/GuiTest.java b/src/test/java/seedu/todo/guitests/GuiTest.java index 2445733ee424..cb64b80bd211 100644 --- a/src/test/java/seedu/todo/guitests/GuiTest.java +++ b/src/test/java/seedu/todo/guitests/GuiTest.java @@ -2,6 +2,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertNotNull; import static seedu.todo.testutil.AssertUtil.assertSameDate; import java.time.LocalDate; @@ -148,10 +149,12 @@ protected void assertEventVisibleAfterCmd(String command, Event eventToAdd) { // Check TaskList if it contains a TaskListDateItem with the date of the event start date. TaskListDateItemHandle dateItem = taskList.getTaskListDateItem(eventStartDate); + assertNotNull(dateItem); assertSameDate(eventStartDate, dateItem); // Check TaskListDateItem if it contains the TaskListEventItem with the same data. TaskListEventItemHandle eventItem = dateItem.getTaskListEventItem(eventToAdd.getName()); + assertNotNull(eventItem); assertEquals(eventItem.getName(), eventToAdd.getName()); } diff --git a/src/test/java/seedu/todo/guitests/UpdateCommandTest.java b/src/test/java/seedu/todo/guitests/UpdateCommandTest.java index 652944480fb5..fe23213c788f 100644 --- a/src/test/java/seedu/todo/guitests/UpdateCommandTest.java +++ b/src/test/java/seedu/todo/guitests/UpdateCommandTest.java @@ -81,7 +81,6 @@ public void updateCommand_updateTaskWithDeadlineToFloatingTask() { @Test public void updateCommand_updateEventName_success() { // Clear first - console.runCommand("clear"); // Get formatted string for two days from now, e.g. 17 Oct 2016 @@ -104,7 +103,6 @@ public void updateCommand_updateEventName_success() { @Test public void updateCommand_updateEventStartDate_success() { // Clear first - console.runCommand("clear"); // Get formatted string for two days from now, e.g. 17 Oct 2016 @@ -118,7 +116,7 @@ public void updateCommand_updateEventStartDate_success() { // Update the task String command = String.format("update 1 from %s 5pm", twoDaysFromNowString); Event event = new Event(); - event.setName("Updated presentation"); + event.setName("Presentation"); event.setStartDate(DateUtil.parseDateTime(String.format("%s 17:00:00", twoDaysFromNowIsoString))); event.setEndDate(DateUtil.parseDateTime(String.format("%s 21:00:00", twoDaysFromNowIsoString))); assertEventVisibleAfterCmd(command, event); @@ -140,7 +138,7 @@ public void updateCommand_updateEventEndDate_success() { // Update the task String command = String.format("update 1 to %s 5pm", twoDaysFromNowString); Event event = new Event(); - event.setName("Updated presentation"); + event.setName("Presentation"); event.setStartDate(DateUtil.parseDateTime(String.format("%s 14:00:00", twoDaysFromNowIsoString))); event.setEndDate(DateUtil.parseDateTime(String.format("%s 17:00:00", twoDaysFromNowIsoString))); assertEventVisibleAfterCmd(command, event); From 35463273f781e9636f7699421510485db7b4cf4b Mon Sep 17 00:00:00 2001 From: Irvin Lim Date: Sat, 5 Nov 2016 18:59:53 +0800 Subject: [PATCH 3/5] Extract out assertSameName assert util methods --- .../java/seedu/todo/testutil/AssertUtil.java | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/test/java/seedu/todo/testutil/AssertUtil.java b/src/test/java/seedu/todo/testutil/AssertUtil.java index e215d7cb16a0..1767c501aee4 100644 --- a/src/test/java/seedu/todo/testutil/AssertUtil.java +++ b/src/test/java/seedu/todo/testutil/AssertUtil.java @@ -3,19 +3,34 @@ import java.time.LocalDate; import seedu.todo.guitests.guihandles.TaskListDateItemHandle; +import seedu.todo.guitests.guihandles.TaskListEventItemHandle; +import seedu.todo.guitests.guihandles.TaskListTaskItemHandle; +import seedu.todo.models.Event; +import seedu.todo.models.Task; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.*; /** * @@author A0139812A */ public class AssertUtil { - - public static void assertSameDate(LocalDate date, TaskListDateItemHandle dateItemHandle) { - assertNotNull(date); + + public static void assertSameDate(LocalDate dateToTest, TaskListDateItemHandle dateItemHandle) { + assertNotNull(dateToTest); assertNotNull(dateItemHandle.getDate()); - assertTrue(dateItemHandle.getDate().isEqual(date)); + assertTrue(dateItemHandle.getDate().isEqual(dateToTest)); + } + + public static void assertSameTaskName(Task taskToTest, TaskListTaskItemHandle taskItemHandle) { + assertNotNull(taskToTest); + assertNotNull(taskItemHandle.getName()); + assertEquals(taskItemHandle.getName(), taskToTest.getName()); + } + + public static void assertSameEventName(Event eventToTest, TaskListEventItemHandle eventItemHandle) { + assertNotNull(eventToTest); + assertNotNull(eventItemHandle.getName()); + assertEquals(eventItemHandle.getName(), eventToTest.getName()); } } From 6e76168631a20f1d12d41fa45441550cbbcf6083 Mon Sep 17 00:00:00 2001 From: Irvin Lim Date: Sat, 5 Nov 2016 19:08:12 +0800 Subject: [PATCH 4/5] Use AssertUtil methods, update some docs --- .../java/seedu/todo/guitests/GuiTest.java | 20 ++++++++++--------- .../java/seedu/todo/testutil/AssertUtil.java | 5 +++-- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/test/java/seedu/todo/guitests/GuiTest.java b/src/test/java/seedu/todo/guitests/GuiTest.java index cb64b80bd211..c0e192975bb1 100644 --- a/src/test/java/seedu/todo/guitests/GuiTest.java +++ b/src/test/java/seedu/todo/guitests/GuiTest.java @@ -1,9 +1,7 @@ package seedu.todo.guitests; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertNotNull; -import static seedu.todo.testutil.AssertUtil.assertSameDate; +import static org.junit.Assert.*; +import static seedu.todo.testutil.AssertUtil.*; import java.time.LocalDate; import java.time.LocalDateTime; @@ -108,6 +106,8 @@ public void raise(BaseEvent e) { * Utility method for testing if task has been successfully added to the GUI. * This runs a command and checks if TaskList contains TaskListTaskItem that matches * the task that was just added. + * + * Assumption: No two events can have the same name in this test. */ protected void assertTaskVisibleAfterCmd(String command, Task taskToAdd) { // Run the command in the console. @@ -126,7 +126,7 @@ protected void assertTaskVisibleAfterCmd(String command, Task taskToAdd) { // Check TaskListDateItem if it contains the TaskListTaskItem with the same data. TaskListTaskItemHandle taskItem = dateItem.getTaskListTaskItem(taskToAdd.getName()); - assertEquals(taskItem.getName(), taskToAdd.getName()); + assertSameTaskName(taskToAdd, taskItem); } /** @@ -134,6 +134,8 @@ protected void assertTaskVisibleAfterCmd(String command, Task taskToAdd) { * This runs a command and checks if TaskList contains TaskListEventItem that matches * the task that was just added. * + * Assumption: No two events can have the same name in this test. + * * TODO: Check event dates if they match. */ protected void assertEventVisibleAfterCmd(String command, Event eventToAdd) { @@ -149,17 +151,16 @@ protected void assertEventVisibleAfterCmd(String command, Event eventToAdd) { // Check TaskList if it contains a TaskListDateItem with the date of the event start date. TaskListDateItemHandle dateItem = taskList.getTaskListDateItem(eventStartDate); - assertNotNull(dateItem); assertSameDate(eventStartDate, dateItem); // Check TaskListDateItem if it contains the TaskListEventItem with the same data. TaskListEventItemHandle eventItem = dateItem.getTaskListEventItem(eventToAdd.getName()); - assertNotNull(eventItem); - assertEquals(eventItem.getName(), eventToAdd.getName()); + assertSameEventName(eventToAdd, eventItem); } /** * Utility method for testing if event does not appear in the GUI after a command. + * Assumption: No two events can have the same name in this test. */ protected void assertEventNotVisibleAfterCmd(String command, Event eventToAdd) { // Run the command in the console. @@ -175,11 +176,12 @@ protected void assertEventNotVisibleAfterCmd(String command, Event eventToAdd) { // Gets the date item that might contain the event TaskListDateItemHandle dateItem = taskList.getTaskListDateItem(eventStartDate); - // It's fine if there's not date item, because it's not visible. + // It's fine if there's no date item, because it's not visible. if (dateItem == null) { return; } + // If there's a date item, then we make sure that there isn't an event in the date item with the same name. TaskListEventItemHandle eventItem = dateItem.getTaskListEventItem(eventToAdd.getName()); assertNull(eventItem); } diff --git a/src/test/java/seedu/todo/testutil/AssertUtil.java b/src/test/java/seedu/todo/testutil/AssertUtil.java index 1767c501aee4..8ae3009151ce 100644 --- a/src/test/java/seedu/todo/testutil/AssertUtil.java +++ b/src/test/java/seedu/todo/testutil/AssertUtil.java @@ -17,19 +17,20 @@ public class AssertUtil { public static void assertSameDate(LocalDate dateToTest, TaskListDateItemHandle dateItemHandle) { assertNotNull(dateToTest); + assertNotNull(dateItemHandle); assertNotNull(dateItemHandle.getDate()); assertTrue(dateItemHandle.getDate().isEqual(dateToTest)); } public static void assertSameTaskName(Task taskToTest, TaskListTaskItemHandle taskItemHandle) { assertNotNull(taskToTest); - assertNotNull(taskItemHandle.getName()); + assertNotNull(taskItemHandle); assertEquals(taskItemHandle.getName(), taskToTest.getName()); } public static void assertSameEventName(Event eventToTest, TaskListEventItemHandle eventItemHandle) { assertNotNull(eventToTest); - assertNotNull(eventItemHandle.getName()); + assertNotNull(eventItemHandle); assertEquals(eventItemHandle.getName(), eventToTest.getName()); } From 7376872a57cd7d07e61b4914459b7b8dc1320a01 Mon Sep 17 00:00:00 2001 From: Irvin Lim Date: Sat, 5 Nov 2016 19:09:04 +0800 Subject: [PATCH 5/5] Fix AddEvent test case --- src/test/java/seedu/todo/guitests/AddEventCommandTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/todo/guitests/AddEventCommandTest.java b/src/test/java/seedu/todo/guitests/AddEventCommandTest.java index 21ac72d549da..a8b2e453b615 100644 --- a/src/test/java/seedu/todo/guitests/AddEventCommandTest.java +++ b/src/test/java/seedu/todo/guitests/AddEventCommandTest.java @@ -24,7 +24,7 @@ public void addEvent_eventSameDateInFuture_isVisible() { event.setName("Presentation in the Future"); event.setStartDate(DateUtil.parseDateTime(String.format("%s 14:00:00", twoDaysFromNowIsoString))); event.setEndDate(DateUtil.parseDateTime(String.format("%s 19:00:00", twoDaysFromNowIsoString))); - assertEventNotVisibleAfterCmd(command, event); + assertEventVisibleAfterCmd(command, event); } @Test