From ee6c28fc43a95e22aab4a6c0de4f0ac6415a5e87 Mon Sep 17 00:00:00 2001 From: Thomas Kristiansen Date: Thu, 9 Jan 2025 13:12:49 +0100 Subject: [PATCH 01/12] First take on domain module --- domain-module.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 domain-module.md diff --git a/domain-module.md b/domain-module.md new file mode 100644 index 000000000..a628eb3e7 --- /dev/null +++ b/domain-module.md @@ -0,0 +1,22 @@ +# TODO list + +| Members | Methods | Scenario | Outputs | +|------------------------|-------------------------|-------------------------|--------------------------------------| +| Arraylist\ tasks | add(Task task) | Task is already in list | False | +| | | Task is not in the list | True | +| | viewTask() | | Display the list | +| | viewCompletedTasks() | | Display the completed tasks | +| | viewIncompletedTasks() | | Display the incompleted tasks | +| | search(String name) | Task does not exist | Print it was not found | +| | | Task exist | Print it was found | +| | removeTask(String name) | Task does not exist | Print it was not found | +| | | Task does exist | Task removed | +| | viewAlphabeticAsc() | | Display list alphabetical ascending | +| | viewAplhabeticDesc() | | Display list alphabetical descending | + +# Task + +| Members | Methods | Scenario | Outputs | +|------------------|------------------------------|----------|------------------------| +| boolean complete | changeStatus(boolean status) | True | complete becomes True | +| String name | | False | complete becomes False | From 567ec74682a1d7955a7ed086b69ea5de18e633d9 Mon Sep 17 00:00:00 2001 From: Thomas Kristiansen Date: Thu, 9 Jan 2025 13:50:20 +0100 Subject: [PATCH 02/12] made test for changing status --- src/main/java/com/booleanuk/core/Task.java | 15 +++++++++++++++ src/test/java/com/booleanuk/core/TaskTest.java | 17 +++++++++++++++++ .../java/com/booleanuk/core/TodoListTest.java | 10 ++++++++++ 3 files changed, 42 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..b1e183766 --- /dev/null +++ b/src/main/java/com/booleanuk/core/Task.java @@ -0,0 +1,15 @@ +package com.booleanuk.core; + +public class Task { + public String name; + public boolean complete; + + public Task(String name) { + this.name = name; + this.complete = false; + } + + public void changeStatus() { + + } +} 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..87f8846c3 --- /dev/null +++ b/src/test/java/com/booleanuk/core/TaskTest.java @@ -0,0 +1,17 @@ +package com.booleanuk.core; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class TaskTest { + + @Test + public void statusChanged() { + Task task = new Task("Take out the garbage"); + task.changeStatus(true); + Assertions.assertTrue(task.complete); + + task.changeStatus(false); + Assertions.assertFalse(task.complete); + } +} diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 0bef779a4..3312e8ee6 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -10,4 +10,14 @@ public void exampleTest() { Assertions.assertEquals("Hello", hello); Assertions.assertNotEquals("Goodbye", hello); } + + @Test + public void addingTask() { + TodoList todoList = new TodoList(); + Task task = new Task(); + String name = "Take out the garbage"; + boolean complete = false; + + + } } From f210b2fbfecb65be5d3de4a431f068f33643a24c Mon Sep 17 00:00:00 2001 From: Thomas Kristiansen Date: Thu, 9 Jan 2025 13:59:14 +0100 Subject: [PATCH 03/12] Implemented test for adding task --- src/main/java/com/booleanuk/core/Task.java | 4 ++-- src/main/java/com/booleanuk/core/TodoList.java | 6 ++++++ src/test/java/com/booleanuk/core/TodoListTest.java | 7 +++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/booleanuk/core/Task.java b/src/main/java/com/booleanuk/core/Task.java index b1e183766..603efce11 100644 --- a/src/main/java/com/booleanuk/core/Task.java +++ b/src/main/java/com/booleanuk/core/Task.java @@ -9,7 +9,7 @@ public Task(String name) { this.complete = false; } - public void changeStatus() { - + public void changeStatus(boolean status) { + complete = status; } } diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 675adaf0b..fe1449dd0 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -1,5 +1,11 @@ package com.booleanuk.core; +import java.util.ArrayList; + public class TodoList { + ArrayList tasks = new ArrayList<>(); + public boolean add(Task task) { + return true; + } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 3312e8ee6..df56a1af6 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -14,10 +14,9 @@ public void exampleTest() { @Test public void addingTask() { TodoList todoList = new TodoList(); - Task task = new Task(); - String name = "Take out the garbage"; - boolean complete = false; - + Task task = new Task("Take out the garbage"); + task.complete = false; + Assertions.assertTrue(todoList.add(task)); } } From 304d81c8d83053a1cba1902c0644342b2a16d3b8 Mon Sep 17 00:00:00 2001 From: Thomas Kristiansen Date: Thu, 9 Jan 2025 14:28:28 +0100 Subject: [PATCH 04/12] Implemented test for incomplete tasks --- .../java/com/booleanuk/core/TodoList.java | 15 ++++++- .../java/com/booleanuk/core/TodoListTest.java | 39 +++++++++++++++---- 2 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index fe1449dd0..caec9ef24 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -6,6 +6,19 @@ public class TodoList { ArrayList tasks = new ArrayList<>(); public boolean add(Task task) { - return true; + if(tasks.contains(task)) { + return false; + } else { + tasks.add(task); + return true; + } + } + + public ArrayList viewTasks() { + return tasks; + } + + public ArrayList viewIncompleteTasks() { + return tasks; } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index df56a1af6..d6b7c1e0e 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -3,20 +3,45 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import java.util.ArrayList; + class TodoListTest { - @Test - public void exampleTest() { - String hello = "Hello"; - Assertions.assertEquals("Hello", hello); - Assertions.assertNotEquals("Goodbye", hello); - } @Test public void addingTask() { TodoList todoList = new TodoList(); Task task = new Task("Take out the garbage"); - task.complete = false; Assertions.assertTrue(todoList.add(task)); + Assertions.assertFalse(todoList.add(task)); + } + + @Test + public void viewAllTasks() { + TodoList todoList = new TodoList(); + ArrayList empty = new ArrayList<>(); + Assertions.assertIterableEquals(empty, todoList.viewTasks()); + + Task task = new Task("Take out the garbage"); + todoList.add(task); + empty.add(task); + + Assertions.assertIterableEquals(empty, todoList.viewTasks()); + } + + @Test + public void checkViewAllIncompleteTasks() { + TodoList todoList = new TodoList(); + ArrayList empty = new ArrayList<>(); + Assertions.assertIterableEquals(empty, todoList.viewIncompleteTasks()); + + Task task = new Task("Take out the garbage"); + Task taskComplete = new Task("Take out the garbage"); + task.complete = true; + todoList.add(task); + todoList.add(taskComplete); + empty.add(task); + + Assertions.assertIterableEquals(empty, todoList.viewIncompleteTasks()); } } From cda46bb108c138050cdac9a2c663f511e0349086 Mon Sep 17 00:00:00 2001 From: Thomas Kristiansen Date: Thu, 9 Jan 2025 14:41:05 +0100 Subject: [PATCH 05/12] method and test for view completed tasks --- .../java/com/booleanuk/core/TodoList.java | 19 +++++++++++++++++- .../java/com/booleanuk/core/TodoListTest.java | 20 ++++++++++++++++--- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index caec9ef24..c6c2bbe9b 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -19,6 +19,23 @@ public ArrayList viewTasks() { } public ArrayList viewIncompleteTasks() { - return tasks; + ArrayList result = new ArrayList<>(); + for (int i = 0; i < tasks.size(); i++) { + if(!tasks.get(i).complete) { + result.add(tasks.get(i)); + } + } + return result; + } + + public ArrayList viewCompleteTasks() { + ArrayList result = new ArrayList<>(); + for (int i = 0; i < tasks.size(); i++) { + if(tasks.get(i).complete) { + result.add(tasks.get(i)); + } + } + return result; } + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index d6b7c1e0e..01e78cb7e 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -37,11 +37,25 @@ public void checkViewAllIncompleteTasks() { Task task = new Task("Take out the garbage"); Task taskComplete = new Task("Take out the garbage"); - task.complete = true; - todoList.add(task); + taskComplete.complete = true; todoList.add(taskComplete); empty.add(task); - Assertions.assertIterableEquals(empty, todoList.viewIncompleteTasks()); + Assertions.assertNotEquals(empty, todoList.viewIncompleteTasks()); + } + + @Test + public void checkViewAllCompleteTasks() { + TodoList todoList = new TodoList(); + ArrayList empty = new ArrayList<>(); + Assertions.assertIterableEquals(empty, todoList.viewCompleteTasks()); + + Task task = new Task("Take out the garbage"); + Task taskComplete = new Task("Take out the garbage"); + taskComplete.complete = true; + todoList.add(taskComplete); + empty.add(task); + + Assertions.assertNotEquals(empty, todoList.viewCompleteTasks()); } } From b08c5ff8dd48ceb4e8844f85f1a2b04826dcb896 Mon Sep 17 00:00:00 2001 From: Thomas Kristiansen Date: Thu, 9 Jan 2025 15:00:12 +0100 Subject: [PATCH 06/12] Implemented test for remove method --- domain-module.md | 26 +++++++++---------- .../java/com/booleanuk/core/TodoList.java | 8 ++++++ .../java/com/booleanuk/core/TodoListTest.java | 24 +++++++++++++++++ 3 files changed, 45 insertions(+), 13 deletions(-) diff --git a/domain-module.md b/domain-module.md index a628eb3e7..14938b9d0 100644 --- a/domain-module.md +++ b/domain-module.md @@ -1,18 +1,18 @@ # TODO list -| Members | Methods | Scenario | Outputs | -|------------------------|-------------------------|-------------------------|--------------------------------------| -| Arraylist\ tasks | add(Task task) | Task is already in list | False | -| | | Task is not in the list | True | -| | viewTask() | | Display the list | -| | viewCompletedTasks() | | Display the completed tasks | -| | viewIncompletedTasks() | | Display the incompleted tasks | -| | search(String name) | Task does not exist | Print it was not found | -| | | Task exist | Print it was found | -| | removeTask(String name) | Task does not exist | Print it was not found | -| | | Task does exist | Task removed | -| | viewAlphabeticAsc() | | Display list alphabetical ascending | -| | viewAplhabeticDesc() | | Display list alphabetical descending | +| Members | Methods | Scenario | Outputs | +|------------------------|------------------------|-------------------------|--------------------------------------| +| Arraylist\ tasks | add(Task task) | Task is already in list | False | +| | | Task is not in the list | True | +| | viewTask() | | Display the list | +| | viewCompletedTasks() | | Display the completed tasks | +| | viewIncompletedTasks() | | Display the incompleted tasks | +| | search(Task task) | Task does not exist | Print it was not found | +| | | Task exist | Print it was found | +| | removeTask(Task task) | Task does not exist | Print it was not found | +| | | Task does exist | Task removed | +| | viewAlphabeticAsc() | | Display list alphabetical ascending | +| | viewAplhabeticDesc() | | Display list alphabetical descending | # Task diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index c6c2bbe9b..cc8abc220 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -38,4 +38,12 @@ public ArrayList viewCompleteTasks() { return result; } + public Task search(Task task) { + if(tasks.contains(task)) { + return task; + } + System.out.println("The task was not found!"); + return null; + } + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 01e78cb7e..2b8807804 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -58,4 +58,28 @@ public void checkViewAllCompleteTasks() { Assertions.assertNotEquals(empty, todoList.viewCompleteTasks()); } + + @Test + public void searchForTask() { + TodoList todoList = new TodoList(); + + Task task = new Task("Take out the garbage"); + Assertions.assertNotEquals(task, todoList.search(task)); + + todoList.add(task); + + Assertions.assertEquals(task, todoList.search(task)); + } + + @Test + public void removeTaskFromTodoList() { + TodoList todoList = new TodoList(); + ArrayList empty = new ArrayList<>(); + + Task task = new Task("Take out the garbage"); + todoList.add(task); + todoList.remove(task); + + Assertions.assertEquals(empty, todoList); + } } From 3d58b9b56e67d41ab6e83440239c3fa620ed311e Mon Sep 17 00:00:00 2001 From: Thomas Kristiansen Date: Thu, 9 Jan 2025 15:16:11 +0100 Subject: [PATCH 07/12] Test and method for remove task --- .../java/com/booleanuk/core/TodoList.java | 5 +++++ .../java/com/booleanuk/core/TodoListTest.java | 20 +++++++++---------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index cc8abc220..22dc74bc5 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -46,4 +46,9 @@ public Task search(Task task) { return null; } + public void remove (Task task) { + if(tasks.contains(task)) { + tasks.remove(task); + } + } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 2b8807804..6d2474bb1 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -32,31 +32,27 @@ public void viewAllTasks() { @Test public void checkViewAllIncompleteTasks() { TodoList todoList = new TodoList(); - ArrayList empty = new ArrayList<>(); - Assertions.assertIterableEquals(empty, todoList.viewIncompleteTasks()); Task task = new Task("Take out the garbage"); Task taskComplete = new Task("Take out the garbage"); taskComplete.complete = true; todoList.add(taskComplete); - empty.add(task); + todoList.add(task); - Assertions.assertNotEquals(empty, todoList.viewIncompleteTasks()); + Assertions.assertNotEquals(todoList.viewTasks(), todoList.viewIncompleteTasks()); } @Test public void checkViewAllCompleteTasks() { TodoList todoList = new TodoList(); - ArrayList empty = new ArrayList<>(); - Assertions.assertIterableEquals(empty, todoList.viewCompleteTasks()); Task task = new Task("Take out the garbage"); Task taskComplete = new Task("Take out the garbage"); taskComplete.complete = true; + todoList.add(task); todoList.add(taskComplete); - empty.add(task); - Assertions.assertNotEquals(empty, todoList.viewCompleteTasks()); + Assertions.assertNotEquals(todoList.viewTasks(), todoList.viewCompleteTasks()); } @Test @@ -74,12 +70,16 @@ public void searchForTask() { @Test public void removeTaskFromTodoList() { TodoList todoList = new TodoList(); - ArrayList empty = new ArrayList<>(); + + int numOfTasks = todoList.tasks.size(); Task task = new Task("Take out the garbage"); todoList.add(task); + + Assertions.assertNotEquals(numOfTasks, todoList.tasks.size()); + todoList.remove(task); - Assertions.assertEquals(empty, todoList); + Assertions.assertEquals(numOfTasks, todoList.tasks.size()); } } From 504b8b155f65ba499909ab621e98b6e3b82cb931 Mon Sep 17 00:00:00 2001 From: Thomas Kristiansen Date: Thu, 9 Jan 2025 15:38:42 +0100 Subject: [PATCH 08/12] Test and method for alphabetical asc --- src/main/java/com/booleanuk/core/TodoList.java | 9 +++++++++ .../java/com/booleanuk/core/TodoListTest.java | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 22dc74bc5..21b75a4b2 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -51,4 +51,13 @@ public void remove (Task task) { tasks.remove(task); } } + + public ArrayList viewAlphabeticalAsc() { + ArrayList result = new ArrayList<>(); + for (int i = 0; i < tasks.size(); i++) { + result.add(tasks.get(i).name); + } + result.sort(null); + return result; + } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 6d2474bb1..7d9be3a3e 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -82,4 +82,22 @@ public void removeTaskFromTodoList() { Assertions.assertEquals(numOfTasks, todoList.tasks.size()); } + + @Test + public void viewTasksAlphabeticallyAsc() { + TodoList todoList = new TodoList(); + + Task task = new Task("A"); + Task task2 = new Task("Z"); + Task task3 = new Task("C"); + + todoList.add(task); + todoList.add(task2); + todoList.add(task3); + + + + Assertions.assertNotEquals(todoList.viewTasks(), todoList.viewAlphabeticalAsc()); + } + } From 8070e3e789b62f9dba2c76f6aac69c2b1a97124d Mon Sep 17 00:00:00 2001 From: Thomas Kristiansen Date: Thu, 9 Jan 2025 15:47:44 +0100 Subject: [PATCH 09/12] Test for alphabetical desc --- .../java/com/booleanuk/core/TodoList.java | 11 ++++++++++ .../java/com/booleanuk/core/TodoListTest.java | 20 +++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 21b75a4b2..da03094b9 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -1,6 +1,8 @@ package com.booleanuk.core; import java.util.ArrayList; +import java.util.Collection; +import java.util.Comparator; public class TodoList { ArrayList tasks = new ArrayList<>(); @@ -60,4 +62,13 @@ public ArrayList viewAlphabeticalAsc() { result.sort(null); return result; } + + public ArrayList viewAlphabeticalDesc() { + ArrayList result = new ArrayList<>(); + for (int i = 0; i < tasks.size(); i++) { + result.add(tasks.get(i).name); + } + result.sort(Comparator.reverseOrder()); + return result; + } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 7d9be3a3e..57d2518af 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.Comparator; class TodoListTest { @@ -86,18 +87,33 @@ public void removeTaskFromTodoList() { @Test public void viewTasksAlphabeticallyAsc() { TodoList todoList = new TodoList(); + ArrayList testTaskList = new ArrayList<>(); + ArrayList alphabeticalAsc = new ArrayList<>(); Task task = new Task("A"); Task task2 = new Task("Z"); - Task task3 = new Task("C"); + Task task3 = new Task("D"); todoList.add(task); todoList.add(task2); todoList.add(task3); + testTaskList.add(task); + testTaskList.add(task2); + testTaskList.add(task3); + for(int i = 0; i < testTaskList.size(); i++) { + alphabeticalAsc.add(testTaskList.get(i).name); + } - Assertions.assertNotEquals(todoList.viewTasks(), todoList.viewAlphabeticalAsc()); + alphabeticalAsc.sort(null); + + Assertions.assertEquals(alphabeticalAsc, todoList.viewAlphabeticalAsc()); + } + + @Test + public void viewTasksAlphabeticallyDesc() { + } } From e5e576c4c5ded33280bdc7f9432f0eb6c8369fc0 Mon Sep 17 00:00:00 2001 From: Thomas Kristiansen Date: Thu, 9 Jan 2025 15:56:25 +0100 Subject: [PATCH 10/12] Implemented method for alphabetical desc --- .../java/com/booleanuk/core/TodoListTest.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 57d2518af..f17a9a3fd 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -113,7 +113,29 @@ public void viewTasksAlphabeticallyAsc() { @Test public void viewTasksAlphabeticallyDesc() { - + TodoList todoList = new TodoList(); + ArrayList testTaskList = new ArrayList<>(); + ArrayList alphabeticalAsc = new ArrayList<>(); + + Task task = new Task("A"); + Task task2 = new Task("Z"); + Task task3 = new Task("D"); + + todoList.add(task); + todoList.add(task2); + todoList.add(task3); + + testTaskList.add(task); + testTaskList.add(task2); + testTaskList.add(task3); + + for(int i = 0; i < testTaskList.size(); i++) { + alphabeticalAsc.add(testTaskList.get(i).name); + } + + alphabeticalAsc.sort(Comparator.reverseOrder()); + + Assertions.assertEquals(alphabeticalAsc, todoList.viewAlphabeticalDesc()); } } From ca61490a1641a4dc2217d874106543a507ccac60 Mon Sep 17 00:00:00 2001 From: Thomas Kristiansen Date: Thu, 16 Jan 2025 13:11:09 +0100 Subject: [PATCH 11/12] Implemented extensions and test for extensions --- .../booleanuk/extension/TaskExtension.java | 42 +++++++++++++++ .../extension/TodoListExtensions.java | 44 +++++++++++++++ .../extension/TodoListExtensionTest.java | 54 +++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 src/main/java/com/booleanuk/extension/TaskExtension.java create mode 100644 src/main/java/com/booleanuk/extension/TodoListExtensions.java create mode 100644 src/test/java/com/booleanuk/extension/TodoListExtensionTest.java diff --git a/src/main/java/com/booleanuk/extension/TaskExtension.java b/src/main/java/com/booleanuk/extension/TaskExtension.java new file mode 100644 index 000000000..1b771a57f --- /dev/null +++ b/src/main/java/com/booleanuk/extension/TaskExtension.java @@ -0,0 +1,42 @@ +package com.booleanuk.extension; + +import java.time.format.DateTimeFormatter; +import java.util.UUID; + +public class TaskExtension { + private String name; + private boolean complete; + private String id; + private String date; + + public TaskExtension(String name) { + this.name = name; + this.complete = false; + this.id = UUID.randomUUID().toString(); + this.date = java.time.ZonedDateTime.now().format(DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm")); + } + + public String getName() { + return name; + } + + public boolean isComplete() { + return complete; + } + + public String getId() { + return id; + } + + public String getDate() { + return date; + } + + public void changeStatus(boolean status) { + complete = status; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/src/main/java/com/booleanuk/extension/TodoListExtensions.java b/src/main/java/com/booleanuk/extension/TodoListExtensions.java new file mode 100644 index 000000000..32e97e7b4 --- /dev/null +++ b/src/main/java/com/booleanuk/extension/TodoListExtensions.java @@ -0,0 +1,44 @@ +package com.booleanuk.extension; + +import java.util.HashMap; + +public class TodoListExtensions { + private HashMap todoList; + + public TodoListExtensions() { + this.todoList = new HashMap<>(); + } + + public HashMap getTodoList() { + return todoList; + } + + public String add(TaskExtension task) { + if(todoList.containsKey(task.getId())) { + return task.getId(); + } else { + todoList.put(task.getId(), task); + return task.getId(); + } + } + + public boolean changeName(String id, String name) { + if (todoList.containsKey(id)) { + todoList.get(id).setName(name); + return true; + } else { + System.out.println("Task is not in the todo list!"); + return false; + } + } + + public boolean changeStatus(String id, boolean status) { + if (todoList.containsKey(id)) { + todoList.get(id).changeStatus(status); + return true; + } else { + System.out.println("Task is not in the todo list!"); + return false; + } + } +} 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..419cc1749 --- /dev/null +++ b/src/test/java/com/booleanuk/extension/TodoListExtensionTest.java @@ -0,0 +1,54 @@ +package com.booleanuk.extension; + +import com.booleanuk.core.Task; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.time.format.DateTimeFormatter; + +public class TodoListExtensionTest { + + @Test + public void addingTask() { + TodoListExtensions todoList = new TodoListExtensions(); + TaskExtension task = new TaskExtension("Take out the garbage"); + + todoList.add(task); + + Assertions.assertEquals(task, todoList.getTodoList().get(task.getId())); + } + + @Test + public void changingNameOfTask() { + TodoListExtensions todoList = new TodoListExtensions(); + TaskExtension task = new TaskExtension("Take out the garbage"); + + todoList.add(task); + todoList.changeName(task.getId(), "Go grocery shopping"); + + Assertions.assertEquals("Go grocery shopping", task.getName()); + } + + @Test + public void changingStatusOfTask() { + TodoListExtensions todoList = new TodoListExtensions(); + TaskExtension task = new TaskExtension("Take out the garbage"); + + todoList.add(task); + todoList.changeStatus(task.getId(), true); + + Assertions.assertTrue(task.isComplete()); + } + + @Test + public void getDateOfTasks() { + TodoListExtensions todoList = new TodoListExtensions(); + TaskExtension task = new TaskExtension("Take out the garbage"); + String dateAtm = java.time.ZonedDateTime.now().format(DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm")); + + todoList.add(task); + String date = task.getDate(); + + Assertions.assertEquals(dateAtm, date); + } +} From 9d798bf3a25d1d59a52af54579232118a8ba5f5d Mon Sep 17 00:00:00 2001 From: Thomas Kristiansen Date: Thu, 16 Jan 2025 13:20:46 +0100 Subject: [PATCH 12/12] Changed variables to private --- src/main/java/com/booleanuk/core/Task.java | 16 ++++++++++++++-- src/main/java/com/booleanuk/core/TodoList.java | 10 +++++----- src/test/java/com/booleanuk/core/TaskTest.java | 4 ++-- .../java/com/booleanuk/core/TodoListTest.java | 14 +++++++------- 4 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/booleanuk/core/Task.java b/src/main/java/com/booleanuk/core/Task.java index 603efce11..21af15dd7 100644 --- a/src/main/java/com/booleanuk/core/Task.java +++ b/src/main/java/com/booleanuk/core/Task.java @@ -1,14 +1,26 @@ package com.booleanuk.core; public class Task { - public String name; - public boolean complete; + private String name; + private boolean complete; public Task(String name) { this.name = name; this.complete = false; } + public boolean isComplete() { + return complete; + } + + public void setComplete(boolean complete) { + this.complete = complete; + } + + public String getName() { + return name; + } + public void changeStatus(boolean status) { complete = status; } diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index da03094b9..ee7610eab 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -5,7 +5,7 @@ import java.util.Comparator; public class TodoList { - ArrayList tasks = new ArrayList<>(); + private ArrayList tasks = new ArrayList<>(); public boolean add(Task task) { if(tasks.contains(task)) { @@ -23,7 +23,7 @@ public ArrayList viewTasks() { public ArrayList viewIncompleteTasks() { ArrayList result = new ArrayList<>(); for (int i = 0; i < tasks.size(); i++) { - if(!tasks.get(i).complete) { + if(!tasks.get(i).isComplete()) { result.add(tasks.get(i)); } } @@ -33,7 +33,7 @@ public ArrayList viewIncompleteTasks() { public ArrayList viewCompleteTasks() { ArrayList result = new ArrayList<>(); for (int i = 0; i < tasks.size(); i++) { - if(tasks.get(i).complete) { + if(tasks.get(i).isComplete()) { result.add(tasks.get(i)); } } @@ -57,7 +57,7 @@ public void remove (Task task) { public ArrayList viewAlphabeticalAsc() { ArrayList result = new ArrayList<>(); for (int i = 0; i < tasks.size(); i++) { - result.add(tasks.get(i).name); + result.add(tasks.get(i).getName()); } result.sort(null); return result; @@ -66,7 +66,7 @@ public ArrayList viewAlphabeticalAsc() { public ArrayList viewAlphabeticalDesc() { ArrayList result = new ArrayList<>(); for (int i = 0; i < tasks.size(); i++) { - result.add(tasks.get(i).name); + result.add(tasks.get(i).getName()); } result.sort(Comparator.reverseOrder()); return result; diff --git a/src/test/java/com/booleanuk/core/TaskTest.java b/src/test/java/com/booleanuk/core/TaskTest.java index 87f8846c3..7310005f3 100644 --- a/src/test/java/com/booleanuk/core/TaskTest.java +++ b/src/test/java/com/booleanuk/core/TaskTest.java @@ -9,9 +9,9 @@ public class TaskTest { public void statusChanged() { Task task = new Task("Take out the garbage"); task.changeStatus(true); - Assertions.assertTrue(task.complete); + Assertions.assertTrue(task.isComplete()); task.changeStatus(false); - Assertions.assertFalse(task.complete); + Assertions.assertFalse(task.isComplete()); } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index f17a9a3fd..74e48bfd9 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -36,7 +36,7 @@ public void checkViewAllIncompleteTasks() { Task task = new Task("Take out the garbage"); Task taskComplete = new Task("Take out the garbage"); - taskComplete.complete = true; + taskComplete.setComplete(true); todoList.add(taskComplete); todoList.add(task); @@ -49,7 +49,7 @@ public void checkViewAllCompleteTasks() { Task task = new Task("Take out the garbage"); Task taskComplete = new Task("Take out the garbage"); - taskComplete.complete = true; + taskComplete.setComplete(true); todoList.add(task); todoList.add(taskComplete); @@ -72,16 +72,16 @@ public void searchForTask() { public void removeTaskFromTodoList() { TodoList todoList = new TodoList(); - int numOfTasks = todoList.tasks.size(); + int numOfTasks = todoList.viewTasks().size(); Task task = new Task("Take out the garbage"); todoList.add(task); - Assertions.assertNotEquals(numOfTasks, todoList.tasks.size()); + Assertions.assertNotEquals(numOfTasks, todoList.viewTasks().size()); todoList.remove(task); - Assertions.assertEquals(numOfTasks, todoList.tasks.size()); + Assertions.assertEquals(numOfTasks, todoList.viewTasks().size()); } @Test @@ -103,7 +103,7 @@ public void viewTasksAlphabeticallyAsc() { testTaskList.add(task3); for(int i = 0; i < testTaskList.size(); i++) { - alphabeticalAsc.add(testTaskList.get(i).name); + alphabeticalAsc.add(testTaskList.get(i).getName()); } alphabeticalAsc.sort(null); @@ -130,7 +130,7 @@ public void viewTasksAlphabeticallyDesc() { testTaskList.add(task3); for(int i = 0; i < testTaskList.size(); i++) { - alphabeticalAsc.add(testTaskList.get(i).name); + alphabeticalAsc.add(testTaskList.get(i).getName()); } alphabeticalAsc.sort(Comparator.reverseOrder());