diff --git a/.gitignore b/.gitignore index 2cf908d076..97d9948471 100644 --- a/.gitignore +++ b/.gitignore @@ -16,5 +16,7 @@ bin/ /text-ui-test/ACTUAL.txt text-ui-test/EXPECTED-UNIX.TXT +/src/out + # Ignore all .class files *.class diff --git a/src/main/java/Duke.java b/src/main/java/duke/Duke.java similarity index 87% rename from src/main/java/Duke.java rename to src/main/java/duke/Duke.java index 80c8193ce0..8edfccd968 100644 --- a/src/main/java/Duke.java +++ b/src/main/java/duke/Duke.java @@ -1,7 +1,5 @@ +package duke; import java.util.Scanner; -import duke.TaskList; -import duke.Parser; -import duke.Ui; public class Duke { public static void main(String[] args) { diff --git a/src/main/java/duke/Storage.java b/src/main/java/duke/Storage.java index 38ba02ae33..3b5e61b586 100644 --- a/src/main/java/duke/Storage.java +++ b/src/main/java/duke/Storage.java @@ -19,7 +19,7 @@ public class Storage { public Storage() {} - private String allTasksCombined(ArrayList items) { + String allTasksCombined(ArrayList items) { String res = ""; for (Task item : items) { res += String.format("%s", item.saveString()); @@ -28,7 +28,7 @@ private String allTasksCombined(ArrayList items) { return res; } - private Task stringToTask(String str) throws InvalidTypeException, InvalidDataException { + Task stringToTask(String str) throws InvalidTypeException, InvalidDataException { String[] info = str.split("\\|"); if (info.length < 3) { throw new InvalidDataException(); diff --git a/src/main/java/duke/TaskList.java b/src/main/java/duke/TaskList.java index a6b2485e9e..2353f921a4 100644 --- a/src/main/java/duke/TaskList.java +++ b/src/main/java/duke/TaskList.java @@ -1,12 +1,9 @@ package duke; import java.util.ArrayList; -import java.io.FileWriter; import java.io.IOException; -import java.io.PrintWriter; public class TaskList { - private final String line = "---------------------------------------------"; private ArrayList items; private int total; Storage storage; @@ -16,7 +13,7 @@ public TaskList() { this.items = storage.readData(); this.total = items.size(); } - + public void bye() { try { storage.writeData(this.items); diff --git a/src/test/java/duke/DukeTest.java b/src/test/java/duke/DukeTest.java new file mode 100644 index 0000000000..06e67a25cf --- /dev/null +++ b/src/test/java/duke/DukeTest.java @@ -0,0 +1,48 @@ +package duke; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class DukeTest { + + TaskList t = new TaskList(); + + Storage s = new Storage(); + + @Test + public void invalidCommandTest() { + try { + Parser.handleInput("example hello"); + } catch (InvalidTypeException e) { + assertEquals("OOPS!!! I'm sorry, but I don't know what that means :-(", + e.getMessage()); + } catch (InvalidDescriptionException e) { + assertEquals("OOPS!!! The description of a task cannot be empty", + e.getMessage()); + } + } + + @Test + public void invalidIndexTest() { + try { + t.completeTask(-1); + } catch (InvalidIndexException e) { + assertEquals("OOPS!!! The index you have chosen is out of bounds", + e.getMessage()); + } + } + + @Test + public void invalidDataTest() { + try { + s.stringToTask("example hello"); + } catch (InvalidTypeException e) { + assertEquals("OOPS!!! I'm sorry, but I don't know what that means :-(", + e.getMessage()); + } catch (InvalidDataException e) { + assertEquals("OOPS!!! The data here is invalid!", + e.getMessage()); + } + } +} \ No newline at end of file