From 6c4cc375e7dd3d8e6aaaa8efc5da57c4167427a5 Mon Sep 17 00:00:00 2001 From: Connor Stokes Date: Thu, 15 Aug 2024 10:29:25 +0100 Subject: [PATCH 01/14] Domain model built and testAddTask() built and failed --- .../java/com/booleanuk/core/domain-model.md | 21 +++++++++++++++++++ .../java/com/booleanuk/core/TodoListTest.java | 9 ++++---- 2 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/booleanuk/core/domain-model.md diff --git a/src/main/java/com/booleanuk/core/domain-model.md b/src/main/java/com/booleanuk/core/domain-model.md new file mode 100644 index 000000000..e0ddde7e3 --- /dev/null +++ b/src/main/java/com/booleanuk/core/domain-model.md @@ -0,0 +1,21 @@ +| Class | Method | Scenario | Output | +|----------|-----------------------------------------------------------------|----------|----------------------------------------------------------------------------------------| +| ToDoList | addTask(String taskName, String taskDesc ) | | | +| ToDoList | openList(String listName) | | List shown in console | +| Task | changeStatus(String task) | | | +| ToDoList | filterCriteria(String criteriaStatus) | | List shown, filtered by criteria | +| ToDoList | searchTask(String task) | | Task returned or not found message | +| ToDoList | deleteTask(String task) | | List shown without deleted task | +| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | +| | | | | + + + + +| Class | Variable | +|----------|-------------------| +| ToDoList | Listtasks; | +| Task | String taskName | +| Task | String taskDesc | +| Task | String taskStatus | +| Task | String taskId | diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 0bef779a4..c2a60db9e 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -5,9 +5,10 @@ class TodoListTest { @Test - public void exampleTest() { - String hello = "Hello"; - Assertions.assertEquals("Hello", hello); - Assertions.assertNotEquals("Goodbye", hello); + public void testAddTask() { + TodoList toDoList = new TodoList(); + toDoList.addTask("Make coffee", "Put nescafe in cup, follow with milk, sugar and hot water."); + Assertions.assertEquals(toDoList.toDoList.get[0], taskName="Make coffee", taskDesc = "Put nescafe in cup, follow with milk, sugar and hot water."); + } } From ecd6ec64803d1910099b0b05d7490fbb0555a78e Mon Sep 17 00:00:00 2001 From: Connor Stokes Date: Thu, 15 Aug 2024 11:54:51 +0100 Subject: [PATCH 02/14] Task class built, addTask built in ToDoList, tests for addTask pass --- src/main/java/com/booleanuk/core/Task.java | 30 +++++++++++++++++++ .../java/com/booleanuk/core/TodoList.java | 9 +++++- .../java/com/booleanuk/core/TodoListTest.java | 7 ++++- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/booleanuk/core/Task.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..f76107ac9 --- /dev/null +++ b/src/main/java/com/booleanuk/core/Task.java @@ -0,0 +1,30 @@ +package com.booleanuk.core; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class Task { + String taskName; + String taskDesc; + String taskStatus; + String taskId; + + public Task(String taskName, String taskDesc){ + LocalDateTime now = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ddMMyyHHmmss"); + String formattedDateTime = now.format(formatter); + this.taskDesc = taskDesc; + this.taskName = taskName; + this.taskStatus = "Open"; + this.taskId = formattedDateTime; + } + @Override + public String toString() { + return "{" + + "taskName='" + taskName + '\'' + + ", taskDesc='" + taskDesc + '\'' + + ", taskStatus='" + taskStatus + '\'' + + ", taskId='" + taskId + '\'' + + '}'; + } + +} diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 675adaf0b..94d014bd7 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -1,5 +1,12 @@ package com.booleanuk.core; -public class TodoList { +import java.util.ArrayList; +import java.util.List; +public class TodoList { + ArrayList tasks = new ArrayList<>(); + public void addTask(String taskName, String taskDesc){ + Task task = new Task(taskName, taskDesc); + tasks.add(task); + } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index c2a60db9e..ef92321ec 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -8,7 +8,12 @@ class TodoListTest { public void testAddTask() { TodoList toDoList = new TodoList(); toDoList.addTask("Make coffee", "Put nescafe in cup, follow with milk, sugar and hot water."); - Assertions.assertEquals(toDoList.toDoList.get[0], taskName="Make coffee", taskDesc = "Put nescafe in cup, follow with milk, sugar and hot water."); + Task task = toDoList.tasks.get(0); + System.out.println(task); + Assertions.assertEquals(task.taskName, "Make coffee"); + Assertions.assertEquals(task.taskDesc, "Put nescafe in cup, follow with milk, sugar and hot water."); + Assertions.assertEquals(task.taskStatus, "Open"); + /* Assertions.assertEquals(toDoList.tasks.get(0), "{taskName=\"Make coffee\", taskDesc = \"Put nescafe in cup, follow with milk, sugar and hot water.\"}");*/ } } From eb26d65353f778d0862fdab742f39a0e664e60e0 Mon Sep 17 00:00:00 2001 From: Connor Stokes Date: Thu, 15 Aug 2024 12:25:27 +0100 Subject: [PATCH 03/14] testPrintList built and failed. Minor changes to domain-model.md --- .../java/com/booleanuk/core/domain-model.md | 20 +++++++++---------- .../java/com/booleanuk/core/TodoListTest.java | 15 +++++++++++++- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/booleanuk/core/domain-model.md b/src/main/java/com/booleanuk/core/domain-model.md index e0ddde7e3..9cd2f7162 100644 --- a/src/main/java/com/booleanuk/core/domain-model.md +++ b/src/main/java/com/booleanuk/core/domain-model.md @@ -1,13 +1,13 @@ -| Class | Method | Scenario | Output | -|----------|-----------------------------------------------------------------|----------|----------------------------------------------------------------------------------------| -| ToDoList | addTask(String taskName, String taskDesc ) | | | -| ToDoList | openList(String listName) | | List shown in console | -| Task | changeStatus(String task) | | | -| ToDoList | filterCriteria(String criteriaStatus) | | List shown, filtered by criteria | -| ToDoList | searchTask(String task) | | Task returned or not found message | -| ToDoList | deleteTask(String task) | | List shown without deleted task | -| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | -| | | | | +| Class | Method | Scenario | Output | +|----------|---------------------------------------------|----------|----------------------------------------------------------------------------------------| +| ToDoList | addTask(String taskName, String taskDesc ) | | | +| ToDoList | printList() | | List shown in console | +| Task | changeStatus(String task) | | | +| ToDoList | filterCriteria(String criteriaStatus) | | List shown, filtered by criteria | +| ToDoList | searchTask(String task) | | Task returned or not found message | +| ToDoList | deleteTask(String task) | | List shown without deleted task | +| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | +| | | | | diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index ef92321ec..a979af80f 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.io.ByteArrayOutputStream; +import java.io.PrintStream; + class TodoListTest { @Test public void testAddTask() { @@ -13,7 +16,17 @@ public void testAddTask() { Assertions.assertEquals(task.taskName, "Make coffee"); Assertions.assertEquals(task.taskDesc, "Put nescafe in cup, follow with milk, sugar and hot water."); Assertions.assertEquals(task.taskStatus, "Open"); - /* Assertions.assertEquals(toDoList.tasks.get(0), "{taskName=\"Make coffee\", taskDesc = \"Put nescafe in cup, follow with milk, sugar and hot water.\"}");*/ + + } + + @Test + public void testPrintList() { + TodoList toDoList = new TodoList(); + toDoList.addTask("1", "One"); + toDoList.addTask("2", "Two"); + toDoList.addTask("3", "Three"); + String list = toDoList.printList(); + Assertions.assertEquals(list, "Name: 1 | Description: One \nName: 2 | Description: Two \nName: 3 | Description: Three "); } } From 8dd0a99eb26948f0ba1e8425289088e99bafcdab Mon Sep 17 00:00:00 2001 From: Connor Stokes Date: Thu, 15 Aug 2024 13:28:14 +0100 Subject: [PATCH 04/14] printList built and working. Passes tests --- src/main/java/com/booleanuk/core/TodoList.java | 16 ++++++++++++++++ .../java/com/booleanuk/core/TodoListTest.java | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 94d014bd7..0439e869e 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -9,4 +9,20 @@ public void addTask(String taskName, String taskDesc){ Task task = new Task(taskName, taskDesc); tasks.add(task); } + public String printList(){ + String tasksString = ""; + if(!tasks.isEmpty()){ + Task task; + for (int i = 0; i Date: Thu, 15 Aug 2024 13:37:06 +0100 Subject: [PATCH 05/14] testSearchTask built and fails --- src/main/java/com/booleanuk/core/domain-model.md | 2 +- src/test/java/com/booleanuk/core/TodoListTest.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/domain-model.md b/src/main/java/com/booleanuk/core/domain-model.md index 9cd2f7162..2e2789fa3 100644 --- a/src/main/java/com/booleanuk/core/domain-model.md +++ b/src/main/java/com/booleanuk/core/domain-model.md @@ -2,7 +2,7 @@ |----------|---------------------------------------------|----------|----------------------------------------------------------------------------------------| | ToDoList | addTask(String taskName, String taskDesc ) | | | | ToDoList | printList() | | List shown in console | -| Task | changeStatus(String task) | | | +| Task | changeStatus(String task, String newStatus) | | | | ToDoList | filterCriteria(String criteriaStatus) | | List shown, filtered by criteria | | ToDoList | searchTask(String task) | | Task returned or not found message | | ToDoList | deleteTask(String task) | | List shown without deleted task | diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 26886448d..7dea4f94b 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -29,4 +29,18 @@ public void testPrintList() { String list = toDoList.printList(); Assertions.assertEquals("Name: 1 | Description: One | Status: Open\nName: 2 | Description: Two | Status: Open\nName: 3 | Description: Three | Status: Open\n",list ); } + + @Test + public void testSearchTask() { + TodoList toDoList = new TodoList(); + toDoList.addTask("1", "One"); + toDoList.addTask("2", "Two"); + toDoList.addTask("3", "Three"); + String task = toDoList.searchTask("1"); + Assertions.assertEquals("Name: 1 | Description: One | Status: Open", task ); + task = toDoList.searchTask("3"); + Assertions.assertEquals("Name: 3 | Description: Three | Status: Open", task ); + task = toDoList.searchTask("4"); + Assertions.assertEquals("This task doesn't exist within this list.", task); + } } From 5989d348afedba9a4e361b8229e771ee08c36318 Mon Sep 17 00:00:00 2001 From: Connor Stokes Date: Thu, 15 Aug 2024 13:51:29 +0100 Subject: [PATCH 06/14] searchTask built and passes tests --- .../java/com/booleanuk/core/TodoList.java | 20 ++++++++++++++++++- 1 file 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 0439e869e..bd30941be 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -18,11 +18,29 @@ public String printList(){ tasksString = tasksString + "Name: " + task.taskName + " | "; tasksString = tasksString + "Description: " + task.taskDesc + " | "; tasksString = tasksString + "Status: " + task.taskStatus + "\n"; - } } else{ tasksString = "There are currently no tasks in your to do list."; } return tasksString; } + + public String searchTask(String taskName){ + boolean taskFound = false; + String returnString = "This task doesn't exist within this list."; + Task task = null; + for (int i = 0; i < tasks.size(); i++) { + task = tasks.get(i); + if(task.taskName.equals(taskName)){ + taskFound = true; + break; + } + } + if(taskFound){ + returnString = "Name: " + task.taskName + " | "; + returnString = returnString + "Description: " + task.taskDesc + " | "; + returnString = returnString + "Status: " + task.taskStatus; + } + return returnString; + } } From 2975680e3241336c2da53ea3ff776088c56c5c7e Mon Sep 17 00:00:00 2001 From: Connor Stokes Date: Thu, 15 Aug 2024 14:09:32 +0100 Subject: [PATCH 07/14] testChangeTaskStatus built and fails --- .../java/com/booleanuk/core/domain-model.md | 20 +++++++++---------- .../java/com/booleanuk/core/TodoListTest.java | 15 ++++++++++++++ 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/booleanuk/core/domain-model.md b/src/main/java/com/booleanuk/core/domain-model.md index 2e2789fa3..8cedd65f6 100644 --- a/src/main/java/com/booleanuk/core/domain-model.md +++ b/src/main/java/com/booleanuk/core/domain-model.md @@ -1,13 +1,13 @@ -| Class | Method | Scenario | Output | -|----------|---------------------------------------------|----------|----------------------------------------------------------------------------------------| -| ToDoList | addTask(String taskName, String taskDesc ) | | | -| ToDoList | printList() | | List shown in console | -| Task | changeStatus(String task, String newStatus) | | | -| ToDoList | filterCriteria(String criteriaStatus) | | List shown, filtered by criteria | -| ToDoList | searchTask(String task) | | Task returned or not found message | -| ToDoList | deleteTask(String task) | | List shown without deleted task | -| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | -| | | | | +| Class | Method | Scenario | Output | +|----------|-----------------------------------------------------|----------|----------------------------------------------------------------------------------------| +| ToDoList | addTask(String taskName, String taskDesc ) | | | +| ToDoList | printList() | | List shown in console | +| Task | changeTaskStatus(String taskName, String newStatus) | | | +| ToDoList | filterCriteria(String criteriaStatus) | | List shown, filtered by criteria | +| ToDoList | searchTask(String taskName) | | Task returned or not found message | +| ToDoList | deleteTask(String task) | | List shown without deleted task | +| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | +| | | | | diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 7dea4f94b..55d14aaa1 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -5,6 +5,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.regex.Matcher; +import java.util.regex.Pattern; class TodoListTest { @Test @@ -43,4 +45,17 @@ public void testSearchTask() { task = toDoList.searchTask("4"); Assertions.assertEquals("This task doesn't exist within this list.", task); } + @Test + public void testChangeTaskStatus() { + TodoList toDoList = new TodoList(); + toDoList.addTask("1", "One"); + toDoList.addTask("2", "Two"); + toDoList.addTask("3", "Three"); + toDoList.changeTaskStatus("1", "Closed"); + String task = toDoList.searchTask("1"); + String regex = "Status:\\s*(.*)"; + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(task); + Assertions.assertEquals("Closed", matcher); + } } From 1f98ff7bb33faed2fa575684cc2f6fd1ed6a0b16 Mon Sep 17 00:00:00 2001 From: Connor Stokes Date: Thu, 15 Aug 2024 15:34:25 +0100 Subject: [PATCH 08/14] changeTaskStatus built and passes. Other code changed for better way of doing things. --- .../java/com/booleanuk/core/TodoList.java | 25 +++++++++-------- .../java/com/booleanuk/core/domain-model.md | 20 +++++++------- .../java/com/booleanuk/core/TodoListTest.java | 27 +++++++++++-------- 3 files changed, 38 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index bd30941be..83da1d3c2 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -1,7 +1,6 @@ package com.booleanuk.core; import java.util.ArrayList; -import java.util.List; public class TodoList { ArrayList tasks = new ArrayList<>(); @@ -25,22 +24,22 @@ public String printList(){ return tasksString; } - public String searchTask(String taskName){ - boolean taskFound = false; - String returnString = "This task doesn't exist within this list."; + public Task searchTask(String taskName){ Task task = null; - for (int i = 0; i < tasks.size(); i++) { - task = tasks.get(i); - if(task.taskName.equals(taskName)){ - taskFound = true; + for(int i = 0; i < tasks.size(); i++) { + if(tasks.get(i).taskName.equals(taskName)){ + task = tasks.get(i); break; } } - if(taskFound){ - returnString = "Name: " + task.taskName + " | "; - returnString = returnString + "Description: " + task.taskDesc + " | "; - returnString = returnString + "Status: " + task.taskStatus; + if(task == null) { + System.out.println("This task doesn't exist within this list."); } - return returnString; + return task; + } + + public void changeTaskStatus(String taskName, String newStatus){ + Task task = this.searchTask(taskName); + task.taskStatus = newStatus; } } diff --git a/src/main/java/com/booleanuk/core/domain-model.md b/src/main/java/com/booleanuk/core/domain-model.md index 8cedd65f6..08fb75ca3 100644 --- a/src/main/java/com/booleanuk/core/domain-model.md +++ b/src/main/java/com/booleanuk/core/domain-model.md @@ -1,13 +1,13 @@ -| Class | Method | Scenario | Output | -|----------|-----------------------------------------------------|----------|----------------------------------------------------------------------------------------| -| ToDoList | addTask(String taskName, String taskDesc ) | | | -| ToDoList | printList() | | List shown in console | -| Task | changeTaskStatus(String taskName, String newStatus) | | | -| ToDoList | filterCriteria(String criteriaStatus) | | List shown, filtered by criteria | -| ToDoList | searchTask(String taskName) | | Task returned or not found message | -| ToDoList | deleteTask(String task) | | List shown without deleted task | -| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | -| | | | | +| Class | Method | Scenario | Output | +|-----------|------------------------------------------------------|----------|----------------------------------------------------------------------------------------| +| ToDoList | addTask(String taskName, String taskDesc ) | | | +| ToDoList | printList() | | List shown in console | +| Task | changeTaskStatus(String taskName, String newStatus) | | | +| ToDoList | filterCriteria(String criteriaStatus) | | List shown, filtered by criteria | +| ToDoList | searchTask(String taskName) | | Task returned or not found message | +| ToDoList | deleteTask(String task) | | List shown without deleted task | +| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | +| ToDoList | taskToString(Task task) | | Task object as string | diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 55d14aaa1..22d10d782 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -29,7 +29,7 @@ public void testPrintList() { toDoList.addTask("2", "Two"); toDoList.addTask("3", "Three"); String list = toDoList.printList(); - Assertions.assertEquals("Name: 1 | Description: One | Status: Open\nName: 2 | Description: Two | Status: Open\nName: 3 | Description: Three | Status: Open\n",list ); + Assertions.assertEquals("Name: 1 | Description: One | Status: Open\nName: 2 | Description: Two | Status: Open\nName: 3 | Description: Three | Status: Open\n", list); } @Test @@ -38,13 +38,21 @@ public void testSearchTask() { toDoList.addTask("1", "One"); toDoList.addTask("2", "Two"); toDoList.addTask("3", "Three"); - String task = toDoList.searchTask("1"); - Assertions.assertEquals("Name: 1 | Description: One | Status: Open", task ); + Task task = toDoList.searchTask("1"); + Task expectedTask = new Task("1","One"); + + Assertions.assertEquals(expectedTask.taskName,task.taskName ); + Assertions.assertEquals(expectedTask.taskDesc,task.taskDesc ); + task = toDoList.searchTask("3"); - Assertions.assertEquals("Name: 3 | Description: Three | Status: Open", task ); - task = toDoList.searchTask("4"); - Assertions.assertEquals("This task doesn't exist within this list.", task); + expectedTask = new Task("3","Three"); + + Assertions.assertEquals(expectedTask.taskName,task.taskName ); + Assertions.assertEquals(expectedTask.taskDesc,task.taskDesc ); + } + + @Test public void testChangeTaskStatus() { TodoList toDoList = new TodoList(); @@ -52,10 +60,7 @@ public void testChangeTaskStatus() { toDoList.addTask("2", "Two"); toDoList.addTask("3", "Three"); toDoList.changeTaskStatus("1", "Closed"); - String task = toDoList.searchTask("1"); - String regex = "Status:\\s*(.*)"; - Pattern pattern = Pattern.compile(regex); - Matcher matcher = pattern.matcher(task); - Assertions.assertEquals("Closed", matcher); + Task searchTask = toDoList.searchTask("1"); + Assertions.assertEquals("Closed", searchTask.taskStatus); } } From 2d2ecd5d8388313d55cc907fe221ec1ec599d2b8 Mon Sep 17 00:00:00 2001 From: Connor Stokes Date: Thu, 15 Aug 2024 15:42:58 +0100 Subject: [PATCH 09/14] testFilterList built and fails. --- src/main/java/com/booleanuk/core/Task.java | 2 +- .../java/com/booleanuk/core/domain-model.md | 20 +++++++++--------- .../java/com/booleanuk/core/TodoListTest.java | 21 +++++++++++++++++-- 3 files changed, 30 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/booleanuk/core/Task.java b/src/main/java/com/booleanuk/core/Task.java index f76107ac9..14081fc9b 100644 --- a/src/main/java/com/booleanuk/core/Task.java +++ b/src/main/java/com/booleanuk/core/Task.java @@ -14,7 +14,7 @@ public Task(String taskName, String taskDesc){ String formattedDateTime = now.format(formatter); this.taskDesc = taskDesc; this.taskName = taskName; - this.taskStatus = "Open"; + this.taskStatus = "Incomplete"; this.taskId = formattedDateTime; } @Override diff --git a/src/main/java/com/booleanuk/core/domain-model.md b/src/main/java/com/booleanuk/core/domain-model.md index 08fb75ca3..180258a43 100644 --- a/src/main/java/com/booleanuk/core/domain-model.md +++ b/src/main/java/com/booleanuk/core/domain-model.md @@ -1,13 +1,13 @@ -| Class | Method | Scenario | Output | -|-----------|------------------------------------------------------|----------|----------------------------------------------------------------------------------------| -| ToDoList | addTask(String taskName, String taskDesc ) | | | -| ToDoList | printList() | | List shown in console | -| Task | changeTaskStatus(String taskName, String newStatus) | | | -| ToDoList | filterCriteria(String criteriaStatus) | | List shown, filtered by criteria | -| ToDoList | searchTask(String taskName) | | Task returned or not found message | -| ToDoList | deleteTask(String task) | | List shown without deleted task | -| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | -| ToDoList | taskToString(Task task) | | Task object as string | +| Class | Method | Scenario | Output | +|-----------|-----------------------------------------------------|----------|----------------------------------------------------------------------------------------| +| ToDoList | addTask(String taskName, String taskDesc ) | | | +| ToDoList | printList() | | List shown in console | +| Task | changeTaskStatus(String taskName, String newStatus) | | | +| ToDoList | filterList(String criteriaStatus) | | List shown, filtered by criteria | +| ToDoList | searchTask(String taskName) | | Task returned or not found message | +| ToDoList | deleteTask(String task) | | List shown without deleted task | +| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | +| ToDoList | taskToString(Task task) | | Task object as string | diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 22d10d782..cacbf3c44 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -59,8 +59,25 @@ public void testChangeTaskStatus() { toDoList.addTask("1", "One"); toDoList.addTask("2", "Two"); toDoList.addTask("3", "Three"); - toDoList.changeTaskStatus("1", "Closed"); + toDoList.changeTaskStatus("1", "Complete"); Task searchTask = toDoList.searchTask("1"); - Assertions.assertEquals("Closed", searchTask.taskStatus); + Assertions.assertEquals("Complete", searchTask.taskStatus); + } + @Test + public void testFilterList(){ + TodoList toDoList = new TodoList(); + toDoList.addTask("1", "One"); + toDoList.addTask("2", "Two"); + toDoList.addTask("3", "Three"); + toDoList.changeTaskStatus("1", "Complete"); + toDoList.changeTaskStatus("3", "Complete"); + TodoList filteredList = toDoList.filterList("Complete"); + Task searchTask = filteredList.searchTask("1"); + Assertions.assertEquals("Complete", searchTask.taskStatus); + searchTask = filteredList.searchTask("3"); + Assertions.assertEquals("Complete", searchTask.taskStatus); + searchTask = filteredList.searchTask("2"); + Assertions.assertEquals(null, searchTask); + } } From 2c9d82f154fa3b2cdca9e542c716b800188ec53c Mon Sep 17 00:00:00 2001 From: Connor Stokes Date: Thu, 15 Aug 2024 16:14:31 +0100 Subject: [PATCH 10/14] FilterList built and passes tests --- .../java/com/booleanuk/core/TodoList.java | 13 ++++++++++++ .../java/com/booleanuk/core/domain-model.md | 20 +++++++++---------- .../java/com/booleanuk/core/TodoListTest.java | 17 ++++++++-------- 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 83da1d3c2..27f0bbff4 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -42,4 +42,17 @@ public void changeTaskStatus(String taskName, String newStatus){ Task task = this.searchTask(taskName); task.taskStatus = newStatus; } + + public ArrayList filterList(String criteriaStatus, ArrayList tasks){ + ArrayList filteredTasks = new ArrayList<>();; + Task task = null; + for (int i = 0; i < tasks.size(); i++) { + task = tasks.get(i); + if(task.taskStatus.equals(criteriaStatus)){ + filteredTasks.add(task); + } + } + System.out.println(filteredTasks); + return filteredTasks; + } } diff --git a/src/main/java/com/booleanuk/core/domain-model.md b/src/main/java/com/booleanuk/core/domain-model.md index 180258a43..5816b269b 100644 --- a/src/main/java/com/booleanuk/core/domain-model.md +++ b/src/main/java/com/booleanuk/core/domain-model.md @@ -1,13 +1,13 @@ -| Class | Method | Scenario | Output | -|-----------|-----------------------------------------------------|----------|----------------------------------------------------------------------------------------| -| ToDoList | addTask(String taskName, String taskDesc ) | | | -| ToDoList | printList() | | List shown in console | -| Task | changeTaskStatus(String taskName, String newStatus) | | | -| ToDoList | filterList(String criteriaStatus) | | List shown, filtered by criteria | -| ToDoList | searchTask(String taskName) | | Task returned or not found message | -| ToDoList | deleteTask(String task) | | List shown without deleted task | -| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | -| ToDoList | taskToString(Task task) | | Task object as string | +| Class | Method | Scenario | Output | +|-----------|----------------------------------------------------------|----------|----------------------------------------------------------------------------------------| +| ToDoList | addTask(String taskName, String taskDesc ) | | | +| ToDoList | printList() | | List shown in console | +| Task | changeTaskStatus(String taskName, String newStatus) | | | +| ToDoList | filterList(String criteriaStatus, ArrayList tasks) | | List shown, filtered by criteria | +| ToDoList | searchTask(String taskName) | | Task returned or not found message | +| ToDoList | deleteTask(String task) | | List shown without deleted task | +| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | +| ToDoList | taskToString(Task task) | | Task object as string | diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index cacbf3c44..cd7e74314 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -5,6 +5,7 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -71,13 +72,13 @@ public void testFilterList(){ toDoList.addTask("3", "Three"); toDoList.changeTaskStatus("1", "Complete"); toDoList.changeTaskStatus("3", "Complete"); - TodoList filteredList = toDoList.filterList("Complete"); - Task searchTask = filteredList.searchTask("1"); - Assertions.assertEquals("Complete", searchTask.taskStatus); - searchTask = filteredList.searchTask("3"); - Assertions.assertEquals("Complete", searchTask.taskStatus); - searchTask = filteredList.searchTask("2"); - Assertions.assertEquals(null, searchTask); - + ArrayList filteredList = toDoList.filterList("Complete", toDoList.tasks); + Assertions.assertEquals("Complete", filteredList.get(0).taskStatus); + Assertions.assertEquals("Complete", filteredList.get(1).taskStatus); + Assertions.assertEquals(2, filteredList.size()); + ArrayList filteredList2 = toDoList.filterList("Incomplete", toDoList.tasks); + Assertions.assertEquals("Incomplete", filteredList2.get(0).taskStatus); } + + } From c075e4b5db40187ea7e7ce9f13b9762ffac946cd Mon Sep 17 00:00:00 2001 From: Connor Stokes Date: Thu, 15 Aug 2024 16:20:31 +0100 Subject: [PATCH 11/14] testDeleteTask built and failed --- .../java/com/booleanuk/core/domain-model.md | 20 +++++++++---------- .../java/com/booleanuk/core/TodoListTest.java | 11 ++++++++++ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/booleanuk/core/domain-model.md b/src/main/java/com/booleanuk/core/domain-model.md index 5816b269b..7f8961366 100644 --- a/src/main/java/com/booleanuk/core/domain-model.md +++ b/src/main/java/com/booleanuk/core/domain-model.md @@ -1,13 +1,13 @@ -| Class | Method | Scenario | Output | -|-----------|----------------------------------------------------------|----------|----------------------------------------------------------------------------------------| -| ToDoList | addTask(String taskName, String taskDesc ) | | | -| ToDoList | printList() | | List shown in console | -| Task | changeTaskStatus(String taskName, String newStatus) | | | -| ToDoList | filterList(String criteriaStatus, ArrayList tasks) | | List shown, filtered by criteria | -| ToDoList | searchTask(String taskName) | | Task returned or not found message | -| ToDoList | deleteTask(String task) | | List shown without deleted task | -| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | -| ToDoList | taskToString(Task task) | | Task object as string | +| Class | Method | Scenario | Output | +|-----------|-----------------------------------------------------------|----------|----------------------------------------------------------------------------------------| +| ToDoList | addTask(String taskName, String taskDesc ) | | | +| ToDoList | printList() | | List shown in console | +| Task | changeTaskStatus(String taskName, String newStatus) | | | +| ToDoList | filterList(String criteriaStatus, ArrayList tasks) | | List shown, filtered by criteria | +| ToDoList | searchTask(String taskName) | | Task returned or not found message | +| ToDoList | deleteTask(String taskName) | | List shown without deleted task | +| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | +| ToDoList | taskToString(Task task) | | Task object as string | diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index cd7e74314..229d0416d 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -80,5 +80,16 @@ public void testFilterList(){ Assertions.assertEquals("Incomplete", filteredList2.get(0).taskStatus); } + @Test + public void testDeleteTask(){ + TodoList toDoList = new TodoList(); + toDoList.addTask("1", "One"); + toDoList.addTask("2", "Two"); + toDoList.addTask("3", "Three"); + toDoList.deleteTask("2"); + Assertions.assertEquals(null, toDoList.searchTask("2")); + Task expectedTask = new Task("1","One"); + Assertions.assertEquals(expectedTask, toDoList.searchTask("1")); + } } From b6e3e62c4b356a388c8368432d187597410e52d6 Mon Sep 17 00:00:00 2001 From: Connor Stokes Date: Thu, 15 Aug 2024 16:35:06 +0100 Subject: [PATCH 12/14] deleteTask built and passes tests --- src/main/java/com/booleanuk/core/TodoList.java | 5 +++++ src/test/java/com/booleanuk/core/TodoListTest.java | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 27f0bbff4..9372fb0ba 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -55,4 +55,9 @@ public ArrayList filterList(String criteriaStatus, ArrayList tasks) System.out.println(filteredTasks); return filteredTasks; } + + public void deleteTask(String taskName){ + Task taskToDelete = this.searchTask(taskName); + tasks.remove(tasks.indexOf(taskToDelete)); + } } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 229d0416d..1990acd30 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -89,7 +89,9 @@ public void testDeleteTask(){ toDoList.deleteTask("2"); Assertions.assertEquals(null, toDoList.searchTask("2")); Task expectedTask = new Task("1","One"); - Assertions.assertEquals(expectedTask, toDoList.searchTask("1")); + Assertions.assertEquals(expectedTask.taskName, toDoList.searchTask("1").taskName); } + + } From d429aea041689a480bf9e3b3e677991632431b8b Mon Sep 17 00:00:00 2001 From: Connor Stokes Date: Thu, 15 Aug 2024 16:42:46 +0100 Subject: [PATCH 13/14] Built the two sorting functions for ascending and descending and they pass the test --- .../java/com/booleanuk/core/TodoList.java | 46 +++++++++++++------ .../java/com/booleanuk/core/domain-model.md | 21 +++++---- .../java/com/booleanuk/core/TodoListTest.java | 25 +++++++++- 3 files changed, 66 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 9372fb0ba..c5e933128 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -1,54 +1,60 @@ package com.booleanuk.core; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; + public class TodoList { ArrayList tasks = new ArrayList<>(); - public void addTask(String taskName, String taskDesc){ + + public void addTask(String taskName, String taskDesc) { Task task = new Task(taskName, taskDesc); tasks.add(task); } - public String printList(){ + + public String printList() { String tasksString = ""; - if(!tasks.isEmpty()){ + if (!tasks.isEmpty()) { Task task; - for (int i = 0; i filterList(String criteriaStatus, ArrayList tasks){ - ArrayList filteredTasks = new ArrayList<>();; + public ArrayList filterList(String criteriaStatus, ArrayList tasks) { + ArrayList filteredTasks = new ArrayList<>(); + ; Task task = null; for (int i = 0; i < tasks.size(); i++) { task = tasks.get(i); - if(task.taskStatus.equals(criteriaStatus)){ + if (task.taskStatus.equals(criteriaStatus)) { filteredTasks.add(task); } } @@ -56,8 +62,18 @@ public ArrayList filterList(String criteriaStatus, ArrayList tasks) return filteredTasks; } - public void deleteTask(String taskName){ + public void deleteTask(String taskName) { Task taskToDelete = this.searchTask(taskName); tasks.remove(tasks.indexOf(taskToDelete)); } + + public void sortListAscending() { + Collections.sort(tasks, (t1, t2) -> t1.taskName.compareTo(t2.taskName)); + + } + public void sortListDescending() { + Collections.sort(tasks, Comparator.comparing(task -> task.taskName, Comparator.reverseOrder())); + + } + } diff --git a/src/main/java/com/booleanuk/core/domain-model.md b/src/main/java/com/booleanuk/core/domain-model.md index 7f8961366..c8feacdad 100644 --- a/src/main/java/com/booleanuk/core/domain-model.md +++ b/src/main/java/com/booleanuk/core/domain-model.md @@ -1,13 +1,14 @@ -| Class | Method | Scenario | Output | -|-----------|-----------------------------------------------------------|----------|----------------------------------------------------------------------------------------| -| ToDoList | addTask(String taskName, String taskDesc ) | | | -| ToDoList | printList() | | List shown in console | -| Task | changeTaskStatus(String taskName, String newStatus) | | | -| ToDoList | filterList(String criteriaStatus, ArrayList tasks) | | List shown, filtered by criteria | -| ToDoList | searchTask(String taskName) | | Task returned or not found message | -| ToDoList | deleteTask(String taskName) | | List shown without deleted task | -| ToDoList | orderAlphabet(String ascDescOrDefault) | | List shown ordered by criteria or message returned giving the three options of sorting | -| ToDoList | taskToString(Task task) | | Task object as string | +| Class | Method | Output | +|------------|----------------------------------------------------------|----------------------------------------------------------------------------------------| +| ToDoList | addTask(String taskName, String taskDesc ) | | +| ToDoList | printList() | List shown in console | +| Task | changeTaskStatus(String taskName, String newStatus) | | +| ToDoList | filterList(String criteriaStatus, ArrayList tasks) | List shown, filtered by criteria | +| ToDoList | searchTask(String taskName) | Task returned or not found message | +| ToDoList | deleteTask(String taskName) | List shown without deleted task | +| ToDoList | sortListAscending() | | +| ToDoList | sortListDescending() | | +| ToDoList | taskToString(Task task) | Task object as string | diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 1990acd30..5a368187c 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -29,8 +29,10 @@ public void testPrintList() { toDoList.addTask("1", "One"); toDoList.addTask("2", "Two"); toDoList.addTask("3", "Three"); + System.out.println(toDoList.toString()); String list = toDoList.printList(); - Assertions.assertEquals("Name: 1 | Description: One | Status: Open\nName: 2 | Description: Two | Status: Open\nName: 3 | Description: Three | Status: Open\n", list); + Assertions.assertEquals("Name: 1 | Description: One | Status: Incomplete\nName: 2 | Description: Two | Status: Incomplete\nName: 3 | Description: Three | Status: Incomplete\n", list); + System.out.println(list); } @Test @@ -92,6 +94,27 @@ public void testDeleteTask(){ Assertions.assertEquals(expectedTask.taskName, toDoList.searchTask("1").taskName); } + @Test + public void testSortList(){ + TodoList toDoList = new TodoList(); + toDoList.addTask("A", "One"); + toDoList.addTask("B", "Two"); + toDoList.addTask("C", "Three"); + TodoList expectedSortedList = new TodoList(); + expectedSortedList.addTask("C", "Three"); + expectedSortedList.addTask("B", "Two"); + expectedSortedList.addTask("A", "One"); + toDoList.sortListDescending(); + Assertions.assertEquals(expectedSortedList.tasks.get(0).taskName, toDoList.tasks.get(0).taskName); + Assertions.assertEquals(expectedSortedList.tasks.get(2).taskName, toDoList.tasks.get(2).taskName); + TodoList expectedSortedListAsc = new TodoList(); + expectedSortedListAsc.addTask("A", "One"); + expectedSortedListAsc.addTask("B", "Two"); + expectedSortedListAsc.addTask("C", "Three"); + toDoList.sortListAscending(); + Assertions.assertEquals(expectedSortedListAsc.tasks.get(0).taskName, toDoList.tasks.get(0).taskName); + Assertions.assertEquals(expectedSortedListAsc.tasks.get(2).taskName, toDoList.tasks.get(2).taskName); + } } From 8380ee881ddc6b1728a92877009a54471cd50915 Mon Sep 17 00:00:00 2001 From: Connor Stokes Date: Fri, 16 Aug 2024 16:38:42 +0100 Subject: [PATCH 14/14] Fixed the tests. --- src/test/java/com/booleanuk/core/TodoListTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 5a368187c..2f1ce31ab 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -18,7 +18,7 @@ public void testAddTask() { System.out.println(task); Assertions.assertEquals(task.taskName, "Make coffee"); Assertions.assertEquals(task.taskDesc, "Put nescafe in cup, follow with milk, sugar and hot water."); - Assertions.assertEquals(task.taskStatus, "Open"); + Assertions.assertEquals(task.taskStatus, "Incomplete"); }