diff --git a/src/main/java/Event.java b/src/main/java/Event.java index f0c2cad6a2..7c53170e74 100644 --- a/src/main/java/Event.java +++ b/src/main/java/Event.java @@ -2,7 +2,7 @@ public class Event extends Task { - protected String at; + public String at; protected Date date; public Event(String description, String at) { diff --git a/src/main/java/FileWriting.java b/src/main/java/FileWriting.java index 9ed6b9f2f7..ce701902dd 100644 --- a/src/main/java/FileWriting.java +++ b/src/main/java/FileWriting.java @@ -9,6 +9,10 @@ public class FileWriting { public static void writeToFile(ArrayList taskList) throws IOException { + File directory = new File("data"); + if (! directory.exists()){ + directory.mkdir(); + } File tmp = new File("data/temp.txt"); if(!tmp.createNewFile()){ Files.delete(Paths.get("data/temp.txt")); diff --git a/src/main/java/ModifyTaskList.java b/src/main/java/ModifyTaskList.java index eafd6f2b23..9b9743716c 100644 --- a/src/main/java/ModifyTaskList.java +++ b/src/main/java/ModifyTaskList.java @@ -27,8 +27,8 @@ protected void changeTaskList (ArrayList taskList, int taskNumber, Duke.Ac } if (action == Duke.Action.DONE){ try { - ui.taskDone(taskList, taskNumber); taskList.get(taskNumber).setDone(); + ui.taskDone(taskList, taskNumber); FileWriting.writeToFile(taskList); } catch (IndexOutOfBoundsException | IOException err){ diff --git a/src/test/data/duke.txt b/src/test/data/duke.txt new file mode 100644 index 0000000000..9c6942823d --- /dev/null +++ b/src/test/data/duke.txt @@ -0,0 +1,3 @@ +T @ finish JUnit testing @ false +D @ finish Project @ true @ Sat Apr 20 00:00:00 SGT 2019 +E @ game event @ false @ Wed Dec 23 00:00:00 SGT 2020 diff --git a/src/test/java/FileReadingTest.java b/src/test/java/FileReadingTest.java new file mode 100644 index 0000000000..70f093bedc --- /dev/null +++ b/src/test/java/FileReadingTest.java @@ -0,0 +1,22 @@ +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.IOException; +import java.util.ArrayList; + +public class FileReadingTest { + + @Test + public void fileReadTest() throws IOException { + ArrayList taskList = new ArrayList<>(100); + ModifyTaskListTest modifyTaskListTest = new ModifyTaskListTest(); + modifyTaskListTest.modifyTest(); + FileReading.checkFileExists(taskList); + String expectedOutput1 = "[T][✘] finish JUnit testing"; + String expectedOutput2 = "[D][✓] finish Project (by: Sat Apr 20 00:00:00 SGT 2019)"; + String expectedOutput3 = "[E][✘] game event (at: Wed Dec 23 00:00:00 SGT 2020)"; + assertEquals(expectedOutput1, taskList.get(0).toString()); + assertEquals(expectedOutput2, taskList.get(1).toString()); + assertEquals(expectedOutput3, taskList.get(2).toString()); + } +} diff --git a/src/test/java/InputParserTest.java b/src/test/java/InputParserTest.java new file mode 100644 index 0000000000..920040fd33 --- /dev/null +++ b/src/test/java/InputParserTest.java @@ -0,0 +1,33 @@ +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.IOException; +import java.util.ArrayList; + +public class InputParserTest { + + + @Test + public void inputTest() throws IOException { + + ArrayList taskList = new ArrayList<>(100); + InputParser inputParser = new InputParser(taskList); + String input1 = "todo finish JUnit testing"; + String input2 = "random nonsense"; + String input3 = "deadline finish Project /by 20/04/2019"; + String input4 = "event game event /at 23-DEC-2020"; + String input5 = "bye"; + String input6 = "deadline will never surface /by 22/11/2039"; + String input7 = "more random nonsense"; + + inputParser.actionDeterminer(input1); + inputParser.actionDeterminer(input2); + inputParser.actionDeterminer(input3); + inputParser.actionDeterminer(input4); + inputParser.actionDeterminer(input5); + inputParser.actionDeterminer(input6); + inputParser.actionDeterminer(input7); + + assertEquals(4, taskList.size()); + } +} diff --git a/src/test/java/ModifyTaskListTest.java b/src/test/java/ModifyTaskListTest.java new file mode 100644 index 0000000000..9ccf7b134f --- /dev/null +++ b/src/test/java/ModifyTaskListTest.java @@ -0,0 +1,42 @@ +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.IOException; +import java.util.ArrayList; +public class ModifyTaskListTest { + + @Test + public void modifyTest() throws IOException { + + ArrayList taskList = new ArrayList<>(100); + InputParser inputParser = new InputParser(taskList); + String input1 = "todo finish JUnit testing"; + String input2 = "todo to-be-removed"; + String input3 = "random nonsense"; + String input4 = "deadline finish Project /by 20/04/2019"; + String input5 = "event game event /at 23-DEC-2020"; + String input6 = "bye"; + String input7 = "deadline will never surface /by 22/11/2039"; + String input8 = "done 3"; + String input9 = "delete 5"; + String input10 = "delete 2"; + String expectedOutput1 = "[T][✘] finish JUnit testing"; + String expectedOutput2 = "[D][✓] finish Project (by: Sat Apr 20 00:00:00 SGT 2019)"; + String expectedOutput3 = "[E][✘] game event (at: Wed Dec 23 00:00:00 SGT 2020)"; + + inputParser.actionDeterminer(input1); + inputParser.actionDeterminer(input2); + inputParser.actionDeterminer(input3); + inputParser.actionDeterminer(input4); + inputParser.actionDeterminer(input5); + inputParser.actionDeterminer(input6); + inputParser.actionDeterminer(input7); + inputParser.actionDeterminer(input8); + inputParser.actionDeterminer(input9); + inputParser.actionDeterminer(input10); + + assertEquals(expectedOutput1, taskList.get(0).toString()); + assertEquals(expectedOutput2, taskList.get(1).toString()); + assertEquals(expectedOutput3, taskList.get(2).toString()); + } +}