From 6b201644f3320a5719308766a2189624725e49cb Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 12:55:23 +0100 Subject: [PATCH 01/19] core domain model done --- domain-model.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 domain-model.md diff --git a/domain-model.md b/domain-model.md new file mode 100644 index 000000000..d929f0fb2 --- /dev/null +++ b/domain-model.md @@ -0,0 +1,28 @@ + +## Task Class + +| Methods | Variables | Scenario | Output | +|------------------------|----------------------|---------------------|-----------------------| +| | `boolean completed ` | | | +| | `String name ` | | | +| `void completeTask() ` | | A task is completed | Set completed to true | +| | | | | +| | | | | +| | | | | + + +## ToDoList Class + +| Methods | Variables | Scenario | Output | +|-----------------------------------------|------------------------------|----------------------------------------------------|----------------------------------------------| +| | `ArrayList list ` | | | +| ` void addTask(Task task) ` | | Want to add a task to the ToDo List | Adds task to list | +| ` Arraylist seeAllTasks() ` | | Want to see all tasks in the list | Shows tasks in list | +| ` void changeStaus(Task task) ` | | Want to change status of existing task | Changes completed variable in chosen task | +| ` Arraylist getCompletedTasks() ` | | Want to get only completed tasks | Returns all completed tasks | +| ` Arraylist getInompleteTasks() ` | | Want to get only incomplete tasks | Returns all incomplete tasks | +| ` void search(Task task) ` | | Want to search for tasks | Searches for task and informs if not found | +| ` void remove(Task task) ` | | Want to remove a task | removes task from list | +| ` void changeStaus(Task task) ` | | Want to change status of existing task | Changes completed variable in chosen task | +| ` Arraylist alphabeticalA() ` | | Want to see tasks in alphabetical ascending order | Shows tasks in alphabetical ascending order | +| ` Arraylist alphabeticalD() ` | | Want to see tasks in alphabetical descending order | Shows tasks in alphabetical descending order | \ No newline at end of file From 28eb2371cd19d97e809cd7e2d69f37c76d66d3d4 Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 12:56:41 +0100 Subject: [PATCH 02/19] added Task class and TaskTest --- src/main/java/com/booleanuk/core/Task.java | 4 ++++ src/test/java/com/booleanuk/core/TaskTest.java | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 src/main/java/com/booleanuk/core/Task.java create mode 100644 src/test/java/com/booleanuk/core/TaskTest.java diff --git a/src/main/java/com/booleanuk/core/Task.java b/src/main/java/com/booleanuk/core/Task.java new file mode 100644 index 000000000..c4154bffb --- /dev/null +++ b/src/main/java/com/booleanuk/core/Task.java @@ -0,0 +1,4 @@ +package com.booleanuk.core; + +public class Task { +} diff --git a/src/test/java/com/booleanuk/core/TaskTest.java b/src/test/java/com/booleanuk/core/TaskTest.java new file mode 100644 index 000000000..dbabacc02 --- /dev/null +++ b/src/test/java/com/booleanuk/core/TaskTest.java @@ -0,0 +1,4 @@ +package com.booleanuk.core; + +public class TaskTest { +} From 274f65cd2a9972ee86fb105bb537a581594714f0 Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 13:02:02 +0100 Subject: [PATCH 03/19] added validation test for Task --- src/test/java/com/booleanuk/core/TaskTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/test/java/com/booleanuk/core/TaskTest.java b/src/test/java/com/booleanuk/core/TaskTest.java index dbabacc02..451b7abcb 100644 --- a/src/test/java/com/booleanuk/core/TaskTest.java +++ b/src/test/java/com/booleanuk/core/TaskTest.java @@ -1,4 +1,14 @@ package com.booleanuk.core; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + public class TaskTest { + + @Test + public void validTask(){ + Task task = new Task(); + + Assertions.assertTrue(!task.name.isEmpty()); + } } From 4bc8f50b7c1c997f0ce23bf42222e7011aa527c4 Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 13:05:32 +0100 Subject: [PATCH 04/19] Added Task constructur --- src/main/java/com/booleanuk/core/Task.java | 8 ++++++++ src/test/java/com/booleanuk/core/TaskTest.java | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/Task.java b/src/main/java/com/booleanuk/core/Task.java index c4154bffb..ff2159aa0 100644 --- a/src/main/java/com/booleanuk/core/Task.java +++ b/src/main/java/com/booleanuk/core/Task.java @@ -1,4 +1,12 @@ package com.booleanuk.core; public class Task { + + String name; + boolean completed; + + public Task(String name){ + this.name = name; + this.completed = false; + } } diff --git a/src/test/java/com/booleanuk/core/TaskTest.java b/src/test/java/com/booleanuk/core/TaskTest.java index 451b7abcb..9f3716970 100644 --- a/src/test/java/com/booleanuk/core/TaskTest.java +++ b/src/test/java/com/booleanuk/core/TaskTest.java @@ -7,7 +7,7 @@ public class TaskTest { @Test public void validTask(){ - Task task = new Task(); + Task task = new Task("Robin"); Assertions.assertTrue(!task.name.isEmpty()); } From 1df80826693fd0057a13aa10cdfa6db11e495462 Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 13:11:24 +0100 Subject: [PATCH 05/19] Added test for completeing tasks --- src/test/java/com/booleanuk/core/TaskTest.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/booleanuk/core/TaskTest.java b/src/test/java/com/booleanuk/core/TaskTest.java index 9f3716970..c20b50ecc 100644 --- a/src/test/java/com/booleanuk/core/TaskTest.java +++ b/src/test/java/com/booleanuk/core/TaskTest.java @@ -6,9 +6,19 @@ public class TaskTest { @Test - public void validTask(){ - Task task = new Task("Robin"); + public void testValidTask(){ + Task task = new Task("Code"); - Assertions.assertTrue(!task.name.isEmpty()); + Assertions.assertFalse(task.name.isEmpty()); + Assertions.assertFalse(task.completed); } + + @Test + public void testCompleteTask(){ + Task task = new Task("Run"); + + task.completeTask(); + Assertions.assertTrue(task.completed); + } + } From 2c3a7dbb663276aecd99906fad5906f10428f63f Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 13:12:59 +0100 Subject: [PATCH 06/19] Added method for completing task --- src/main/java/com/booleanuk/core/Task.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/booleanuk/core/Task.java b/src/main/java/com/booleanuk/core/Task.java index ff2159aa0..c18ff29f7 100644 --- a/src/main/java/com/booleanuk/core/Task.java +++ b/src/main/java/com/booleanuk/core/Task.java @@ -9,4 +9,8 @@ public Task(String name){ this.name = name; this.completed = false; } + + public void completeTask(){ + this.completed = true; + } } From 0d74a8684cd614d0086156a993907ccda5067d7e Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 13:25:09 +0100 Subject: [PATCH 07/19] Added tests for getting task name and status --- domain-model.md | 1 - .../java/com/booleanuk/core/TaskTest.java | 17 +++++++++ .../java/com/booleanuk/core/TodoListTest.java | 38 +++++++++++++++++-- 3 files changed, 51 insertions(+), 5 deletions(-) diff --git a/domain-model.md b/domain-model.md index d929f0fb2..b6c767212 100644 --- a/domain-model.md +++ b/domain-model.md @@ -23,6 +23,5 @@ | ` Arraylist getInompleteTasks() ` | | Want to get only incomplete tasks | Returns all incomplete tasks | | ` void search(Task task) ` | | Want to search for tasks | Searches for task and informs if not found | | ` void remove(Task task) ` | | Want to remove a task | removes task from list | -| ` void changeStaus(Task task) ` | | Want to change status of existing task | Changes completed variable in chosen task | | ` Arraylist alphabeticalA() ` | | Want to see tasks in alphabetical ascending order | Shows tasks in alphabetical ascending order | | ` Arraylist alphabeticalD() ` | | Want to see tasks in alphabetical descending order | Shows tasks in alphabetical descending order | \ No newline at end of file diff --git a/src/test/java/com/booleanuk/core/TaskTest.java b/src/test/java/com/booleanuk/core/TaskTest.java index c20b50ecc..105dc9ca1 100644 --- a/src/test/java/com/booleanuk/core/TaskTest.java +++ b/src/test/java/com/booleanuk/core/TaskTest.java @@ -13,6 +13,14 @@ public void testValidTask(){ Assertions.assertFalse(task.completed); } + @Test + public void testGetName(){ + Task task = new Task("Run"); + + String name = task.getName(); + Assertions.assertEquals("Run", name); + } + @Test public void testCompleteTask(){ Task task = new Task("Run"); @@ -21,4 +29,13 @@ public void testCompleteTask(){ Assertions.assertTrue(task.completed); } + @Test + public void testGetStatus(){ + Task task = new Task("Run"); + + Assertions.assertFalse(task.completed); + task.completeTask(); + Assertions.assertTrue(task.completed); + } + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 0bef779a4..ea6603ee1 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -4,10 +4,40 @@ import org.junit.jupiter.api.Test; class TodoListTest { + + @Test + public void testAddTask() { + + } + + @Test + public void testRemoveTask() { + + } + @Test - public void exampleTest() { - String hello = "Hello"; - Assertions.assertEquals("Hello", hello); - Assertions.assertNotEquals("Goodbye", hello); + public void testSeeTask() { + + } + + @Test + public void testChangeStatus() { + } + + @Test + public void testGetCompletedTasks() { + + } + + @Test + public void testGetIncompleteTasks() { + + } + + @Test + public void testSearch() { + + } + } From 46bc918c7bb56d2b0f88fd69665d2cf251d75659 Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 13:29:02 +0100 Subject: [PATCH 08/19] Updated domain model and added methods for fetching name/status --- domain-model.md | 16 ++++++++-------- src/main/java/com/booleanuk/core/Task.java | 8 ++++++++ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/domain-model.md b/domain-model.md index b6c767212..caf17527a 100644 --- a/domain-model.md +++ b/domain-model.md @@ -1,14 +1,14 @@ ## Task Class -| Methods | Variables | Scenario | Output | -|------------------------|----------------------|---------------------|-----------------------| -| | `boolean completed ` | | | -| | `String name ` | | | -| `void completeTask() ` | | A task is completed | Set completed to true | -| | | | | -| | | | | -| | | | | +| Methods | Variables | Scenario | Output | +|-------------------------|----------------------|-----------------------------|-----------------------| +| | `boolean completed ` | | | +| | `String name ` | | | +| `void completeTask() ` | | A task is completed | Set completed to true | +| `String getName() ` | | Want to fetch a task name | Return task name | +| `boolean getStatus() ` | | Want to fetch a task status | Return task status | +| | | | | ## ToDoList Class diff --git a/src/main/java/com/booleanuk/core/Task.java b/src/main/java/com/booleanuk/core/Task.java index c18ff29f7..f24de7205 100644 --- a/src/main/java/com/booleanuk/core/Task.java +++ b/src/main/java/com/booleanuk/core/Task.java @@ -10,6 +10,14 @@ public Task(String name){ this.completed = false; } + public String getName(){ + return this.name; + } + + public boolean getStatus(){ + return this.completed; + } + public void completeTask(){ this.completed = true; } From 4a1231a7dc7f29fa59faf224de834013e004a414 Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 14:01:01 +0100 Subject: [PATCH 09/19] Updated domain model and added tests for addTask and removeTask --- domain-model.md | 2 +- .../java/com/booleanuk/core/TodoListTest.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/domain-model.md b/domain-model.md index caf17527a..03a3c7d34 100644 --- a/domain-model.md +++ b/domain-model.md @@ -22,6 +22,6 @@ | ` Arraylist getCompletedTasks() ` | | Want to get only completed tasks | Returns all completed tasks | | ` Arraylist getInompleteTasks() ` | | Want to get only incomplete tasks | Returns all incomplete tasks | | ` void search(Task task) ` | | Want to search for tasks | Searches for task and informs if not found | -| ` void remove(Task task) ` | | Want to remove a task | removes task from list | +| ` void removeTask(String taskName) ` | | Want to remove a task | removes task from list | | ` Arraylist alphabeticalA() ` | | Want to see tasks in alphabetical ascending order | Shows tasks in alphabetical ascending order | | ` Arraylist alphabeticalD() ` | | Want to see tasks in alphabetical descending order | Shows tasks in alphabetical descending order | \ 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 ea6603ee1..f9c5ba259 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -3,15 +3,31 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import java.util.ArrayList; + class TodoListTest { @Test public void testAddTask() { + ArrayList toDoList = new ArrayList<>(); + Task task = new Task("Swim"); + toDoList.addTask(task); + Assertions.assertTrue(toDoList.contains(task)); } @Test public void testRemoveTask() { + ArrayList toDoList = new ArrayList<>(); + Task task1 = new Task("Sing"); + Task task2 = new Task("Jump"); + toDoList.addTask(task1); + toDoList.addTask(task2); + + Assertions.assertTrue(toDoList.contains(task1)); + Assertions.assertTrue(toDoList.contains(task2)); + toDoList.removetask("Jump"); + Assertions.assertFalse(toDoList.contains(task2)); } From 9f06f06392e878e0acb696cc93281090d92db462 Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 14:27:35 +0100 Subject: [PATCH 10/19] Added add and remove methods --- .../java/com/booleanuk/core/ToDoList.java | 20 +++++++++++++++++++ .../java/com/booleanuk/core/TodoList.java | 5 ----- .../java/com/booleanuk/core/TodoListTest.java | 14 ++++++------- 3 files changed, 27 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/booleanuk/core/ToDoList.java delete mode 100644 src/main/java/com/booleanuk/core/TodoList.java diff --git a/src/main/java/com/booleanuk/core/ToDoList.java b/src/main/java/com/booleanuk/core/ToDoList.java new file mode 100644 index 000000000..b5f3950be --- /dev/null +++ b/src/main/java/com/booleanuk/core/ToDoList.java @@ -0,0 +1,20 @@ +package com.booleanuk.core; + +import java.util.ArrayList; + +public class ToDoList { + + ArrayList tasks = new ArrayList<>(); + + public void addTask(Task task){ + if (!tasks.contains(task)){ + tasks.add(task); + } + System.out.println("This task is already in your ToDo List!"); + } + + public void removeTask(String taskName){ + tasks.removeIf(task -> task.getName().equals(taskName)); + } + +} diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java deleted file mode 100644 index 675adaf0b..000000000 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.booleanuk.core; - -public class TodoList { - -} diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index f9c5ba259..f1ec1081f 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -9,25 +9,25 @@ class TodoListTest { @Test public void testAddTask() { - ArrayList toDoList = new ArrayList<>(); + ToDoList toDoList = new ToDoList(); Task task = new Task("Swim"); toDoList.addTask(task); - Assertions.assertTrue(toDoList.contains(task)); + Assertions.assertTrue(toDoList.tasks.contains(task)); } @Test public void testRemoveTask() { - ArrayList toDoList = new ArrayList<>(); + ToDoList toDoList = new ToDoList(); Task task1 = new Task("Sing"); Task task2 = new Task("Jump"); toDoList.addTask(task1); toDoList.addTask(task2); - Assertions.assertTrue(toDoList.contains(task1)); - Assertions.assertTrue(toDoList.contains(task2)); - toDoList.removetask("Jump"); - Assertions.assertFalse(toDoList.contains(task2)); + Assertions.assertTrue(toDoList.tasks.contains(task1)); + Assertions.assertTrue(toDoList.tasks.contains(task2)); + toDoList.removeTask("Jump"); + Assertions.assertFalse(toDoList.tasks.contains(task2)); } From d725c87140ca88ff4b7d241c1ea6261cc8aeeddf Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 15:06:06 +0100 Subject: [PATCH 11/19] added tests for change status and see tasks (made methods in same commit by accident) --- domain-model.md | 2 +- src/main/java/com/booleanuk/core/Task.java | 4 +-- .../java/com/booleanuk/core/ToDoList.java | 17 +++++++++++- .../java/com/booleanuk/core/TaskTest.java | 22 ++++++++++----- .../java/com/booleanuk/core/TodoListTest.java | 27 ++++++++++++++++++- 5 files changed, 61 insertions(+), 11 deletions(-) diff --git a/domain-model.md b/domain-model.md index 03a3c7d34..47bba5240 100644 --- a/domain-model.md +++ b/domain-model.md @@ -17,7 +17,7 @@ |-----------------------------------------|------------------------------|----------------------------------------------------|----------------------------------------------| | | `ArrayList list ` | | | | ` void addTask(Task task) ` | | Want to add a task to the ToDo List | Adds task to list | -| ` Arraylist seeAllTasks() ` | | Want to see all tasks in the list | Shows tasks in list | +| ` Arraylist seeAllTasks() ` | | Want to see all tasks in the list | Shows tasks in list | | ` void changeStaus(Task task) ` | | Want to change status of existing task | Changes completed variable in chosen task | | ` Arraylist getCompletedTasks() ` | | Want to get only completed tasks | Returns all completed tasks | | ` Arraylist getInompleteTasks() ` | | Want to get only incomplete tasks | Returns all incomplete tasks | diff --git a/src/main/java/com/booleanuk/core/Task.java b/src/main/java/com/booleanuk/core/Task.java index f24de7205..97b3ee258 100644 --- a/src/main/java/com/booleanuk/core/Task.java +++ b/src/main/java/com/booleanuk/core/Task.java @@ -18,7 +18,7 @@ public boolean getStatus(){ return this.completed; } - public void completeTask(){ - this.completed = true; + public void setStatus(boolean status){ + this.completed = status; } } diff --git a/src/main/java/com/booleanuk/core/ToDoList.java b/src/main/java/com/booleanuk/core/ToDoList.java index b5f3950be..ec0c0e9c1 100644 --- a/src/main/java/com/booleanuk/core/ToDoList.java +++ b/src/main/java/com/booleanuk/core/ToDoList.java @@ -10,11 +10,26 @@ public void addTask(Task task){ if (!tasks.contains(task)){ tasks.add(task); } - System.out.println("This task is already in your ToDo List!"); } public void removeTask(String taskName){ tasks.removeIf(task -> task.getName().equals(taskName)); } + public void changeStatus(Task task, boolean completed){ + if (tasks.contains(task)){ + task.setStatus(completed); + } + } + + public ArrayList seeAllTasks(){ + ArrayList showTasks = new ArrayList<>(); + for (int i = 0; i < tasks.size(); i++){ + showTasks.add(i, tasks.get(i).name); + } + return showTasks; + } + + + } diff --git a/src/test/java/com/booleanuk/core/TaskTest.java b/src/test/java/com/booleanuk/core/TaskTest.java index 105dc9ca1..40d184edd 100644 --- a/src/test/java/com/booleanuk/core/TaskTest.java +++ b/src/test/java/com/booleanuk/core/TaskTest.java @@ -22,20 +22,30 @@ public void testGetName(){ } @Test - public void testCompleteTask(){ + public void testChangeStatusTrue(){ Task task = new Task("Run"); - task.completeTask(); - Assertions.assertTrue(task.completed); + task.setStatus(true); + Assertions.assertTrue(task.getStatus()); + } + + @Test + public void testChangeStatusFalse(){ + Task task = new Task("Run"); + + task.setStatus(true); + Assertions.assertTrue(task.getStatus()); + task.setStatus(false); + Assertions.assertFalse(task.getStatus()); } @Test public void testGetStatus(){ Task task = new Task("Run"); - Assertions.assertFalse(task.completed); - task.completeTask(); - Assertions.assertTrue(task.completed); + Assertions.assertFalse(task.getStatus()); + task.setStatus(true); + Assertions.assertTrue(task.getStatus()); } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index f1ec1081f..44755cf58 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -4,6 +4,7 @@ import org.junit.jupiter.api.Test; import java.util.ArrayList; +import java.util.List; class TodoListTest { @@ -32,12 +33,36 @@ public void testRemoveTask() { } @Test - public void testSeeTask() { + public void testSeeAllTask() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + Assertions.assertEquals(List.of("a", "b", "c"), toDoList.seeAllTasks()); } @Test public void testChangeStatus() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + + Assertions.assertFalse(task1.getStatus()); + Assertions.assertFalse(task2.getStatus()); + Assertions.assertFalse(task3.getStatus()); + toDoList.changeStatus(task2, true); + toDoList.changeStatus(task3, true); + Assertions.assertFalse(task1.getStatus()); + Assertions.assertTrue(task2.getStatus()); + Assertions.assertTrue(task3.getStatus()); } From 308543ae83079364c5fe80bbbea90538bc9a8678 Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 15:19:20 +0100 Subject: [PATCH 12/19] Adeed tests for complete/incomplete view of tasks --- domain-model.md | 4 ++-- .../java/com/booleanuk/core/ToDoList.java | 1 - .../java/com/booleanuk/core/TodoListTest.java | 23 +++++++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/domain-model.md b/domain-model.md index 47bba5240..7027301bb 100644 --- a/domain-model.md +++ b/domain-model.md @@ -23,5 +23,5 @@ | ` Arraylist getInompleteTasks() ` | | Want to get only incomplete tasks | Returns all incomplete tasks | | ` void search(Task task) ` | | Want to search for tasks | Searches for task and informs if not found | | ` void removeTask(String taskName) ` | | Want to remove a task | removes task from list | -| ` Arraylist alphabeticalA() ` | | Want to see tasks in alphabetical ascending order | Shows tasks in alphabetical ascending order | -| ` Arraylist alphabeticalD() ` | | Want to see tasks in alphabetical descending order | Shows tasks in alphabetical descending order | \ No newline at end of file +| ` Arraylist alphabeticalA() ` | | Want to see tasks in alphabetical ascending order | Shows tasks in alphabetical ascending order | +| ` Arraylist alphabeticalD() ` | | Want to see tasks in alphabetical descending order | Shows tasks in alphabetical descending order | \ No newline at end of file diff --git a/src/main/java/com/booleanuk/core/ToDoList.java b/src/main/java/com/booleanuk/core/ToDoList.java index ec0c0e9c1..39534c76e 100644 --- a/src/main/java/com/booleanuk/core/ToDoList.java +++ b/src/main/java/com/booleanuk/core/ToDoList.java @@ -31,5 +31,4 @@ public ArrayList seeAllTasks(){ } - } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 44755cf58..11b65d435 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -68,11 +68,34 @@ public void testChangeStatus() { @Test public void testGetCompletedTasks() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + toDoList.changeStatus(task2, true); + toDoList.changeStatus(task3, true); + + Assertions.assertEquals(List.of(task2, task3), toDoList.getCompletedTasks()); } @Test public void testGetIncompleteTasks() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + Task task4 = new Task("d"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + toDoList.changeStatus(task2, true); + toDoList.changeStatus(task3, true); + + Assertions.assertEquals(List.of(task1, task4), toDoList.getIncompleteTasks()); } From 14d054bd53186cae954465795d311bb529386861 Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 15:25:42 +0100 Subject: [PATCH 13/19] added methods for complete/incomplete --- .../java/com/booleanuk/core/ToDoList.java | 23 +++++++++++++++++++ .../java/com/booleanuk/core/TodoListTest.java | 1 + 2 files changed, 24 insertions(+) diff --git a/src/main/java/com/booleanuk/core/ToDoList.java b/src/main/java/com/booleanuk/core/ToDoList.java index 39534c76e..51f92ed61 100644 --- a/src/main/java/com/booleanuk/core/ToDoList.java +++ b/src/main/java/com/booleanuk/core/ToDoList.java @@ -30,5 +30,28 @@ public ArrayList seeAllTasks(){ return showTasks; } + public ArrayList getCompletedTasks(){ + ArrayList completedTasks = new ArrayList<>(); + for (Task task : tasks){ + if (task.completed){ + completedTasks.add(task); + } + } + return completedTasks; + } + + public ArrayList getIncompleteTasks(){ + ArrayList incompleteTasks = new ArrayList<>(); + for (Task task : tasks){ + if (!task.completed){ + incompleteTasks.add(task); + } + } + return incompleteTasks; + } + + + + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 11b65d435..3616e6504 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -92,6 +92,7 @@ public void testGetIncompleteTasks() { toDoList.addTask(task1); toDoList.addTask(task2); toDoList.addTask(task3); + toDoList.addTask(task4); toDoList.changeStatus(task2, true); toDoList.changeStatus(task3, true); From 3e4b781de86b3e76cf90f865ce238531869b5696 Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 15:32:52 +0100 Subject: [PATCH 14/19] search test added --- domain-model.md | 24 +++++++-------- .../java/com/booleanuk/core/TodoListTest.java | 29 ++++++++++++++++++- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/domain-model.md b/domain-model.md index 7027301bb..4b21b66cc 100644 --- a/domain-model.md +++ b/domain-model.md @@ -13,15 +13,15 @@ ## ToDoList Class -| Methods | Variables | Scenario | Output | -|-----------------------------------------|------------------------------|----------------------------------------------------|----------------------------------------------| -| | `ArrayList list ` | | | -| ` void addTask(Task task) ` | | Want to add a task to the ToDo List | Adds task to list | -| ` Arraylist seeAllTasks() ` | | Want to see all tasks in the list | Shows tasks in list | -| ` void changeStaus(Task task) ` | | Want to change status of existing task | Changes completed variable in chosen task | -| ` Arraylist getCompletedTasks() ` | | Want to get only completed tasks | Returns all completed tasks | -| ` Arraylist getInompleteTasks() ` | | Want to get only incomplete tasks | Returns all incomplete tasks | -| ` void search(Task task) ` | | Want to search for tasks | Searches for task and informs if not found | -| ` void removeTask(String taskName) ` | | Want to remove a task | removes task from list | -| ` Arraylist alphabeticalA() ` | | Want to see tasks in alphabetical ascending order | Shows tasks in alphabetical ascending order | -| ` Arraylist alphabeticalD() ` | | Want to see tasks in alphabetical descending order | Shows tasks in alphabetical descending order | \ No newline at end of file +| Methods | Variables | Scenario | Output | +|-----------------------------------------|------------------------------|----------------------------------------------------|---------------------------------------------------------| +| | `ArrayList list ` | | | +| ` void addTask(Task task) ` | | Want to add a task to the ToDo List | Adds task to list | +| ` Arraylist seeAllTasks() ` | | Want to see all tasks in the list | Shows tasks in list | +| ` void changeStaus(Task task) ` | | Want to change status of existing task | Changes completed variable in chosen task | +| ` Arraylist getCompletedTasks() ` | | Want to get only completed tasks | Returns all completed tasks | +| ` Arraylist getInompleteTasks() ` | | Want to get only incomplete tasks | Returns all incomplete tasks | +| ` Task search(String taskName) ` | | Want to search for tasks | Searches for and returns task, and informs if not found | +| ` void removeTask(String taskName) ` | | Want to remove a task | removes task from list | +| ` Arraylist alphabeticalA() ` | | Want to see tasks in alphabetical ascending order | Shows tasks in alphabetical ascending order | +| ` Arraylist alphabeticalD() ` | | Want to see tasks in alphabetical descending order | Shows tasks in alphabetical descending order | \ 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 3616e6504..36262d544 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -101,8 +101,35 @@ public void testGetIncompleteTasks() { } @Test - public void testSearch() { + public void testSearchExists() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + Task task4 = new Task("d"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + toDoList.addTask(task4); + + Task searchedTask = toDoList.search("d"); + Assertions.assertEquals(task4, searchedTask); + } + + @Test + public void testSearchDoesntExists() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + Task task4 = new Task("d"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + toDoList.addTask(task4); + Task searchedTask = toDoList.search("e"); + Assertions.assertNull(searchedTask); } } From 4884d825a8be498d3c7a803b086daa537463ce5d Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 15:38:38 +0100 Subject: [PATCH 15/19] search method added --- src/main/java/com/booleanuk/core/ToDoList.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/ToDoList.java b/src/main/java/com/booleanuk/core/ToDoList.java index 51f92ed61..89e39ffca 100644 --- a/src/main/java/com/booleanuk/core/ToDoList.java +++ b/src/main/java/com/booleanuk/core/ToDoList.java @@ -50,7 +50,15 @@ public ArrayList getIncompleteTasks(){ return incompleteTasks; } - + public Task search(String taskName){ + for (Task task : tasks){ + if (task.name.equals(taskName)){ + return task; + } + } + System.out.println("The task was not found or does not exist!"); + return null; + } From 809d6cdb6676b4e380d1a986ed0facde32b8892e Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 15:46:37 +0100 Subject: [PATCH 16/19] added tests for alphebetical methods --- .../java/com/booleanuk/core/TodoListTest.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 36262d544..3d0c5bde6 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -132,4 +132,35 @@ public void testSearchDoesntExists() { Assertions.assertNull(searchedTask); } + @Test + public void testAlphabeticalA() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("d"); + Task task2 = new Task("c"); + Task task3 = new Task("b"); + Task task4 = new Task("a"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + toDoList.addTask(task4); + + Assertions.assertEquals(List.of("a", "b", "c", "d"), toDoList.alphabeticalA()); + } + + @Test + public void testAlphabeticalD() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + Task task4 = new Task("d"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + toDoList.addTask(task4); + + Assertions.assertEquals(List.of("a", "b", "c"), toDoList.alphabeticalD()); + } + + } From 9e8a5126b076b6cdd79865268ad5fd4b6e1ff70a Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 16:03:53 +0100 Subject: [PATCH 17/19] added methods for alphabetical --- src/main/java/com/booleanuk/core/ToDoList.java | 18 ++++++++++++++++++ .../java/com/booleanuk/core/TodoListTest.java | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/ToDoList.java b/src/main/java/com/booleanuk/core/ToDoList.java index 89e39ffca..652020f75 100644 --- a/src/main/java/com/booleanuk/core/ToDoList.java +++ b/src/main/java/com/booleanuk/core/ToDoList.java @@ -1,6 +1,7 @@ package com.booleanuk.core; import java.util.ArrayList; +import java.util.Collections; public class ToDoList { @@ -60,6 +61,23 @@ public Task search(String taskName){ return null; } + public ArrayList alphabeticalA(){ + ArrayList alphabeticalAscending = new ArrayList<>(); + for (Task task : tasks){ + alphabeticalAscending.add(task.name); + } + Collections.sort(alphabeticalAscending); + return alphabeticalAscending; + } + public ArrayList alphabeticalD(){ + ArrayList alphabeticalDescending = new ArrayList<>(); + for (Task task : tasks){ + alphabeticalDescending.add(task.name); + } + Collections.sort(alphabeticalDescending); + Collections.reverse(alphabeticalDescending); + return alphabeticalDescending; + } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 3d0c5bde6..4b65da3ef 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -159,7 +159,7 @@ public void testAlphabeticalD() { toDoList.addTask(task3); toDoList.addTask(task4); - Assertions.assertEquals(List.of("a", "b", "c"), toDoList.alphabeticalD()); + Assertions.assertEquals(List.of("d", "c", "b", "a"), toDoList.alphabeticalD()); } From 61d9f31cd40ebd1804e2d984183d95ca0c3a4918 Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Sat, 11 Jan 2025 15:47:54 +0100 Subject: [PATCH 18/19] Added files for extension --- .../java/com/booleanuk/extension/Task.java | 29 +++++++++++++++++++ .../com/booleanuk/extension/ToDoList.java | 4 +++ .../com/booleanuk/extension/TaskTest.java | 4 +++ .../com/booleanuk/extension/ToDoListTest.java | 4 +++ 4 files changed, 41 insertions(+) create mode 100644 src/main/java/com/booleanuk/extension/Task.java create mode 100644 src/main/java/com/booleanuk/extension/ToDoList.java create mode 100644 src/test/java/com/booleanuk/extension/TaskTest.java create mode 100644 src/test/java/com/booleanuk/extension/ToDoListTest.java diff --git a/src/main/java/com/booleanuk/extension/Task.java b/src/main/java/com/booleanuk/extension/Task.java new file mode 100644 index 000000000..2887d6358 --- /dev/null +++ b/src/main/java/com/booleanuk/extension/Task.java @@ -0,0 +1,29 @@ +package com.booleanuk.extension; + +public class Task { + + static int counter = 0; + final int id; + String name; + boolean completed; + + public Task(String name){ + this.name = name; + this.completed = false; + this.id = counter++; + } + + public String getName(){ + return this.name; + } + + public boolean getStatus(){ + return this.completed; + } + + public void setStatus(boolean status){ + this.completed = status; + } + + +} diff --git a/src/main/java/com/booleanuk/extension/ToDoList.java b/src/main/java/com/booleanuk/extension/ToDoList.java new file mode 100644 index 000000000..dc7ae0bb6 --- /dev/null +++ b/src/main/java/com/booleanuk/extension/ToDoList.java @@ -0,0 +1,4 @@ +package com.booleanuk.extension; + +public class ToDoList { +} diff --git a/src/test/java/com/booleanuk/extension/TaskTest.java b/src/test/java/com/booleanuk/extension/TaskTest.java new file mode 100644 index 000000000..c1ae8c22d --- /dev/null +++ b/src/test/java/com/booleanuk/extension/TaskTest.java @@ -0,0 +1,4 @@ +package com.booleanuk.extension; + +public class TaskTest { +} diff --git a/src/test/java/com/booleanuk/extension/ToDoListTest.java b/src/test/java/com/booleanuk/extension/ToDoListTest.java new file mode 100644 index 000000000..b2a1a21fc --- /dev/null +++ b/src/test/java/com/booleanuk/extension/ToDoListTest.java @@ -0,0 +1,4 @@ +package com.booleanuk.extension; + +public class ToDoListTest { +} From 224f31a19ab47f4cc3e35421cb6acb4cd23b5d9c Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Sat, 11 Jan 2025 17:00:00 +0100 Subject: [PATCH 19/19] completed extension requirements (except for time/date) --- .../java/com/booleanuk/extension/Task.java | 18 +- .../com/booleanuk/extension/ToDoList.java | 102 ++++++++- .../com/booleanuk/extension/TaskTest.java | 79 ++++++- .../com/booleanuk/extension/ToDoListTest.java | 215 +++++++++++++++++- 4 files changed, 406 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/booleanuk/extension/Task.java b/src/main/java/com/booleanuk/extension/Task.java index 2887d6358..688dff701 100644 --- a/src/main/java/com/booleanuk/extension/Task.java +++ b/src/main/java/com/booleanuk/extension/Task.java @@ -2,21 +2,29 @@ public class Task { - static int counter = 0; - final int id; - String name; - boolean completed; + private static int counter = 0; + private final int id; + private String name; + private boolean completed; public Task(String name){ this.name = name; this.completed = false; - this.id = counter++; + this.id = counter += 1; + } + + public int getId(){ + return this.id; } public String getName(){ return this.name; } + public void changeName(String newName){ + this.name = newName; + } + public boolean getStatus(){ return this.completed; } diff --git a/src/main/java/com/booleanuk/extension/ToDoList.java b/src/main/java/com/booleanuk/extension/ToDoList.java index dc7ae0bb6..c132ffee1 100644 --- a/src/main/java/com/booleanuk/extension/ToDoList.java +++ b/src/main/java/com/booleanuk/extension/ToDoList.java @@ -1,4 +1,104 @@ package com.booleanuk.extension; +import java.util.ArrayList; +import java.util.Collections; + public class ToDoList { -} + + ArrayList tasks = new ArrayList<>(); + + public Task getTask(int id){ + for (Task task : tasks){ + if (task.getId() == id){ + return task; + } + } + System.out.println("No task with this ID!"); + return null; + } + + public void updateName(int id, String newName){ + for (Task task : tasks){ + if (task.getId() == id){ + task.changeName(newName); + } + } + System.out.println("No task with given ID!"); + } + + public void addTask(Task task){ + if (!tasks.contains(task)){ + tasks.add(task); + } + } + + public void removeTask(String taskName){ + tasks.removeIf(task -> task.getName().equals(taskName)); + } + + public void changeStatus(int id, boolean completed){ + for (Task task : tasks){ + if (task.getId() == id){ + task.setStatus(completed); + } + } + } + + public ArrayList seeAllTasks(){ + ArrayList showTasks = new ArrayList<>(); + for (int i = 0; i < tasks.size(); i++){ + showTasks.add(i, tasks.get(i).getName()); + } + return showTasks; + } + + public ArrayList getCompletedTasks(){ + ArrayList completedTasks = new ArrayList<>(); + for (Task task : tasks){ + if (task.getStatus()){ + completedTasks.add(task); + } + } + return completedTasks; + } + + public ArrayList getIncompleteTasks(){ + ArrayList incompleteTasks = new ArrayList<>(); + for (Task task : tasks){ + if (!task.getStatus()){ + incompleteTasks.add(task); + } + } + return incompleteTasks; + } + + public Task search(String taskName){ + for (Task task : tasks){ + if (task.getName().equals(taskName)){ + return task; + } + } + System.out.println("The task was not found or does not exist!"); + return null; + } + + public ArrayList alphabeticalA(){ + ArrayList alphabeticalAscending = new ArrayList<>(); + for (Task task : tasks){ + alphabeticalAscending.add(task.getName()); + } + Collections.sort(alphabeticalAscending); + return alphabeticalAscending; + } + + public ArrayList alphabeticalD(){ + ArrayList alphabeticalDescending = new ArrayList<>(); + for (Task task : tasks){ + alphabeticalDescending.add(task.getName()); + } + Collections.sort(alphabeticalDescending); + Collections.reverse(alphabeticalDescending); + return alphabeticalDescending; + } + +} \ No newline at end of file diff --git a/src/test/java/com/booleanuk/extension/TaskTest.java b/src/test/java/com/booleanuk/extension/TaskTest.java index c1ae8c22d..25d39dc0e 100644 --- a/src/test/java/com/booleanuk/extension/TaskTest.java +++ b/src/test/java/com/booleanuk/extension/TaskTest.java @@ -1,4 +1,81 @@ package com.booleanuk.extension; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.lang.reflect.Field; + public class TaskTest { -} + + // Had to add this to reset static counter in between different tests + @BeforeEach + public void resetCounter() throws NoSuchFieldException, IllegalAccessException { + Field counterField = Task.class.getDeclaredField("counter"); + counterField.setAccessible(true); + counterField.set(null, 0); // Reset the static counter to 0 + } + + @Test + public void testGetId(){ + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + + Assertions.assertEquals(1, task1.getId()); + Assertions.assertEquals(2, task2.getId()); + Assertions.assertEquals(3, task3.getId()); + } + + @Test + public void testChangeName(){ + Task task = new Task("Code"); + Assertions.assertEquals("Code", task.getName()); + task.changeName("Jump"); + Assertions.assertEquals("Jump", task.getName()); + } + + @Test + public void testValidTask(){ + Task task = new Task("Code"); + + Assertions.assertFalse(task.getName().isEmpty()); + Assertions.assertFalse(task.getStatus()); + } + + @Test + public void testGetName(){ + Task task = new Task("Run"); + + String name = task.getName(); + Assertions.assertEquals("Run", name); + } + + @Test + public void testChangeStatusTrue(){ + Task task = new Task("Run"); + + task.setStatus(true); + Assertions.assertTrue(task.getStatus()); + } + + @Test + public void testChangeStatusFalse(){ + Task task = new Task("Run"); + + task.setStatus(true); + Assertions.assertTrue(task.getStatus()); + task.setStatus(false); + Assertions.assertFalse(task.getStatus()); + } + + @Test + public void testGetStatus(){ + Task task = new Task("Run"); + + Assertions.assertFalse(task.getStatus()); + task.setStatus(true); + Assertions.assertTrue(task.getStatus()); + } + +} \ No newline at end of file diff --git a/src/test/java/com/booleanuk/extension/ToDoListTest.java b/src/test/java/com/booleanuk/extension/ToDoListTest.java index b2a1a21fc..6af2bf480 100644 --- a/src/test/java/com/booleanuk/extension/ToDoListTest.java +++ b/src/test/java/com/booleanuk/extension/ToDoListTest.java @@ -1,4 +1,217 @@ package com.booleanuk.extension; -public class ToDoListTest { +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.lang.reflect.Field; +import java.util.List; + +class TodoListTest { + + // Had to add this to reset static counter in between different tests + @BeforeEach + public void resetCounter() throws NoSuchFieldException, IllegalAccessException { + Field counterField = Task.class.getDeclaredField("counter"); + counterField.setAccessible(true); + counterField.set(null, 0); + } + + @Test + public void testAddTask() { + ToDoList toDoList = new ToDoList(); + Task task = new Task("Swim"); + + toDoList.addTask(task); + Assertions.assertTrue(toDoList.tasks.contains(task)); + } + + @Test + public void testGetTask(){ + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + + Assertions.assertEquals(task1, toDoList.getTask(1)); + Assertions.assertEquals(task2, toDoList.getTask(2)); + Assertions.assertEquals(task3, toDoList.getTask(3)); + } + + @Test + public void testUpdateName(){ + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + + Assertions.assertEquals("a", toDoList.getTask(1).getName()); + Assertions.assertEquals("b", toDoList.getTask(2).getName()); + Assertions.assertEquals("c", toDoList.getTask(3).getName()); + + toDoList.updateName(1, "x"); + toDoList.updateName(2, "y"); + toDoList.updateName(3, "z"); + Assertions.assertEquals("x", task1.getName()); + Assertions.assertEquals("y", task2.getName()); + Assertions.assertEquals("z", task3.getName()); + + } + + @Test + public void testRemoveTask() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("Sing"); + Task task2 = new Task("Jump"); + toDoList.addTask(task1); + toDoList.addTask(task2); + + Assertions.assertTrue(toDoList.tasks.contains(task1)); + Assertions.assertTrue(toDoList.tasks.contains(task2)); + toDoList.removeTask("Jump"); + Assertions.assertFalse(toDoList.tasks.contains(task2)); + + } + + @Test + public void testSeeAllTask() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + + Assertions.assertEquals(List.of("a", "b", "c"), toDoList.seeAllTasks()); + } + + @Test + public void testChangeStatusWithId() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + + Assertions.assertFalse(task1.getStatus()); + Assertions.assertFalse(task2.getStatus()); + Assertions.assertFalse(task3.getStatus()); + Assertions.assertEquals(2, task2.getId()); + Assertions.assertEquals(3, task3.getId()); + toDoList.changeStatus(2, true); + toDoList.changeStatus(3, true); + Assertions.assertFalse(task1.getStatus()); + Assertions.assertTrue(task2.getStatus()); + Assertions.assertTrue(task3.getStatus()); + + } + + @Test + public void testGetCompletedTasks() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + Assertions.assertEquals(2, task2.getId()); + Assertions.assertEquals(3, task3.getId()); + toDoList.changeStatus(2, true); + toDoList.changeStatus(3, true); + + Assertions.assertEquals(List.of(task2, task3), toDoList.getCompletedTasks()); + + } + + @Test + public void testGetIncompleteTasks() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + Task task4 = new Task("d"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + toDoList.addTask(task4); + toDoList.changeStatus(2, true); + toDoList.changeStatus(3, true); + + Assertions.assertEquals(List.of(task1, task4), toDoList.getIncompleteTasks()); + + } + + @Test + public void testSearchExists() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + Task task4 = new Task("d"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + toDoList.addTask(task4); + + Task searchedTask = toDoList.search("d"); + Assertions.assertEquals(task4, searchedTask); + } + + @Test + public void testSearchDoesntExists() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + Task task4 = new Task("d"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + toDoList.addTask(task4); + + Task searchedTask = toDoList.search("e"); + Assertions.assertNull(searchedTask); + } + + @Test + public void testAlphabeticalA() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("d"); + Task task2 = new Task("c"); + Task task3 = new Task("b"); + Task task4 = new Task("a"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + toDoList.addTask(task4); + + Assertions.assertEquals(List.of("a", "b", "c", "d"), toDoList.alphabeticalA()); + } + + @Test + public void testAlphabeticalD() { + ToDoList toDoList = new ToDoList(); + Task task1 = new Task("a"); + Task task2 = new Task("b"); + Task task3 = new Task("c"); + Task task4 = new Task("d"); + toDoList.addTask(task1); + toDoList.addTask(task2); + toDoList.addTask(task3); + toDoList.addTask(task4); + + Assertions.assertEquals(List.of("d", "c", "b", "a"), toDoList.alphabeticalD()); + } + } +