From 16ee959bab2ab8a6b8ffa3c9e4eb88f578f49358 Mon Sep 17 00:00:00 2001 From: lihongguang00 Date: Mon, 9 Oct 2023 13:28:52 +0800 Subject: [PATCH] Add ParserUtil JUnit testing Added JUnit testing for: -parseEventDescription -parseEventPeriod --- .../address/model/event/EventPeriod.java | 2 +- .../address/logic/parser/ParserUtilTest.java | 69 +++++++++++++++++++ 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/model/event/EventPeriod.java b/src/main/java/seedu/address/model/event/EventPeriod.java index 29638e9b41e..f12966a4a3e 100644 --- a/src/main/java/seedu/address/model/event/EventPeriod.java +++ b/src/main/java/seedu/address/model/event/EventPeriod.java @@ -44,7 +44,7 @@ private EventPeriod(LocalDateTime start, LocalDateTime end) { * @return A new EventPeriod object with minimum date/time values. */ public static EventPeriod createNonConflictingPeriod() { - return new EventPeriod(LocalDateTime.MIN, LocalDateTime.MIN); + return new EventPeriod(LocalDateTime.MAX, LocalDateTime.MIN); } /** diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java index 4256788b1a7..5dcfee8f0da 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java @@ -14,6 +14,8 @@ import org.junit.jupiter.api.Test; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.event.EventDescription; +import seedu.address.model.event.EventPeriod; import seedu.address.model.person.Address; import seedu.address.model.person.Email; import seedu.address.model.person.Name; @@ -27,12 +29,18 @@ public class ParserUtilTest { private static final String INVALID_EMAIL = "example.com"; private static final String INVALID_TAG = "#friend"; + private static final String INVALID_DESCRIPTION = ""; + private static final String INVALID_DATE = "2023-13-35 16:80"; + private static final String VALID_NAME = "Rachel Walker"; private static final String VALID_PHONE = "123456"; private static final String VALID_ADDRESS = "123 Main Street #0505"; private static final String VALID_EMAIL = "rachel@example.com"; private static final String VALID_TAG_1 = "friend"; private static final String VALID_TAG_2 = "neighbour"; + private static final String VALID_DESCRIPTION = "sleep"; + private static final String VALID_START_DATE = "2023-01-01 08:00"; + private static final String VALID_END_DATE = "2023-01-01 09:00"; private static final String WHITESPACE = " \t\r\n"; @@ -193,4 +201,65 @@ public void parseTags_collectionWithValidTags_returnsTagSet() throws Exception { assertEquals(expectedTagSet, actualTagSet); } + + @Test + public void parseEventDescription_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> ParserUtil.parseEventDescription(null)); + } + + @Test + public void parseEventDescription_invalidDescription_throwsParseException() { + assertThrows(ParseException.class, () -> ParserUtil.parseEventDescription(INVALID_DESCRIPTION)); + } + + @Test + public void parseEventDescription_validDescription_returnsDescription() throws Exception { + EventDescription actual = ParserUtil.parseEventDescription(VALID_DESCRIPTION); + EventDescription expected = new EventDescription(VALID_DESCRIPTION); + + assertEquals(actual, expected); + } + + @Test + public void parseEventPeriod_nullStart_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> ParserUtil.parseEventPeriod(null, VALID_END_DATE)); + } + + @Test + public void parseEventPeriod_nullEnd_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> ParserUtil.parseEventPeriod(VALID_START_DATE, null)); + } + + @Test + public void parseEventPeriod_nullStartAndEnd_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> ParserUtil.parseEventPeriod(null, null)); + } + + @Test + public void parseEventPeriod_InvalidStart_throwsParseException() { + assertThrows(ParseException.class, () -> ParserUtil.parseEventPeriod(INVALID_DATE, VALID_END_DATE)); + } + + @Test + public void parseEventPeriod_InvalidEnd_throwsParseException() { + assertThrows(ParseException.class, () -> ParserUtil.parseEventPeriod(VALID_START_DATE, INVALID_DATE)); + } + + @Test + public void parseEventPeriod_InvalidStartAndEnd_throwsParseException() { + assertThrows(ParseException.class, () -> ParserUtil.parseEventPeriod(INVALID_DATE, INVALID_DATE)); + } + + @Test + public void parseEventPeriod_EndBeforeStart_throwsParseException() { + assertThrows(ParseException.class, () -> ParserUtil.parseEventPeriod(VALID_END_DATE, VALID_START_DATE)); + } + + @Test + public void parseEventPeriod_validStartAndEnd_returnsValidEventPeriod() throws Exception { + EventPeriod actual = ParserUtil.parseEventPeriod(VALID_START_DATE, VALID_END_DATE); + EventPeriod expected = new EventPeriod(VALID_START_DATE, VALID_END_DATE); + + assertEquals(actual, expected); + } }