diff --git a/src/main/java/duke/command/AddDeadlineCommand.java b/src/main/java/duke/command/AddDeadlineCommand.java index 3509471710..8899820a71 100644 --- a/src/main/java/duke/command/AddDeadlineCommand.java +++ b/src/main/java/duke/command/AddDeadlineCommand.java @@ -23,6 +23,10 @@ public class AddDeadlineCommand extends Command { * @param by The due date of the deadline task. */ public AddDeadlineCommand(String taskDescription, String by) { + assert by.split(" ").length == 3 : "by String should contain should have 3 fields"; + assert by.split(" ")[0].length() == 3 : "Month is represented as 3 letters"; + assert by.split(" ")[1].length() <= 2 : "Date format should not have more than 2 characters"; + assert by.split(" ")[2].length() == 4 : "Year format should have 4 characters"; this.taskDescription = taskDescription; this.by = by; } diff --git a/src/main/java/duke/command/AddEventCommand.java b/src/main/java/duke/command/AddEventCommand.java index 69f25a3a4b..5734fcfa76 100644 --- a/src/main/java/duke/command/AddEventCommand.java +++ b/src/main/java/duke/command/AddEventCommand.java @@ -26,6 +26,14 @@ public class AddEventCommand extends Command { */ public AddEventCommand(String taskDescription, String from, String to) { this.taskDescription = taskDescription; + assert from.split(" ").length == 3 : "by String should contain should have 3 fields"; + assert from.split(" ")[0].length() == 3 : "Month is represented as 3 letters"; + assert from.split(" ")[1].length() <= 2 : "Date format should not have more than 2 characters"; + assert from.split(" ")[2].length() == 4 : "Year format should have 4 characters"; + assert to.split(" ").length == 3 : "by String should contain should have 3 fields"; + assert to.split(" ")[0].length() == 3 : "Month is represented as 3 letters"; + assert to.split(" ")[1].length() <= 2 : "Date format should not have more than 2 characters"; + assert to.split(" ")[2].length() == 4 : "Year format should have 4 characters"; this.from = from; this.to = to; } diff --git a/src/main/java/duke/parser/Parser.java b/src/main/java/duke/parser/Parser.java index 1abad10bea..ff37dc9bd5 100644 --- a/src/main/java/duke/parser/Parser.java +++ b/src/main/java/duke/parser/Parser.java @@ -44,6 +44,7 @@ public static Command parse(String input) throws DukeException { if (eventData.length < 2) { throw new DukeException("An event requires a /from (timedate) descriptor"); } + String[] period = eventData[1].split("/to "); if (period.length < 2) { throw new DukeException("An event requires a /to (timedate) descriptor"); diff --git a/src/main/java/duke/task/Deadline.java b/src/main/java/duke/task/Deadline.java index d4da737a6c..d3aec80cf1 100644 --- a/src/main/java/duke/task/Deadline.java +++ b/src/main/java/duke/task/Deadline.java @@ -21,6 +21,10 @@ public class Deadline extends Task { */ public Deadline(String task, boolean isDone, String due) throws DateTimeException { super(task, isDone); + assert due.split(" ").length == 3 : "by String should contain should have 3 fields"; + assert due.split(" ")[0].length() == 3 : "Month is represented as 3 letters"; + assert due.split(" ")[1].length() <= 2 : "Date format should not have more than 2 characters"; + assert due.split(" ")[2].length() == 4 : "Year format should have 4 characters"; this.due = due; } diff --git a/src/main/java/duke/task/Event.java b/src/main/java/duke/task/Event.java index 4379fdc5fb..e82de1cb15 100644 --- a/src/main/java/duke/task/Event.java +++ b/src/main/java/duke/task/Event.java @@ -24,6 +24,14 @@ public class Event extends Task { */ public Event(String task, boolean isDone, String from, String to) throws DateTimeException { super(task, isDone); + assert from.split(" ").length == 3 : "by String should contain should have 3 fields"; + assert from.split(" ")[0].length() == 3 : "Month is represented as 3 letters"; + assert from.split(" ")[1].length() <= 2 : "Date format should not have more than 2 characters"; + assert from.split(" ")[2].length() == 4 : "Year format should have 4 characters"; + assert to.split(" ").length == 3 : "by String should contain should have 3 fields"; + assert to.split(" ")[0].length() == 3 : "Month is represented as 3 letters"; + assert to.split(" ")[1].length() <= 2 : "Date format should not have more than 2 characters"; + assert to.split(" ")[2].length() == 4 : "Year format should have 4 characters"; this.from = from; this.to = to; }