From 74ac9143fd38fb2e8e56d54838c88e8e5937459c Mon Sep 17 00:00:00 2001 From: Magnus Hissingby Date: Thu, 7 Aug 2025 13:33:52 +0200 Subject: [PATCH 1/6] TodoList tasks --- .../java/com/booleanuk/core/TodoList.java | 29 +++++++ .../java/com/booleanuk/core/domain-models.md | 84 +++++++++++++++++++ .../java/com/booleanuk/core/TodoListTest.java | 33 +++++++- 3 files changed, 142 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/booleanuk/core/domain-models.md diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 675adaf0b..036fe1b60 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -1,5 +1,34 @@ package com.booleanuk.core; +import java.util.ArrayList; +import java.util.List; + public class TodoList { + List todoList; + + public TodoList(){ + this.todoList = new ArrayList<>(); + } + + private static class Task { + String task; + String status; + + public Task(String task, String status){ + this.task = task; + this.status = status; + } + } + public boolean addTask(String task){ + if (task.isEmpty()){ + return false; + } else if (!task.matches("[a-zA-Z]+")){ + return false; + } + else { + todoList.add(new Task(task, "incomplete")); + return true; + } + } } diff --git a/src/main/java/com/booleanuk/core/domain-models.md b/src/main/java/com/booleanuk/core/domain-models.md new file mode 100644 index 000000000..d3d36019c --- /dev/null +++ b/src/main/java/com/booleanuk/core/domain-models.md @@ -0,0 +1,84 @@ + + + + + + + +1. Add tasks to my todo list. + +| Classes | Methods | Scenario | Outputs | +|------------|--------------------------------|----------------------------|---------| +| `TodoList` | `boolean addTask(String task)` | If task is null or invalid | false | +| | | If task is provided | true | + + +2. See all the tasks in my todo list. + + +| Classes | Methods | Scenario | Outputs | +|------------|----------------------------|----------------------|------------| +| `TodoList` | `List seeTodoList()` | If list is empty | null | +| | | If list is not empty | List | + + +3. Change the status of a task between incomplete and complete. + +| Classes | Methods | Scenario | Outputs | +|------------|----------------------------------------------|------------------------------|---------| +| `TodoList` | `Task setStatus(String task, String status)` | If status or task is invalid | null | +| | | If status and task is valid | Task | + + +4. Get only the complete tasks. + + +| Classes | Methods | Scenario | Outputs | +|------------|---------------------------------|------------------------------|------------| +| `TodoList` | `List getCompleteTasks()` | If no tasks are complete | null | +| | | If there are completed tasks | List | + + +5. Get only the incomplete tasks. + + +| Classes | Methods | Scenario | Outputs | +|------------|-----------------------------------|-------------------------------|------------| +| `TodoList` | `List getIncompleteTasks()` | If no tasks are incomplete | null | +| | | If there are incomplete tasks | List | + + +6. Search for a task and receive a message that says it wasn't found if it doesn't exist. + + +| Classes | Methods | Scenario | Outputs | +|------------|-----------------------------------|-----------------------|-------------------------------------------| +| `TodoList` | `Task searchForTask(String task)` | If task doesn't exist | print "not found" message and return null | +| | | If task exists | return task | + + +7. Remove tasks from my list. + + +| Classes | Methods | Scenario | Outputs | +|------------|-----------------------------------|-----------------------|------------------------| +| `TodoList` | `boolean removeTask(String task)` | If task doesn't exist | false | +| | | If task does exist | remove and return true | + + +8. See all the tasks in my list ordered alphabetically in ascending order. + + +| Classes | Methods | Scenario | Outputs | +|------------|-------------------------------------------------------|---------------------------|------------| +| `TodoList` | `List seeTasksInAscendingAndAlpabeticalOrder()` | If list of tasks is empty | null | +| | | If list is not empty | List | + + +9. See all the tasks in my list ordered alphabetically in descending order. + + +| Classes | Methods | Scenario | Outputs | +|------------|---------------------------------------------------------|---------------------------|------------| +| `TodoList` | `List seeTasksInDescendingAndAlphabeticalOrder()` | If list of tasks is empty | null | +| | | If list is not empty | List | \ 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..8d9d617c8 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -4,10 +4,35 @@ import org.junit.jupiter.api.Test; class TodoListTest { + + @Test + public void testAddTasksValidInput() { + TodoList todoList = new TodoList(); + + String task1 = "running"; + String task2 = "clean"; + + boolean res1 = todoList.addTask(task1); + boolean res2 = todoList.addTask(task2); + + Assertions.assertTrue(res1); + Assertions.assertTrue(res2); + } + @Test - public void exampleTest() { - String hello = "Hello"; - Assertions.assertEquals("Hello", hello); - Assertions.assertNotEquals("Goodbye", hello); + public void testAddTasksInvalidInput() { + TodoList todoList = new TodoList(); + + String task1 = "/clean!"; + String task2 = ""; + String task3 = "1111"; + + boolean res1 = todoList.addTask(task1); + boolean res2 = todoList.addTask(task2); + boolean res3 = todoList.addTask(task3); + + Assertions.assertFalse(res1); + Assertions.assertFalse(res2); + Assertions.assertFalse(res3); } } From c7d085e361a971173a4f47e54a459a54048afe45 Mon Sep 17 00:00:00 2001 From: Magnus Hissingby Date: Thu, 7 Aug 2025 15:46:02 +0200 Subject: [PATCH 2/6] TodoList tasks --- .../java/com/booleanuk/core/TodoList.java | 80 +++++++++++++++- .../java/com/booleanuk/core/TodoListTest.java | 94 +++++++++++++++++++ 2 files changed, 173 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 036fe1b60..335fde3cb 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -10,7 +10,7 @@ public TodoList(){ this.todoList = new ArrayList<>(); } - private static class Task { + public static class Task { String task; String status; @@ -31,4 +31,82 @@ public boolean addTask(String task){ return true; } } + + public List seeTodoList(){ + if (todoList.isEmpty()){ + return null; + } else { + return todoList; + } + } + + public Task setStatus(String task, String status){ + Task rep = null; + for (Task res : todoList){ + if (res.task.equals(task)){ + rep = res; + } + } + if (seeTodoList() == null){ + return null; + } + else if (rep == null){ + return null; + } else { + Task updatedTask = new Task(task, status); + this.todoList.set(todoList.indexOf(rep), updatedTask); + return updatedTask; + } + } + + public List getCompleteTasks() { + if (todoList.isEmpty()){ + return null; + } else { + List completedTasks = new ArrayList<>(); + for (Task task : todoList) { + if (task.status.equals("complete")) { + completedTasks.add(task); + } + } + if (completedTasks.isEmpty()){ + return null; + } else { + return completedTasks; + } + } + } + + public List getIncompleteTasks() { + if (todoList.isEmpty()){ + return null; + } else { + List incompleteTasks = new ArrayList<>(); + for (Task task : todoList) { + if (task.status.equals("incomplete")) { + incompleteTasks.add(task); + } + } + if (incompleteTasks.isEmpty()){ + return null; + } else { + return incompleteTasks; + } + } + } + + public Task searchForTask(String task) { + Task res = null; + for (Task target : todoList) { + if (target.task.equals(task)) { + res = target; + } + } + if (res == null) { + System.out.println("Not found!"); + return null; + } else { + return res; + } + } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 8d9d617c8..a2b294b31 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -35,4 +35,98 @@ public void testAddTasksInvalidInput() { Assertions.assertFalse(res2); Assertions.assertFalse(res3); } + + @Test + public void testSeeAllTasks() { + TodoList todoList1 = new TodoList(); + TodoList todoList2 = new TodoList(); + + String task1 = "running"; + String task2 = "clean"; + + todoList1.addTask(task1); + todoList1.addTask(task2); + + Assertions.assertNull(todoList2.seeTodoList()); + Assertions.assertEquals(2, todoList1.seeTodoList().size()); + } + + @Test + public void testSetStatus() { + TodoList todoList = new TodoList(); + TodoList todoList2 = new TodoList(); + + String task1 = "running"; + + todoList.addTask(task1); + TodoList.Task task = todoList.setStatus(task1, "complete"); + + Assertions.assertEquals("complete", task.status); + Assertions.assertNull(todoList2.setStatus(task1, "complete")); + } + + @Test + public void testGetCompleteTasks() { + TodoList todoList = new TodoList(); + TodoList todoList2 = new TodoList(); + + String task1 = "running"; + String task2 = "cleaning"; + String task3 = "shopping"; + + todoList.addTask(task1); + todoList.addTask(task2); + todoList.addTask(task3); + + todoList2.addTask(task1); + todoList2.addTask(task2); + todoList2.addTask(task3); + + todoList.setStatus(task1, "complete"); + todoList.setStatus(task2, "complete"); + + Assertions.assertNull(todoList2.getCompleteTasks()); + Assertions.assertEquals(2, todoList.getCompleteTasks().size()); + } + + @Test + public void testGetIncompleteTasks() { + TodoList todoList = new TodoList(); + + String task1 = "running"; + String task2 = "cleaning"; + String task3 = "shopping"; + + todoList.addTask(task1); + todoList.addTask(task2); + todoList.addTask(task3); + + Assertions.assertEquals(3, todoList.getIncompleteTasks().size()); + + todoList.setStatus(task1, "complete"); + todoList.setStatus(task2, "complete"); + todoList.setStatus(task3, "complete"); + + Assertions.assertNull(todoList.getIncompleteTasks()); + } + + @Test + public void testSearchForTask() { + TodoList todoList = new TodoList(); + + String task1 = "running"; + String task2 = "cleaning"; + String task3 = "shopping"; + String task4 = "something"; + + todoList.addTask(task1); + todoList.addTask(task2); + todoList.addTask(task3); + + TodoList.Task res = todoList.searchForTask(task1); + + Assertions.assertEquals("running", res.task); + Assertions.assertEquals("incomplete", res.status); + Assertions.assertNull(todoList.searchForTask(task4)); + } } From 2d9538950c70b574a9ad456cc81ba2a6d2661e79 Mon Sep 17 00:00:00 2001 From: Magnus Hissingby Date: Thu, 7 Aug 2025 20:55:39 +0200 Subject: [PATCH 3/6] TodoList tasks --- .../java/com/booleanuk/core/TodoList.java | 37 ++++++++++ .../java/com/booleanuk/core/TodoListTest.java | 70 +++++++++++++++++++ 2 files changed, 107 insertions(+) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 335fde3cb..dab6486b3 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -1,6 +1,9 @@ package com.booleanuk.core; +import javax.swing.*; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; public class TodoList { @@ -109,4 +112,38 @@ public Task searchForTask(String task) { return res; } } + + public boolean removeTask(String task) { + Task res = null; + for (Task target : todoList) { + if (target.task.equals(task)) { + res = target; + } + } + if (res == null) { + return false; + } else { + this.todoList.remove(res); + return true; + } + } + + public List seeTasksInAscendingAndAlphabeticalOrder() { + if (todoList.isEmpty()) { + return null; + } + List res = new ArrayList<>(todoList); + res.sort(Comparator.comparing(s -> s.task)); + return res; + } + + public List seeTasksInDescendingAndAlphabeticalOrder() { + if (todoList.isEmpty()) { + return null; + } + List res = new ArrayList<>(todoList); + res.sort(Comparator.comparing(s -> s.task)); + res.sort((s1, s2) -> s2.task.compareTo(s1.task)); + return res; + } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index a2b294b31..0c322f4f2 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.List; + class TodoListTest { @Test @@ -129,4 +132,71 @@ public void testSearchForTask() { Assertions.assertEquals("incomplete", res.status); Assertions.assertNull(todoList.searchForTask(task4)); } + + @Test + public void testRemoveTask() { + TodoList todoList = new TodoList(); + + String task1 = "running"; + String task2 = "shopping"; + + Assertions.assertFalse(todoList.removeTask(task1)); + + todoList.addTask(task1); + todoList.addTask(task2); + + Assertions.assertTrue(todoList.removeTask(task1)); + Assertions.assertTrue(todoList.removeTask(task2)); + Assertions.assertTrue(todoList.todoList.isEmpty()); + } + + @Test + public void testSeeTasksInAscendingAndAlphabeticalOrder() { + + TodoList todoList = new TodoList(); + + String task1 = "running"; + String task2 = "cleaning"; + String task3 = "shopping"; + String task4 = "anything"; + + todoList.addTask(task1); + todoList.addTask(task2); + todoList.addTask(task3); + todoList.addTask(task4); + + // Check if the list is unsorted + Assertions.assertEquals(task1, todoList.todoList.getFirst().task); + + // Then check if the return-value of the method is correctly sorted + Assertions.assertEquals(task4, todoList.seeTasksInAscendingAndAlphabeticalOrder().getFirst().task); + + // Then make sure the original list is unchanged + Assertions.assertEquals(task1, todoList.todoList.getFirst().task); + } + + @Test + public void testSeeTasksInDescendingAndAlphabeticalOrder() { + + TodoList todoList = new TodoList(); + + String task1 = "running"; + String task2 = "cleaning"; + String task3 = "shopping"; + String task4 = "anything"; + + todoList.addTask(task1); + todoList.addTask(task2); + todoList.addTask(task3); + todoList.addTask(task4); + + // Check if the list is unsorted + Assertions.assertEquals(task1, todoList.todoList.getFirst().task); + + // Then check if the return-value of the method is correctly sorted + Assertions.assertEquals(task3, todoList.seeTasksInDescendingAndAlphabeticalOrder().getFirst().task); + + // Then make sure the original list is unchanged + Assertions.assertEquals(task1, todoList.todoList.getFirst().task); + } } From 48b23b8bc4b9f476dd7665b9212afbcf51534477 Mon Sep 17 00:00:00 2001 From: Magnus Hissingby Date: Thu, 7 Aug 2025 22:07:52 +0200 Subject: [PATCH 4/6] TodoList tasks --- .../java/com/booleanuk/core/TodoList.java | 103 ++++-------------- .../java/com/booleanuk/core/TodoListTest.java | 9 +- 2 files changed, 25 insertions(+), 87 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index dab6486b3..da46d184e 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -2,7 +2,6 @@ import javax.swing.*; import java.util.ArrayList; -import java.util.Collections; import java.util.Comparator; import java.util.List; @@ -24,11 +23,8 @@ public Task(String task, String status){ } public boolean addTask(String task){ - if (task.isEmpty()){ + if (task.isEmpty() || !task.matches("[a-zA-Z]+")) return false; - } else if (!task.matches("[a-zA-Z]+")){ - return false; - } else { todoList.add(new Task(task, "incomplete")); return true; @@ -36,114 +32,55 @@ public boolean addTask(String task){ } public List seeTodoList(){ - if (todoList.isEmpty()){ - return null; - } else { - return todoList; - } + return (todoList.isEmpty()) ? null : todoList; } public Task setStatus(String task, String status){ - Task rep = null; - for (Task res : todoList){ - if (res.task.equals(task)){ - rep = res; - } - } - if (seeTodoList() == null){ - return null; - } - else if (rep == null){ + + List targets = todoList.stream().filter(it -> it.task.equals(task)).toList(); + Task updatedTask = new Task(task, status); + if (targets.isEmpty()) return null; - } else { - Task updatedTask = new Task(task, status); - this.todoList.set(todoList.indexOf(rep), updatedTask); + else { + this.todoList.set(todoList.indexOf(targets.getFirst()), updatedTask); return updatedTask; } } public List getCompleteTasks() { - if (todoList.isEmpty()){ - return null; - } else { - List completedTasks = new ArrayList<>(); - for (Task task : todoList) { - if (task.status.equals("complete")) { - completedTasks.add(task); - } - } - if (completedTasks.isEmpty()){ - return null; - } else { - return completedTasks; - } - } + List completedTasks = todoList.stream().filter(it -> it.status.equals("complete")).toList(); + return completedTasks.isEmpty() ? null : completedTasks; } public List getIncompleteTasks() { - if (todoList.isEmpty()){ - return null; - } else { - List incompleteTasks = new ArrayList<>(); - for (Task task : todoList) { - if (task.status.equals("incomplete")) { - incompleteTasks.add(task); - } - } - if (incompleteTasks.isEmpty()){ - return null; - } else { - return incompleteTasks; - } - } + List completedTasks = todoList.stream().filter(it -> it.status.equals("incomplete")).toList(); + return completedTasks.isEmpty() ? null : completedTasks; } public Task searchForTask(String task) { - Task res = null; - for (Task target : todoList) { - if (target.task.equals(task)) { - res = target; - } - } - if (res == null) { - System.out.println("Not found!"); - return null; - } else { - return res; - } + List targets = todoList.stream().filter(it -> it.task.equals(task)).toList(); + return (targets.isEmpty()) ? null : targets.getFirst(); } public boolean removeTask(String task) { - Task res = null; - for (Task target : todoList) { - if (target.task.equals(task)) { - res = target; - } - } - if (res == null) { + List targets = todoList.stream().filter(it -> it.task.equals(task)).toList(); + if (targets.isEmpty()) return false; - } else { - this.todoList.remove(res); + else { + todoList.remove(targets.getFirst()); return true; } } public List seeTasksInAscendingAndAlphabeticalOrder() { - if (todoList.isEmpty()) { - return null; - } List res = new ArrayList<>(todoList); res.sort(Comparator.comparing(s -> s.task)); - return res; + return res.isEmpty() ? null : res; } public List seeTasksInDescendingAndAlphabeticalOrder() { - if (todoList.isEmpty()) { - return null; - } List res = new ArrayList<>(todoList); - res.sort(Comparator.comparing(s -> s.task)); res.sort((s1, s2) -> s2.task.compareTo(s1.task)); - return res; + return res.isEmpty() ? null : res; } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 0c322f4f2..ae2a233f4 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -3,9 +3,6 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import java.util.ArrayList; -import java.util.List; - class TodoListTest { @Test @@ -40,7 +37,7 @@ public void testAddTasksInvalidInput() { } @Test - public void testSeeAllTasks() { + public void testSeeTodoList() { TodoList todoList1 = new TodoList(); TodoList todoList2 = new TodoList(); @@ -160,6 +157,8 @@ public void testSeeTasksInAscendingAndAlphabeticalOrder() { String task3 = "shopping"; String task4 = "anything"; + Assertions.assertNull(todoList.seeTasksInAscendingAndAlphabeticalOrder()); + todoList.addTask(task1); todoList.addTask(task2); todoList.addTask(task3); @@ -185,6 +184,8 @@ public void testSeeTasksInDescendingAndAlphabeticalOrder() { String task3 = "shopping"; String task4 = "anything"; + Assertions.assertNull(todoList.seeTasksInDescendingAndAlphabeticalOrder()); + todoList.addTask(task1); todoList.addTask(task2); todoList.addTask(task3); From 0b9dc3fd5cc85eac210e96ac5acd03c887a6e5f9 Mon Sep 17 00:00:00 2001 From: Magnus Hissingby Date: Thu, 7 Aug 2025 23:46:22 +0200 Subject: [PATCH 5/6] TodoList tasks + extensions --- .../java/com/booleanuk/core/TodoList.java | 2 + .../extension/TodoListExtension.java | 64 ++++++++++++++++ .../extension/TodoListExtensionTest.java | 74 +++++++++++++++++++ 3 files changed, 140 insertions(+) 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/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index da46d184e..37d596325 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -83,4 +83,6 @@ public List seeTasksInDescendingAndAlphabeticalOrder() { res.sort((s1, s2) -> s2.task.compareTo(s1.task)); return res.isEmpty() ? null : res; } + + } 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..0c70ee11b --- /dev/null +++ b/src/main/java/com/booleanuk/extension/TodoListExtension.java @@ -0,0 +1,64 @@ +package com.booleanuk.extension; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +public class TodoListExtension { + List todoList; + + public TodoListExtension() { + this.todoList = new ArrayList<>(); + } + + public static class TaskExt { + String task; + String status; + int id; + LocalDateTime timeCreated; + + public TaskExt(String task, int id) { + this.task = task; + this.status = "incomplete"; + this.id = id; + this.timeCreated = LocalDateTime.now(); + } + } + + public void addTaskExt(String task, int id){ + todoList.add(new TaskExt(task, id)); + } + + public TaskExt getTaskByUniqueId(int id){ + List res = todoList.stream().filter(it -> it.id == id).toList(); + return res.isEmpty() ? null : res.getFirst(); + } + + public TaskExt updateNameBasedOnId(int id, String task){ + List targets = todoList.stream().filter(it -> it.id == id).toList(); + TaskExt updatedTask = new TaskExt(task, id); + if (targets.isEmpty()) + return null; + else { + this.todoList.set(todoList.indexOf(targets.getFirst()), updatedTask); + return updatedTask; + } + } + + public TaskExt updateStatusBasedOnId(int id, String newStatus) { + List targets = todoList.stream().filter(it -> it.id == id).toList(); + TaskExt updatedTask = new TaskExt(targets.getFirst().task, id); + updatedTask.status = newStatus; + if (targets.isEmpty()) + return null; + else { + this.todoList.set(todoList.indexOf(targets.getFirst()), updatedTask); + return updatedTask; + } + } + + public LocalDateTime whenTaskCreated(int id) { + List targets = todoList.stream().filter(it -> it.id == id).toList(); + return targets.isEmpty() ? null : targets.getFirst().timeCreated; + } +} 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..9d3b20d50 --- /dev/null +++ b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java @@ -0,0 +1,74 @@ +package com.booleanuk.extension; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.time.LocalDateTime; + +public class TodoListExtensionTest { + + @Test + public void testGetTaskByUniqueId() { + + TodoListExtension todoList = new TodoListExtension(); + + TodoListExtension.TaskExt task1 = new TodoListExtension.TaskExt("running", 5); + TodoListExtension.TaskExt task2 = new TodoListExtension.TaskExt("shopping", 3); + + todoList.addTaskExt(task1.task, task1.id); + todoList.addTaskExt(task2.task, task2.id); + + Assertions.assertEquals("running", todoList.getTaskByUniqueId(5).task); + Assertions.assertEquals("shopping", todoList.getTaskByUniqueId(3).task); + } + + @Test + public void testUpdateNameBasedOnId() { + + TodoListExtension todoList = new TodoListExtension(); + + TodoListExtension.TaskExt task1 = new TodoListExtension.TaskExt("running", 5); + TodoListExtension.TaskExt task2 = new TodoListExtension.TaskExt("shopping", 3); + + todoList.addTaskExt(task1.task, task1.id); + todoList.addTaskExt(task2.task, task2.id); + + String newName = "work"; + + Assertions.assertEquals(newName, todoList.updateNameBasedOnId(5, newName).task); + } + + + @Test + public void testUpdateStatusBasedOnId() { + + TodoListExtension todoList = new TodoListExtension(); + + TodoListExtension.TaskExt task1 = new TodoListExtension.TaskExt("running", 5); + TodoListExtension.TaskExt task2 = new TodoListExtension.TaskExt("shopping", 3); + + todoList.addTaskExt(task1.task, task1.id); + todoList.addTaskExt(task2.task, task2.id); + + String newStatus = "complete"; + + Assertions.assertEquals(newStatus, todoList.updateStatusBasedOnId(5, newStatus).status); + } + + + @Test + public void testWhenTaskCreated() { + + TodoListExtension todoList = new TodoListExtension(); + + TodoListExtension.TaskExt task1 = new TodoListExtension.TaskExt("running", 5); + TodoListExtension.TaskExt task2 = new TodoListExtension.TaskExt("shopping", 3); + + LocalDateTime currentDateTime = LocalDateTime.now(); + todoList.addTaskExt(task1.task, task1.id); + todoList.addTaskExt(task2.task, task2.id); + + Assertions.assertEquals(currentDateTime, todoList.whenTaskCreated(5)); + } +} + From a705c02a731687931bd426d37454b273826417c8 Mon Sep 17 00:00:00 2001 From: Magnus Hissingby Date: Thu, 7 Aug 2025 23:51:44 +0200 Subject: [PATCH 6/6] TodoList tasks + extensions --- .../java/com/booleanuk/extension/TodoListExtensionTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java index 9d3b20d50..13b6ba000 100644 --- a/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java +++ b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java @@ -64,11 +64,11 @@ public void testWhenTaskCreated() { TodoListExtension.TaskExt task1 = new TodoListExtension.TaskExt("running", 5); TodoListExtension.TaskExt task2 = new TodoListExtension.TaskExt("shopping", 3); - LocalDateTime currentDateTime = LocalDateTime.now(); + int currentDateTime = LocalDateTime.now().getHour(); todoList.addTaskExt(task1.task, task1.id); todoList.addTaskExt(task2.task, task2.id); - Assertions.assertEquals(currentDateTime, todoList.whenTaskCreated(5)); + Assertions.assertEquals(currentDateTime, todoList.whenTaskCreated(5).getHour()); } }