From e0bee06c8760e17099df445c7e33c95fd460e51c Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 14:21:45 +0100 Subject: [PATCH 01/47] First test --- domain-model.md | 62 +++++++++++++++++++ .../java/com/booleanuk/core/TodoListTest.java | 10 +++ 2 files changed, 72 insertions(+) create mode 100644 domain-model.md diff --git a/domain-model.md b/domain-model.md new file mode 100644 index 000000000..67c196e14 --- /dev/null +++ b/domain-model.md @@ -0,0 +1,62 @@ +## Todo + +| Method | Member Variable | Scenario | Result | +|-----------------------------------------------|--------------------------------|-------------------------------------------------------------------------------|------------------------------------| +| add(String name) | HashMap tasks | Task with the provided name is not already in the todolist | true | +| | | Task with the provided name is already in the todolist | false | +| | | | | +| listTasks( ) | | There are tasks in the todolist | string with all tasks | +| | | There are no tasks in the todolist | string with error message | +| | | | | +| updateTaskStatus(String name, Boolean status) | | There is a task with the provided name and has the requested status | true | +| | | There is no task with the provided name or does not have the requested status | false | +| | | | | +| getCompletedTasks() | | There are completed tasks in the todolist | string with all completed tasks | +| | | There are no completed tasks in the todolist | string with error message | +| | | | | +| getNotCompletedTasks() | | There are uncompleted tasks in the todolist | string with all uncompleted tasks | +| | | There are no uncompleted tasks in the todolist | string with error message | +| | | | | +| SearchTask(String) | | There was a task with the provided name | string with the task | +| | | There was no task with the provided name | string with error message | +| | | | | +| removeTask(String) | | Task with the provided name is not in the todolist | true | +| | | Task with the provided name is in the todolist | false | +| | | | | +| taskDescending() | | There are tasks in the todolist | string in descending order by name | +| | | There are no tasks in the todolist | string with error message | +| | | | | +| taskAscending() | | There are tasks in the todolist | string in ascending order by name | +| | | There are no tasks in the todolist | string with error message | + + + +# Extension + +## Todo + +| Method | Member Variable | Scenario | Result | +|----------------------------------------------|-----------------------|----------|--------| +| add(String name) | ArrayList tasks | | | +| | id | | | +| listTasks( ) | | | | +| updateTaskStatus(Task task, Boolean state) | | | | +| | | | | +| getCompletedTasks() | | | | +| getNotCompletedTasks() | | | | +| SearchTask(Task task) | | | | +| removeTask(Task task) | | | | +| taskDescending() | | | | +| taskAscending() | | | | +| getTaskById(int id) | | | | +| updateTaskName(int id, String newName) | | | | +| updateTaskStatusById(int id, Boolean status) | | | | +| | | | | + +## Task + +| Method | Member Variable | Scenario | Result | +|--------|------------------|----------|--------| +| | | | | +| | Boolean complete | | | +| | String name | | | \ No newline at end of file diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 0bef779a4..9bf0cfc2e 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -3,6 +3,8 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import java.util.HashMap; + class TodoListTest { @Test public void exampleTest() { @@ -10,4 +12,12 @@ public void exampleTest() { Assertions.assertEquals("Hello", hello); Assertions.assertNotEquals("Goodbye", hello); } + + @Test + public void tryToAddToTodoList(){ + TodoList todoList = new TodoList(); + String taskName = "Go do exercise"; + + Assertions.assertTrue(todoList.add(taskName)); + } } From 13a72c6c6126e0dbae1945c9c1cc33b13697004d Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 14:24:34 +0100 Subject: [PATCH 02/47] Easiest possible way to pass task1 --- src/main/java/com/booleanuk/core/TodoList.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 675adaf0b..96a8be945 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -1,5 +1,21 @@ package com.booleanuk.core; +import java.util.HashMap; + public class TodoList { + HashMap tasks = new HashMap<>(); + + public TodoList(){ + this.tasks = new HashMap<>(){{ + put("Clean room", false); + put("Buy groceries", false); + put("Write CV", true); + }}; + } + + public boolean add(String taskName){ + return true; + } + } From e246d3207028f31f91221ce2a437bcac93dd97ea Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 14:28:41 +0100 Subject: [PATCH 03/47] new test for task1 that will fail at the moment --- src/test/java/com/booleanuk/core/TodoListTest.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 9bf0cfc2e..eb17b0d94 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -14,10 +14,18 @@ public void exampleTest() { } @Test - public void tryToAddToTodoList(){ + public void addTaskThatDoesNotExist(){ TodoList todoList = new TodoList(); String taskName = "Go do exercise"; Assertions.assertTrue(todoList.add(taskName)); } + + @Test + public void addTaskThatDoesExist(){ + TodoList todoList = new TodoList(); + String taskName = "Clean room"; + + Assertions.assertFalse(todoList.add(taskName)); + } } From 38bb70925bfd29d947036e45e815a4c88b0ca009 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 14:32:27 +0100 Subject: [PATCH 04/47] Method for task1 updated and refactored --- src/main/java/com/booleanuk/core/TodoList.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 96a8be945..2b7a4bff2 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -15,7 +15,7 @@ public TodoList(){ } public boolean add(String taskName){ - return true; + return !this.tasks.containsKey(taskName); } } From af8e23257a3f6da7d66fbcf0cdea64ffaf79c660 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 14:36:41 +0100 Subject: [PATCH 05/47] Initial test for task 2 completed --- src/test/java/com/booleanuk/core/TodoListTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index eb17b0d94..e791a2b72 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -13,6 +13,7 @@ public void exampleTest() { Assertions.assertNotEquals("Goodbye", hello); } + //Task 1 @Test public void addTaskThatDoesNotExist(){ TodoList todoList = new TodoList(); @@ -28,4 +29,16 @@ public void addTaskThatDoesExist(){ Assertions.assertFalse(todoList.add(taskName)); } + + + + //Task 2 + @Test + public void tasksExistInTodoList(){ + TodoList todoList = new TodoList(); + + Assertions.assertTrue(todoList.listTasks()); + } + + } From a5eeeca6a958fad39f964e28922a8c9321e11d5d Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 14:48:11 +0100 Subject: [PATCH 06/47] easiest possible method for task 2 completed, small adjustment to test included --- src/main/java/com/booleanuk/core/TodoList.java | 4 ++++ src/test/java/com/booleanuk/core/TodoListTest.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 2b7a4bff2..3c816cd01 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -18,4 +18,8 @@ public boolean add(String taskName){ return !this.tasks.containsKey(taskName); } + public String listTasks(){ + return "abc"; + } + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index e791a2b72..9e0d7eafe 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -37,7 +37,7 @@ public void addTaskThatDoesExist(){ public void tasksExistInTodoList(){ TodoList todoList = new TodoList(); - Assertions.assertTrue(todoList.listTasks()); + Assertions.assertFalse(todoList.listTasks().isEmpty()); } From 190f8696461d0a2499cc72013c432a2c3fd4e567 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 14:59:26 +0100 Subject: [PATCH 07/47] Method for task 2 adjusted --- src/main/java/com/booleanuk/core/TodoList.java | 9 ++++++++- src/test/java/com/booleanuk/core/TodoListTest.java | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 3c816cd01..8ff0b720d 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -19,7 +19,14 @@ public boolean add(String taskName){ } public String listTasks(){ - return "abc"; + if(this.tasks.isEmpty()){ + return "The todolist does not contain any tasks!"; + } + String listOfTasks = ""; + for(String task : this.tasks.keySet()){ + listOfTasks += task + ", "; + } + return listOfTasks; } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 9e0d7eafe..9569c2acd 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -41,4 +41,8 @@ public void tasksExistInTodoList(){ } + + + + } From d9f099cfa5c9a5147b409653780e3b0fd444451d Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 15:08:07 +0100 Subject: [PATCH 08/47] Initial test for task 3 completed --- src/test/java/com/booleanuk/core/TodoListTest.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 9569c2acd..a48986650 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -42,7 +42,14 @@ public void tasksExistInTodoList(){ - + //Task 3 + @Test + public void doesStatusUpdateIfTaskExist(){ + TodoList todoList = new TodoList(); + String task = "Clean room"; + + Assertions.assertTrue(todoList.updateTaskStatus(task, true)); + } } From 552690d56e76d64b3adae4483764e4b3b9b2380d Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 15:09:57 +0100 Subject: [PATCH 09/47] Initial method for task 3 completed --- src/main/java/com/booleanuk/core/TodoList.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 8ff0b720d..349daeea7 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -14,10 +14,14 @@ public TodoList(){ }}; } + + // Task 1 public boolean add(String taskName){ return !this.tasks.containsKey(taskName); } + + // Task 2 public String listTasks(){ if(this.tasks.isEmpty()){ return "The todolist does not contain any tasks!"; @@ -29,4 +33,9 @@ public String listTasks(){ return listOfTasks; } + + // Task 3 + public boolean updateTaskStatus(String task, Boolean status){ + return true; + } } From c68972b430f851eb2fa0b748a474a2f290f634a7 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 15:16:07 +0100 Subject: [PATCH 10/47] completed method for task 3, also i forgot to commit the 2nd test for task 3 before --- src/main/java/com/booleanuk/core/TodoList.java | 6 +++++- src/test/java/com/booleanuk/core/TodoListTest.java | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 349daeea7..a8311d6e4 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -36,6 +36,10 @@ public String listTasks(){ // Task 3 public boolean updateTaskStatus(String task, Boolean status){ - return true; + if(this.tasks.containsKey(task)){ + this.tasks.put(task, status); + return true; + } + return false; } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index a48986650..f671f9091 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -51,5 +51,13 @@ public void doesStatusUpdateIfTaskExist(){ Assertions.assertTrue(todoList.updateTaskStatus(task, true)); } + @Test + public void doesStatusUpdateIfTaskDoesNotExist(){ + TodoList todoList = new TodoList(); + String task = "Go do exercise"; + + Assertions.assertFalse(todoList.updateTaskStatus(task, true)); + } + } From bbbdc4cb294013d64ee325599d7f9b514ab15c0d Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 15:21:46 +0100 Subject: [PATCH 11/47] intial test for task 4 completed --- src/test/java/com/booleanuk/core/TodoListTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index f671f9091..72351a2d5 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -60,4 +60,13 @@ public void doesStatusUpdateIfTaskDoesNotExist(){ } + // Task 4 + @Test + public void doesItExistCompletedTasks(){ + TodoList todoList = new TodoList(); + + Assertions.assertFalse(todoList.getCompletedTasks().isEmpty()); + } + + } From 205afc8fe6b6852174728abded7169b4b0a0ae51 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 15:23:10 +0100 Subject: [PATCH 12/47] intial method for task 4 completed --- src/main/java/com/booleanuk/core/TodoList.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index a8311d6e4..2b1ad7b76 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -42,4 +42,10 @@ public boolean updateTaskStatus(String task, Boolean status){ } return false; } + + + // Task 4 + public String getCompletedTasks(){ + return "abc"; + } } From cc63bd44dc210e0e15626b22fdbfa1e1b8601280 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 16:14:02 +0100 Subject: [PATCH 13/47] Initial test for task 5 completed --- domain-model.md | 2 +- .../java/com/booleanuk/core/TodoList.java | 15 +++++++- .../java/com/booleanuk/core/TodoListTest.java | 35 +++++++++++++++++-- 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/domain-model.md b/domain-model.md index 67c196e14..02d2f1e9e 100644 --- a/domain-model.md +++ b/domain-model.md @@ -14,7 +14,7 @@ | getCompletedTasks() | | There are completed tasks in the todolist | string with all completed tasks | | | | There are no completed tasks in the todolist | string with error message | | | | | | -| getNotCompletedTasks() | | There are uncompleted tasks in the todolist | string with all uncompleted tasks | +| getUncompletedTasks() | | There are uncompleted tasks in the todolist | string with all uncompleted tasks | | | | There are no uncompleted tasks in the todolist | string with error message | | | | | | | SearchTask(String) | | There was a task with the provided name | string with the task | diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 2b1ad7b76..3bf35db21 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -46,6 +46,19 @@ public boolean updateTaskStatus(String task, Boolean status){ // Task 4 public String getCompletedTasks(){ - return "abc"; + String completedTasks = ""; + for(String task : this.tasks.keySet()){ + if(this.tasks.get(task).equals(true)){ + completedTasks += task + ", "; + } + } + if(!completedTasks.equals("")){ + return completedTasks; + } + return "There are no completed tasks!"; } + + + // Task 5 + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 72351a2d5..00666141a 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -37,7 +37,20 @@ public void addTaskThatDoesExist(){ public void tasksExistInTodoList(){ TodoList todoList = new TodoList(); - Assertions.assertFalse(todoList.listTasks().isEmpty()); + if(!todoList.tasks.isEmpty()){ + Assertions.assertFalse(todoList.listTasks().isEmpty()); + } + + } + + @Test + public void tasksDoesNotExistInTodoList(){ + TodoList todoList = new TodoList(); + + if(todoList.tasks.isEmpty()){ + Assertions.assertEquals("The todolist does not contain any tasks!", todoList.listTasks()); + } + } @@ -62,11 +75,29 @@ public void doesStatusUpdateIfTaskDoesNotExist(){ // Task 4 @Test - public void doesItExistCompletedTasks(){ + public void doesExistCompletedTasks(){ TodoList todoList = new TodoList(); Assertions.assertFalse(todoList.getCompletedTasks().isEmpty()); } + @Test + public void doesNotExistCompletedTasks(){ + TodoList todoList = new TodoList(); + + if(todoList.getCompletedTasks().isEmpty()){ + Assertions.assertEquals("There are no completed tasks!", todoList.getCompletedTasks()); + } + } + + + // Task 5 + @Test + public void UncompletedTasksExist(){ + TodoList todoList = new TodoList(); + + Assertions.assertFalse(todoList.getUncompletedTasks().isEmpty()); + } + } From 79714177347ae7419971ad4dcb6ffc04d18155ab Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 16:15:13 +0100 Subject: [PATCH 14/47] Initial method for task 5 completed --- src/main/java/com/booleanuk/core/TodoList.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 3bf35db21..425e93b7b 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -60,5 +60,7 @@ public String getCompletedTasks(){ // Task 5 - + public String getUncompletedTasks(){ + return "abc"; + } } From 9f4bb1484b2181da873b0f459f6d46f47d1dc4e6 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 16:22:46 +0100 Subject: [PATCH 15/47] Completed method for tasl 5, minor changes in test 5 and 4 --- .../java/com/booleanuk/core/TodoList.java | 11 +++++++++- .../java/com/booleanuk/core/TodoListTest.java | 20 +++++++++++++++++-- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 425e93b7b..c29bfa97c 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -61,6 +61,15 @@ public String getCompletedTasks(){ // Task 5 public String getUncompletedTasks(){ - return "abc"; + String uncompletedTasks = ""; + for(String task : this.tasks.keySet()){ + if(this.tasks.get(task).equals(false)){ + uncompletedTasks += task + ", "; + } + } + if(!uncompletedTasks.equals("")){ + return uncompletedTasks; + } + return "There are no uncompleted tasks!"; } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 00666141a..75eb72961 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -78,7 +78,9 @@ public void doesStatusUpdateIfTaskDoesNotExist(){ public void doesExistCompletedTasks(){ TodoList todoList = new TodoList(); - Assertions.assertFalse(todoList.getCompletedTasks().isEmpty()); + if(todoList.getCompletedTasks().isEmpty()){ + Assertions.assertFalse(todoList.getCompletedTasks().isEmpty()); + } } @Test @@ -96,8 +98,22 @@ public void doesNotExistCompletedTasks(){ public void UncompletedTasksExist(){ TodoList todoList = new TodoList(); - Assertions.assertFalse(todoList.getUncompletedTasks().isEmpty()); + if(!todoList.getUncompletedTasks().isEmpty()){ + Assertions.assertFalse(todoList.getUncompletedTasks().isEmpty()); + } } + @Test + public void doesNotExistUncompletedTasks(){ + TodoList todoList = new TodoList(); + + if(todoList.getUncompletedTasks().isEmpty()){ + Assertions.assertEquals("There are no uncompleted tasks!", todoList.getUncompletedTasks()); + } + } + + + // Task 6 + } From 002b326271e1039f307b3252083ad51356b30b1e Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 16:28:16 +0100 Subject: [PATCH 16/47] inital test for task 6 --- src/test/java/com/booleanuk/core/TodoListTest.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 75eb72961..5bc2e6f67 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -114,6 +114,12 @@ public void doesNotExistUncompletedTasks(){ // Task 6 + @Test + public void taskDoesExist(){ + TodoList todoList = new TodoList(); + String task = "Buy groceries"; + Assertions.assertEquals(todoList.SearchTask(task), "The task exist!"); + } } From b02b79235fc6311569cf1228b3226660545e40ff Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 16:29:06 +0100 Subject: [PATCH 17/47] inital method for task 6 --- src/main/java/com/booleanuk/core/TodoList.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index c29bfa97c..4585cd761 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -72,4 +72,10 @@ public String getUncompletedTasks(){ } return "There are no uncompleted tasks!"; } + + + // Task 6 + public String SearchTask(String task){ + return "The task exist!"; + } } From b3cb3c321cc795dcb9a83102776f08c842006e14 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 16:33:14 +0100 Subject: [PATCH 18/47] added another test for task 6 --- src/test/java/com/booleanuk/core/TodoListTest.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 5bc2e6f67..c816d3689 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -119,7 +119,15 @@ public void taskDoesExist(){ TodoList todoList = new TodoList(); String task = "Buy groceries"; - Assertions.assertEquals(todoList.SearchTask(task), "The task exist!"); + Assertions.assertEquals("The task exist!", todoList.SearchTask(task)); + } + + @Test + public void taskDoesNotExist(){ + TodoList todoList = new TodoList(); + String task = "Play the piano"; + + Assertions.assertEquals("The task does not exist!", todoList.SearchTask(task)); } } From 7c8befbebdfa85ab3697c163c4998ca8067c7be4 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 16:35:41 +0100 Subject: [PATCH 19/47] completed method for task 6 --- src/main/java/com/booleanuk/core/TodoList.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 4585cd761..f487ddb17 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -76,6 +76,9 @@ public String getUncompletedTasks(){ // Task 6 public String SearchTask(String task){ - return "The task exist!"; + if(this.tasks.containsKey(task)){ + return "The task exist!"; + } + return "The task does not exist!"; } } From 80964bd5dd9a819da2589d19852150014239f83e Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 16:38:07 +0100 Subject: [PATCH 20/47] initial test for task 7 completed --- src/test/java/com/booleanuk/core/TodoListTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index c816d3689..f1214327a 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -130,4 +130,14 @@ public void taskDoesNotExist(){ Assertions.assertEquals("The task does not exist!", todoList.SearchTask(task)); } + + // Task 7 + @Test + public void taskIsRemoved(){ + TodoList todoList = new TodoList(); + String task = "Clean room"; + + Assertions.assertTrue(todoList.removeTask(task)); + } + } From 62ff0e55df4c87bfe3923060c733439f451c2544 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 16:39:16 +0100 Subject: [PATCH 21/47] initial method for task 7 completed --- src/main/java/com/booleanuk/core/TodoList.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index f487ddb17..f45f398ef 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -81,4 +81,10 @@ public String SearchTask(String task){ } return "The task does not exist!"; } + + + // Task 7 + public Boolean removeTask(String task){ + return true; + } } From 157cd0e529e74671de7948d1e89e7bba8f97384d Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 16:40:29 +0100 Subject: [PATCH 22/47] Changes made for test 7 --- src/test/java/com/booleanuk/core/TodoListTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index f1214327a..dca52ef47 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -140,4 +140,12 @@ public void taskIsRemoved(){ Assertions.assertTrue(todoList.removeTask(task)); } + @Test + public void taskIsNotRemoved(){ + TodoList todoList = new TodoList(); + String task = "Play the piano"; + + Assertions.assertTrue(todoList.removeTask(task)); + } + } From 3177249e56f6b6682c88ab2cad1a553289213035 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 16:50:02 +0100 Subject: [PATCH 23/47] Completed method for task 7, also discovered som errors that corrected. --- src/main/java/com/booleanuk/core/TodoList.java | 12 ++++++++++-- src/test/java/com/booleanuk/core/TodoListTest.java | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index f45f398ef..9e442485c 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -17,7 +17,11 @@ public TodoList(){ // Task 1 public boolean add(String taskName){ - return !this.tasks.containsKey(taskName); + if(!this.tasks.containsKey(taskName)){ + this.tasks.put(taskName, false); + return true; + } + return false; } @@ -85,6 +89,10 @@ public String SearchTask(String task){ // Task 7 public Boolean removeTask(String task){ - return true; + if(this.tasks.containsKey(task)){ + this.tasks.remove(task); + return true; + } + return false; } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index dca52ef47..a7589d14e 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -145,7 +145,7 @@ public void taskIsNotRemoved(){ TodoList todoList = new TodoList(); String task = "Play the piano"; - Assertions.assertTrue(todoList.removeTask(task)); + Assertions.assertFalse(todoList.removeTask(task)); } } From 33bf41b33368a3eb80add35c6e9f7839763cd232 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 17:01:13 +0100 Subject: [PATCH 24/47] Initial test for task 8 completed --- src/test/java/com/booleanuk/core/TodoListTest.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index a7589d14e..9bbf5d238 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -3,6 +3,9 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; class TodoListTest { @@ -148,4 +151,15 @@ public void taskIsNotRemoved(){ Assertions.assertFalse(todoList.removeTask(task)); } + + // Test 8 + @Test + public void tasksAreDescending(){ + TodoList todoList = new TodoList(); + + Assertions.assertEquals(todoList.taskDescending(), "Buy groceries, Clean room, Write CV"); + } + + + } From a5e134ef092a594848058c223fd8e0c9f5989b0e Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 17:02:47 +0100 Subject: [PATCH 25/47] Initial method for task 8 completed --- src/main/java/com/booleanuk/core/TodoList.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 9e442485c..e3e9ed558 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -1,5 +1,7 @@ package com.booleanuk.core; +import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; public class TodoList { @@ -95,4 +97,10 @@ public Boolean removeTask(String task){ } return false; } + + + // Task 8 + public String taskDescending(){ + return "Buy groceries, Clean room, Write CV"; + } } From a78388e2110df4c367bcca751ce82d36ac13aa1a Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 17:19:16 +0100 Subject: [PATCH 26/47] method for task 8 completed --- .../java/com/booleanuk/core/TodoList.java | 23 ++++++++++++++++++- .../java/com/booleanuk/core/TodoListTest.java | 2 +- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index e3e9ed558..a4546f8d2 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -101,6 +101,27 @@ public Boolean removeTask(String task){ // Task 8 public String taskDescending(){ - return "Buy groceries, Clean room, Write CV"; + if(this.tasks.isEmpty()){ + return "The todolist does not contain any tasks!"; + } + else{ + ArrayList sortedKeys = new ArrayList<>(this.tasks.keySet()); + Collections.sort(sortedKeys); + Collections.reverse(sortedKeys); + String tasksDescending = ""; + + for(String task : sortedKeys){ + if(!task.equals(sortedKeys.getLast())){ + tasksDescending += task + ", "; + } + else{ + tasksDescending += task; + } + } + System.out.println(tasksDescending); + return tasksDescending; + } } + + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 9bbf5d238..b644cd5b4 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -157,7 +157,7 @@ public void taskIsNotRemoved(){ public void tasksAreDescending(){ TodoList todoList = new TodoList(); - Assertions.assertEquals(todoList.taskDescending(), "Buy groceries, Clean room, Write CV"); + Assertions.assertEquals(todoList.taskDescending(), "Write CV, Clean room, Buy groceries"); } From 1e1da61bf3d03e895d441ae32b12d5244c670b80 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 17:21:21 +0100 Subject: [PATCH 27/47] test for task 9 completed --- src/test/java/com/booleanuk/core/TodoListTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index b644cd5b4..6e01f917e 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -161,5 +161,14 @@ public void tasksAreDescending(){ } + // Test 9 + @Test + public void tasksAreAscending(){ + TodoList todoList = new TodoList(); + + Assertions.assertEquals(todoList.taskDescending(), "Buy groceries, Clean room, Write CV"); + } + + } From d15f23286e4c29bb6d523927277d713c096fdd11 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 17:23:35 +0100 Subject: [PATCH 28/47] Method for task 9 completed --- .../java/com/booleanuk/core/TodoList.java | 22 ++++++++++++++++++- .../java/com/booleanuk/core/TodoListTest.java | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index a4546f8d2..95351f51c 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -118,10 +118,30 @@ public String taskDescending(){ tasksDescending += task; } } - System.out.println(tasksDescending); return tasksDescending; } } + // Task 9 + public String taskAscending(){ + if(this.tasks.isEmpty()){ + return "The todolist does not contain any tasks!"; + } + else{ + ArrayList sortedKeys = new ArrayList<>(this.tasks.keySet()); + Collections.sort(sortedKeys); + String tasksAscending = ""; + + for(String task : sortedKeys){ + if(!task.equals(sortedKeys.getLast())){ + tasksAscending += task + ", "; + } + else{ + tasksAscending += task; + } + } + return tasksAscending; + } + } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 6e01f917e..1d2feb0af 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -166,7 +166,7 @@ public void tasksAreDescending(){ public void tasksAreAscending(){ TodoList todoList = new TodoList(); - Assertions.assertEquals(todoList.taskDescending(), "Buy groceries, Clean room, Write CV"); + Assertions.assertEquals(todoList.taskAscending(), "Buy groceries, Clean room, Write CV"); } From 1d190bc9adddf224a5965ea907bcfa3a3bb83ec0 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 9 Jan 2025 17:35:20 +0100 Subject: [PATCH 29/47] fixed some typos. --- src/test/java/com/booleanuk/core/TodoListTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 1d2feb0af..f43d17578 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -81,7 +81,7 @@ public void doesStatusUpdateIfTaskDoesNotExist(){ public void doesExistCompletedTasks(){ TodoList todoList = new TodoList(); - if(todoList.getCompletedTasks().isEmpty()){ + if(!todoList.getCompletedTasks().isEmpty()){ Assertions.assertFalse(todoList.getCompletedTasks().isEmpty()); } } From 73fa7eb24667a6fee9c82de6e4411b451f9f6d85 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Tue, 14 Jan 2025 09:50:31 +0100 Subject: [PATCH 30/47] Updated code so that the HashMap is populated in the test-file instead. --- .../java/com/booleanuk/core/TodoList.java | 12 ++--- .../java/com/booleanuk/core/TodoListTest.java | 49 ++++++++++--------- 2 files changed, 29 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 95351f51c..8232be440 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -6,14 +6,10 @@ public class TodoList { - HashMap tasks = new HashMap<>(); - - public TodoList(){ - this.tasks = new HashMap<>(){{ - put("Clean room", false); - put("Buy groceries", false); - put("Write CV", true); - }}; + HashMap tasks; + + public TodoList(HashMap tasks){ + this.tasks = tasks; } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index f43d17578..2053fee9a 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -9,6 +9,12 @@ import java.util.HashMap; class TodoListTest { + private HashMap items = new HashMap<>(){{ + put("Clean room", false); + put("Buy groceries", false); + put("Write CV", true); + }}; + @Test public void exampleTest() { String hello = "Hello"; @@ -19,7 +25,7 @@ public void exampleTest() { //Task 1 @Test public void addTaskThatDoesNotExist(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); String taskName = "Go do exercise"; Assertions.assertTrue(todoList.add(taskName)); @@ -27,7 +33,7 @@ public void addTaskThatDoesNotExist(){ @Test public void addTaskThatDoesExist(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); String taskName = "Clean room"; Assertions.assertFalse(todoList.add(taskName)); @@ -38,22 +44,17 @@ public void addTaskThatDoesExist(){ //Task 2 @Test public void tasksExistInTodoList(){ - TodoList todoList = new TodoList(); - - if(!todoList.tasks.isEmpty()){ - Assertions.assertFalse(todoList.listTasks().isEmpty()); - } + TodoList todoList = new TodoList(items); + Assertions.assertFalse(todoList.listTasks().isEmpty()); } @Test public void tasksDoesNotExistInTodoList(){ - TodoList todoList = new TodoList(); - - if(todoList.tasks.isEmpty()){ - Assertions.assertEquals("The todolist does not contain any tasks!", todoList.listTasks()); - } + HashMap emptyItemSet = new HashMap<>(); + TodoList todoList = new TodoList(emptyItemSet); + Assertions.assertEquals("The todolist does not contain any tasks!", todoList.listTasks()); } @@ -61,7 +62,7 @@ public void tasksDoesNotExistInTodoList(){ //Task 3 @Test public void doesStatusUpdateIfTaskExist(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); String task = "Clean room"; Assertions.assertTrue(todoList.updateTaskStatus(task, true)); @@ -69,7 +70,7 @@ public void doesStatusUpdateIfTaskExist(){ @Test public void doesStatusUpdateIfTaskDoesNotExist(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); String task = "Go do exercise"; Assertions.assertFalse(todoList.updateTaskStatus(task, true)); @@ -79,7 +80,7 @@ public void doesStatusUpdateIfTaskDoesNotExist(){ // Task 4 @Test public void doesExistCompletedTasks(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); if(!todoList.getCompletedTasks().isEmpty()){ Assertions.assertFalse(todoList.getCompletedTasks().isEmpty()); @@ -88,7 +89,7 @@ public void doesExistCompletedTasks(){ @Test public void doesNotExistCompletedTasks(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); if(todoList.getCompletedTasks().isEmpty()){ Assertions.assertEquals("There are no completed tasks!", todoList.getCompletedTasks()); @@ -99,7 +100,7 @@ public void doesNotExistCompletedTasks(){ // Task 5 @Test public void UncompletedTasksExist(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); if(!todoList.getUncompletedTasks().isEmpty()){ Assertions.assertFalse(todoList.getUncompletedTasks().isEmpty()); @@ -108,7 +109,7 @@ public void UncompletedTasksExist(){ @Test public void doesNotExistUncompletedTasks(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); if(todoList.getUncompletedTasks().isEmpty()){ Assertions.assertEquals("There are no uncompleted tasks!", todoList.getUncompletedTasks()); @@ -119,7 +120,7 @@ public void doesNotExistUncompletedTasks(){ // Task 6 @Test public void taskDoesExist(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); String task = "Buy groceries"; Assertions.assertEquals("The task exist!", todoList.SearchTask(task)); @@ -127,7 +128,7 @@ public void taskDoesExist(){ @Test public void taskDoesNotExist(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); String task = "Play the piano"; Assertions.assertEquals("The task does not exist!", todoList.SearchTask(task)); @@ -137,7 +138,7 @@ public void taskDoesNotExist(){ // Task 7 @Test public void taskIsRemoved(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); String task = "Clean room"; Assertions.assertTrue(todoList.removeTask(task)); @@ -145,7 +146,7 @@ public void taskIsRemoved(){ @Test public void taskIsNotRemoved(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); String task = "Play the piano"; Assertions.assertFalse(todoList.removeTask(task)); @@ -155,7 +156,7 @@ public void taskIsNotRemoved(){ // Test 8 @Test public void tasksAreDescending(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); Assertions.assertEquals(todoList.taskDescending(), "Write CV, Clean room, Buy groceries"); } @@ -164,7 +165,7 @@ public void tasksAreDescending(){ // Test 9 @Test public void tasksAreAscending(){ - TodoList todoList = new TodoList(); + TodoList todoList = new TodoList(items); Assertions.assertEquals(todoList.taskAscending(), "Buy groceries, Clean room, Write CV"); } From ad5180ae1b28c1d7f84d49667acefcba5fb4f279 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 16:34:41 +0100 Subject: [PATCH 31/47] Made new classes for the extension --- .../com/booleanuk/extension/TodoItem.java | 37 +++++++++++++++++++ .../extension/TodoListExtension.java | 14 +++++++ .../extension/TodoListExtensionTest.java | 17 +++++++++ 3 files changed, 68 insertions(+) create mode 100644 src/main/java/com/booleanuk/extension/TodoItem.java create mode 100644 src/main/java/com/booleanuk/extension/TodoListExtension.java create mode 100644 src/test/java/com/booleanuk/extension/TodoListExtensionTest.java diff --git a/src/main/java/com/booleanuk/extension/TodoItem.java b/src/main/java/com/booleanuk/extension/TodoItem.java new file mode 100644 index 000000000..3f31e21b2 --- /dev/null +++ b/src/main/java/com/booleanuk/extension/TodoItem.java @@ -0,0 +1,37 @@ +package com.booleanuk.extension; + +public class TodoItem { + private String name; + private Boolean completed; + private Integer todoID; + + public TodoItem(Integer todoID, String name, Boolean completed){ + this.todoID = todoID; + this.name = name; + this.completed = false; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Boolean getCompleted() { + return completed; + } + + public void setCompleted(Boolean completed) { + this.completed = completed; + } + + public Integer getTodoID() { + return todoID; + } + + public void setTodoID(Integer todoID) { + this.todoID = todoID; + } +} diff --git a/src/main/java/com/booleanuk/extension/TodoListExtension.java b/src/main/java/com/booleanuk/extension/TodoListExtension.java new file mode 100644 index 000000000..7d7d6826e --- /dev/null +++ b/src/main/java/com/booleanuk/extension/TodoListExtension.java @@ -0,0 +1,14 @@ +package com.booleanuk.extension; + +import java.util.ArrayList; +import java.util.HashMap; + +public class TodoListExtension { + private ArrayList tasks; + private static long idCounter = 0; + + public TodoListExtension(ArrayList tasks){ + this.tasks = tasks; + } + +} diff --git a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java new file mode 100644 index 000000000..644bcf8de --- /dev/null +++ b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java @@ -0,0 +1,17 @@ +package com.booleanuk.extension; + +import java.util.ArrayList; +import java.util.HashMap; + +public class TodoListExtensionTest { + private ArrayList items = new ArrayList<>(){{ + TodoItem todoItem1 = new TodoItem(1, "Clean room", true); + add(todoItem1); + + TodoItem todoItem2 = new TodoItem(1, "Buy groceries", false); + add(todoItem2); + + TodoItem todoItem3 = new TodoItem(1, "Write CV", false); + add(todoItem3); + }}; +} From 9cc78f93855466b26dc475a781f26670d9192abb Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 16:37:45 +0100 Subject: [PATCH 32/47] Initial test for getTaskByID() in TodoListExtension completed --- .../extension/TodoListExtensionTest.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java index 644bcf8de..f2883a588 100644 --- a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java +++ b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java @@ -1,5 +1,8 @@ package com.booleanuk.extension; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + import java.util.ArrayList; import java.util.HashMap; @@ -8,10 +11,18 @@ public class TodoListExtensionTest { TodoItem todoItem1 = new TodoItem(1, "Clean room", true); add(todoItem1); - TodoItem todoItem2 = new TodoItem(1, "Buy groceries", false); + TodoItem todoItem2 = new TodoItem(2, "Buy groceries", false); add(todoItem2); - TodoItem todoItem3 = new TodoItem(1, "Write CV", false); + TodoItem todoItem3 = new TodoItem(3, "Write CV", false); add(todoItem3); }}; + + @Test + public void enteringNonExistingID(){ + TodoListExtension todoList = new TodoListExtension(items); + Integer nonExistingID = 4; + + Assertions.assertFalse(todoList.getTaskByID(nonExistingID)); + } } From c5ba5a72a062bd66b005a1dec8750062a6b597fa Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 16:43:01 +0100 Subject: [PATCH 33/47] Redid the test for getTaskByID() in TodoListExtension. Wanted a String to be returned instead. --- .../java/com/booleanuk/extension/TodoListExtensionTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java index f2883a588..547718ac7 100644 --- a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java +++ b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java @@ -23,6 +23,6 @@ public void enteringNonExistingID(){ TodoListExtension todoList = new TodoListExtension(items); Integer nonExistingID = 4; - Assertions.assertFalse(todoList.getTaskByID(nonExistingID)); + Assertions.assertEquals("ID is not in todo list", todoList.getTaskByID(nonExistingID)); } } From 2bdce191e609f1c9e331196a50d5ebb287d4891a Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 16:43:40 +0100 Subject: [PATCH 34/47] Initial method getTaskByID() in TodoListExtension completed --- src/main/java/com/booleanuk/extension/TodoListExtension.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/booleanuk/extension/TodoListExtension.java b/src/main/java/com/booleanuk/extension/TodoListExtension.java index 7d7d6826e..c5d4d89a1 100644 --- a/src/main/java/com/booleanuk/extension/TodoListExtension.java +++ b/src/main/java/com/booleanuk/extension/TodoListExtension.java @@ -11,4 +11,7 @@ public TodoListExtension(ArrayList tasks){ this.tasks = tasks; } + public String getTaskByID(Integer id){ + return "ID is not in todo list"; + } } From 79656643b4bb445cfb8f26b40731765b531bfdd3 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 16:46:56 +0100 Subject: [PATCH 35/47] method getTaskByID() in TodoListExtension completed --- .../java/com/booleanuk/extension/TodoListExtension.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/booleanuk/extension/TodoListExtension.java b/src/main/java/com/booleanuk/extension/TodoListExtension.java index c5d4d89a1..85deadb87 100644 --- a/src/main/java/com/booleanuk/extension/TodoListExtension.java +++ b/src/main/java/com/booleanuk/extension/TodoListExtension.java @@ -12,6 +12,15 @@ public TodoListExtension(ArrayList tasks){ } public String getTaskByID(Integer id){ + for(TodoItem item : tasks){ + if(item.getTodoID().equals(id)){ + if(item.getCompleted()){ + return item.getName() + ", completed"; + } else { + return item.getName() + ", not completed"; + } + } + } return "ID is not in todo list"; } } From 1174ce0d4fd035736cb32efa9de3a8d96e4ae31c Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 16:47:57 +0100 Subject: [PATCH 36/47] did another test for getTaskByID() in TodoListExtension --- .../com/booleanuk/extension/TodoListExtensionTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java index 547718ac7..1b646b583 100644 --- a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java +++ b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java @@ -25,4 +25,12 @@ public void enteringNonExistingID(){ Assertions.assertEquals("ID is not in todo list", todoList.getTaskByID(nonExistingID)); } + + @Test + public void enteringExistingID(){ + TodoListExtension todoList = new TodoListExtension(items); + Integer nonExistingID = 3; + + Assertions.assertEquals("Write CV, not completed", todoList.getTaskByID(nonExistingID)); + } } From ff00fc2dab9ab42a087adfa612ebb08f9fb04503 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 16:50:45 +0100 Subject: [PATCH 37/47] initial test for updateNameByID() completed --- .../com/booleanuk/extension/TodoListExtensionTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java index 1b646b583..0f700a9e4 100644 --- a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java +++ b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java @@ -18,6 +18,7 @@ public class TodoListExtensionTest { add(todoItem3); }}; + // EXTENSION 1 @Test public void enteringNonExistingID(){ TodoListExtension todoList = new TodoListExtension(items); @@ -33,4 +34,13 @@ public void enteringExistingID(){ Assertions.assertEquals("Write CV, not completed", todoList.getTaskByID(nonExistingID)); } + + // EXTENSION 2 + @Test + public void enteringNonExistingIDWhenUpdating(){ + TodoListExtension todoList = new TodoListExtension(items); + Integer nonExistingID = 4; + + Assertions.assertEquals("ID is not in todo list", todoList.updateNameByID(nonExistingID, "Do homework")); + } } From 23f9611512741dd4ac126e8dcee4b5c398ece009 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 16:51:56 +0100 Subject: [PATCH 38/47] initial method for updateNameByID() completed --- src/main/java/com/booleanuk/extension/TodoListExtension.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/booleanuk/extension/TodoListExtension.java b/src/main/java/com/booleanuk/extension/TodoListExtension.java index 85deadb87..ca70fc955 100644 --- a/src/main/java/com/booleanuk/extension/TodoListExtension.java +++ b/src/main/java/com/booleanuk/extension/TodoListExtension.java @@ -23,4 +23,8 @@ public String getTaskByID(Integer id){ } return "ID is not in todo list"; } + + public String updateNameByID(Integer id, String newName){ + return "ID is not in todo list"; + } } From b93561d51838067b63ed15be23386b6aac2e5911 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 16:54:59 +0100 Subject: [PATCH 39/47] method for updateNameByID() completed, also added another task for the same method. --- .../java/com/booleanuk/extension/TodoListExtension.java | 6 ++++++ .../com/booleanuk/extension/TodoListExtensionTest.java | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/src/main/java/com/booleanuk/extension/TodoListExtension.java b/src/main/java/com/booleanuk/extension/TodoListExtension.java index ca70fc955..047094081 100644 --- a/src/main/java/com/booleanuk/extension/TodoListExtension.java +++ b/src/main/java/com/booleanuk/extension/TodoListExtension.java @@ -25,6 +25,12 @@ public String getTaskByID(Integer id){ } public String updateNameByID(Integer id, String newName){ + for(TodoItem item : tasks){ + if(item.getTodoID().equals(id)){ + item.setName(newName); + return "Task with ID " + id + " has a new name: " + newName; + } + } return "ID is not in todo list"; } } diff --git a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java index 0f700a9e4..e67274b3e 100644 --- a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java +++ b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java @@ -43,4 +43,12 @@ public void enteringNonExistingIDWhenUpdating(){ Assertions.assertEquals("ID is not in todo list", todoList.updateNameByID(nonExistingID, "Do homework")); } + + @Test + public void enteringExistingIDWhenUpdating(){ + TodoListExtension todoList = new TodoListExtension(items); + Integer nonExistingID = 1; + + Assertions.assertEquals("Task with ID 1 has a new name: Do homework", todoList.updateNameByID(nonExistingID, "Do homework")); + } } From 6fd2b5048286fdf83fee577d1af63895d5b2165a Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 16:57:41 +0100 Subject: [PATCH 40/47] first test completed for extension 3, method updateStatusByID() --- .../booleanuk/extension/TodoListExtensionTest.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java index e67274b3e..3fb6a1f16 100644 --- a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java +++ b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java @@ -37,7 +37,7 @@ public void enteringExistingID(){ // EXTENSION 2 @Test - public void enteringNonExistingIDWhenUpdating(){ + public void enteringNonExistingIDWhenUpdatingName(){ TodoListExtension todoList = new TodoListExtension(items); Integer nonExistingID = 4; @@ -45,10 +45,19 @@ public void enteringNonExistingIDWhenUpdating(){ } @Test - public void enteringExistingIDWhenUpdating(){ + public void enteringExistingIDWhenUpdatingName(){ TodoListExtension todoList = new TodoListExtension(items); Integer nonExistingID = 1; Assertions.assertEquals("Task with ID 1 has a new name: Do homework", todoList.updateNameByID(nonExistingID, "Do homework")); } + + // EXTENSION 3 + @Test + public void enteringNonExistingIDWhenUpdatingStatus(){ + TodoListExtension todoList = new TodoListExtension(items); + Integer nonExistingID = 4; + + Assertions.assertEquals("ID is not in todo list", todoList.updateStatusByID(nonExistingID, true)); + } } From 396d060cd3c63810e2f489cf431ad111b7aa8fe0 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 16:58:44 +0100 Subject: [PATCH 41/47] initial method completed for extension 3, method updateStatusByID() --- src/main/java/com/booleanuk/extension/TodoListExtension.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/booleanuk/extension/TodoListExtension.java b/src/main/java/com/booleanuk/extension/TodoListExtension.java index 047094081..5d570055d 100644 --- a/src/main/java/com/booleanuk/extension/TodoListExtension.java +++ b/src/main/java/com/booleanuk/extension/TodoListExtension.java @@ -33,4 +33,8 @@ public String updateNameByID(Integer id, String newName){ } return "ID is not in todo list"; } + + public String updateStatusByID(Integer id, Boolean status){ + return "ID is not in todo list"; + } } From 5e878d8f2884a03a65e1b6c98ae3a81b02c902dc Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 17:00:02 +0100 Subject: [PATCH 42/47] added another test for extension 3, method updateStatusByID() --- .../com/booleanuk/extension/TodoListExtensionTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java index 3fb6a1f16..76013b4b8 100644 --- a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java +++ b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java @@ -60,4 +60,12 @@ public void enteringNonExistingIDWhenUpdatingStatus(){ Assertions.assertEquals("ID is not in todo list", todoList.updateStatusByID(nonExistingID, true)); } + + @Test + public void enteringExistingIDWhenUpdatingStatus(){ + TodoListExtension todoList = new TodoListExtension(items); + Integer nonExistingID = 3; + + Assertions.assertEquals("Task with ID 3 has a new status: completed", todoList.updateStatusByID(nonExistingID, true)); + } } From 4ca1ce9a079d00d26ee92016ec66ae7fa9f087a0 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 17:04:19 +0100 Subject: [PATCH 43/47] Method for extension 3 completed, method updateStatusByID() --- .../java/com/booleanuk/extension/TodoListExtension.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/booleanuk/extension/TodoListExtension.java b/src/main/java/com/booleanuk/extension/TodoListExtension.java index 5d570055d..06db5d072 100644 --- a/src/main/java/com/booleanuk/extension/TodoListExtension.java +++ b/src/main/java/com/booleanuk/extension/TodoListExtension.java @@ -35,6 +35,15 @@ public String updateNameByID(Integer id, String newName){ } public String updateStatusByID(Integer id, Boolean status){ + for(TodoItem item : tasks){ + if(item.getTodoID().equals(id)){ + if(status){ + return "Task with ID " + id + " has a new status: completed"; + }else { + return "Task with ID " + id + " has a new status: incomplete"; + } + } + } return "ID is not in todo list"; } } From feded287705b5f1b9b2015bb40ca4ff2693a6653 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 17:15:35 +0100 Subject: [PATCH 44/47] Added private LocalDateTime to TodoItem class. I Also did the initial test for Extension 4. --- .../java/com/booleanuk/extension/TodoItem.java | 15 ++++++++++----- .../extension/TodoListExtensionTest.java | 9 +++++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/booleanuk/extension/TodoItem.java b/src/main/java/com/booleanuk/extension/TodoItem.java index 3f31e21b2..e118d9fc7 100644 --- a/src/main/java/com/booleanuk/extension/TodoItem.java +++ b/src/main/java/com/booleanuk/extension/TodoItem.java @@ -1,14 +1,23 @@ package com.booleanuk.extension; +import java.time.LocalDate; +import java.time.LocalDateTime; + public class TodoItem { private String name; private Boolean completed; - private Integer todoID; + private final Integer todoID; + private LocalDateTime dateTime; public TodoItem(Integer todoID, String name, Boolean completed){ this.todoID = todoID; this.name = name; this.completed = false; + this.dateTime = LocalDateTime.now(); + } + + public LocalDateTime getDateTime() { + return dateTime; } public String getName() { @@ -30,8 +39,4 @@ public void setCompleted(Boolean completed) { public Integer getTodoID() { return todoID; } - - public void setTodoID(Integer todoID) { - this.todoID = todoID; - } } diff --git a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java index 76013b4b8..4d2ba3321 100644 --- a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java +++ b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java @@ -68,4 +68,13 @@ public void enteringExistingIDWhenUpdatingStatus(){ Assertions.assertEquals("Task with ID 3 has a new status: completed", todoList.updateStatusByID(nonExistingID, true)); } + + // EXTENSION 4 + @Test + public void noTasksAreInTheList(){ + ArrayList emptyList = new ArrayList<>(){}; + TodoListExtension todoList = new TodoListExtension(emptyList); + + Assertions.assertEquals("There are no tasks in the list!", todoList.showDateTimeForEachTask()); + } } From bdcb4ecda9abe464dddeec2a01b18fa31bb870b1 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 17:17:01 +0100 Subject: [PATCH 45/47] initial method for extension 4 completed --- src/main/java/com/booleanuk/extension/TodoListExtension.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/booleanuk/extension/TodoListExtension.java b/src/main/java/com/booleanuk/extension/TodoListExtension.java index 06db5d072..27a4c7687 100644 --- a/src/main/java/com/booleanuk/extension/TodoListExtension.java +++ b/src/main/java/com/booleanuk/extension/TodoListExtension.java @@ -46,4 +46,8 @@ public String updateStatusByID(Integer id, Boolean status){ } return "ID is not in todo list"; } + + public String showDateTimeForEachTask(){ + return "There are no tasks in the list!"; + } } From 821688925fec4aebbd9373af1b6f5e19fa7129d8 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Wed, 15 Jan 2025 17:20:21 +0100 Subject: [PATCH 46/47] method for extension 4 completed --- .../java/com/booleanuk/extension/TodoListExtension.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/com/booleanuk/extension/TodoListExtension.java b/src/main/java/com/booleanuk/extension/TodoListExtension.java index 27a4c7687..08534e7d7 100644 --- a/src/main/java/com/booleanuk/extension/TodoListExtension.java +++ b/src/main/java/com/booleanuk/extension/TodoListExtension.java @@ -48,6 +48,13 @@ public String updateStatusByID(Integer id, Boolean status){ } public String showDateTimeForEachTask(){ + String tasks = ""; + if(!this.tasks.isEmpty()){ + for(TodoItem item : this.tasks){ + tasks += "Task with id: " + item.getTodoID() + ", " + item.getName() + " was created: " + item.getDateTime().toString() + "\n"; + } + return tasks; + } return "There are no tasks in the list!"; } } From 8655376202ec0f794cf86562f48753b5e99ef463 Mon Sep 17 00:00:00 2001 From: Mattias Hedbom Date: Thu, 16 Jan 2025 13:45:42 +0100 Subject: [PATCH 47/47] Method showDateTimeForEachTask() for Extension 4, completed. Changed the TodoItem class so it takes a LocalDateTime object. Could not figure out how to compare the dates in the test if dates where generated by LocalDateTime.now() in the constructor of TodoItem. Thus I also changed the test slightly --- .../com/booleanuk/extension/TodoItem.java | 4 ++-- .../extension/TodoListExtension.java | 2 +- .../extension/TodoListExtensionTest.java | 23 ++++++++++++++++--- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/booleanuk/extension/TodoItem.java b/src/main/java/com/booleanuk/extension/TodoItem.java index e118d9fc7..47f31d885 100644 --- a/src/main/java/com/booleanuk/extension/TodoItem.java +++ b/src/main/java/com/booleanuk/extension/TodoItem.java @@ -9,11 +9,11 @@ public class TodoItem { private final Integer todoID; private LocalDateTime dateTime; - public TodoItem(Integer todoID, String name, Boolean completed){ + public TodoItem(Integer todoID, String name, Boolean completed, LocalDateTime dateTime){ this.todoID = todoID; this.name = name; this.completed = false; - this.dateTime = LocalDateTime.now(); + this.dateTime = dateTime; } public LocalDateTime getDateTime() { diff --git a/src/main/java/com/booleanuk/extension/TodoListExtension.java b/src/main/java/com/booleanuk/extension/TodoListExtension.java index 08534e7d7..5478fbb45 100644 --- a/src/main/java/com/booleanuk/extension/TodoListExtension.java +++ b/src/main/java/com/booleanuk/extension/TodoListExtension.java @@ -51,7 +51,7 @@ public String showDateTimeForEachTask(){ String tasks = ""; if(!this.tasks.isEmpty()){ for(TodoItem item : this.tasks){ - tasks += "Task with id: " + item.getTodoID() + ", " + item.getName() + " was created: " + item.getDateTime().toString() + "\n"; + tasks += "Task with id: " + item.getTodoID() + ", " + item.getName() + ", was created: " + item.getDateTime().toString() + "\n"; } return tasks; } diff --git a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java index 4d2ba3321..ae28c5e0d 100644 --- a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java +++ b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java @@ -3,18 +3,22 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; public class TodoListExtensionTest { private ArrayList items = new ArrayList<>(){{ - TodoItem todoItem1 = new TodoItem(1, "Clean room", true); + LocalDateTime dateTime1 = LocalDateTime.of(2024, 10, 25, 8, 50, 11); + TodoItem todoItem1 = new TodoItem(1, "Clean room", true, dateTime1); add(todoItem1); - TodoItem todoItem2 = new TodoItem(2, "Buy groceries", false); + LocalDateTime dateTime2 = LocalDateTime.of(2024, 10, 26, 10, 22, 18); + TodoItem todoItem2 = new TodoItem(2, "Buy groceries", false, dateTime2); add(todoItem2); - TodoItem todoItem3 = new TodoItem(3, "Write CV", false); + LocalDateTime dateTime3 = LocalDateTime.of(2024, 10, 30, 17, 30, 44); + TodoItem todoItem3 = new TodoItem(3, "Write CV", false, dateTime3); add(todoItem3); }}; @@ -77,4 +81,17 @@ public void noTasksAreInTheList(){ Assertions.assertEquals("There are no tasks in the list!", todoList.showDateTimeForEachTask()); } + + @Test + public void thereExistsTasksInTheList(){ + TodoListExtension todoList = new TodoListExtension(items); + String correctString = + "Task with id: 1, Clean room, was created: 2024-10-25T08:50:11\n" + + "Task with id: 2, Buy groceries, was created: 2024-10-26T10:22:18\n" + + "Task with id: 3, Write CV, was created: 2024-10-30T17:30:44\n"; + + + + Assertions.assertEquals(correctString, todoList.showDateTimeForEachTask()); + } }