From 2ef2755e15d6f5a1470b509d46b2c720077d345b Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 09:39:15 +0200 Subject: [PATCH 01/35] Test adding to ArrayList() tasks fails --- domain-model.md | 16 ++++++++++++++++ src/main/java/com/booleanuk/core/Task.java | 12 ++++++++++++ .../java/com/booleanuk/core/TodoListTest.java | 9 +++++++++ 3 files changed, 37 insertions(+) create mode 100644 domain-model.md create mode 100644 src/main/java/com/booleanuk/core/Task.java diff --git a/domain-model.md b/domain-model.md new file mode 100644 index 000000000..7c536b242 --- /dev/null +++ b/domain-model.md @@ -0,0 +1,16 @@ +| Classes | Variables | Methods | Scenario | Outcomes | +|------------|-------------------------|--------------------------------------|------------------------------------------------------------------------------------|--------------------------------------------------------------------| +| `TodoList` | `ArrayList tasks` | `Add(Task task)` | I want to add tasks to my todo list. | task is added to tasks and return confirmation print | +| | | `SeeTasks()` | I want to see all the tasks in my todo list. | Return print of elements in task | +| | | `ChangeStatus(String task, boolean)` | Change status of task in tasks | Change completed and return completed | +| | | | Change status of task not in tasks | Print | +| | | `SeeTasksCompleted()` | I want to be able to get only the complete tasks. | Return print of completed elements in task | +| | | `SeeTasksIncomplete()` | I want to be able to get only the incomplete tasks. | Return print of incomplete elements in task | +| | | `Search(String task)` | Search for task in tasks | Return print of status | +| | | | Search for task not in tasks | Return not found print | +| | | `Remove(String task)` | Remove task in tasks | Return confirmation print | +| | | | Remove task not in tasks | Return not found print | +| | | `SeeTasksAscending()` | I want to see all the tasks in my list ordered alphabetically in ascending order. | Return print of elements in task in alphabetically ascending order | +| | | `SeeTasksDescending()` | I want to see all the tasks in my list ordered alphabetically in descending order. | Return print of elements in task in alphabetically descending order | +| `Task` | `String name` | | | | +| | `Boolean completed` | | | | 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..2bd76f2e1 --- /dev/null +++ b/src/main/java/com/booleanuk/core/Task.java @@ -0,0 +1,12 @@ +package com.booleanuk.core; + +public class Task { + + String name; + Boolean completed; + + Task(String name){ + this.name = name; + this.completed = false; + } +} diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 0bef779a4..f1848f8a6 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -10,4 +10,13 @@ public void exampleTest() { Assertions.assertEquals("Hello", hello); Assertions.assertNotEquals("Goodbye", hello); } + + TodoList todoList = new TodoList(); + + @Test + public void testAdd(){ + Task taskOne = new Task("taskOne"); + Assertions.assertEquals("taskOne added.", todoList.add(taskOne)); + //Assertions.assertTrue(todoList.tasks.contains("taskOne")); + } } From 8f3d92b7e36ff58bfbd0e0dd30355986b21dff35 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 09:47:03 +0200 Subject: [PATCH 02/35] Test adding to ArrayList() passes --- domain-model.md | 30 +++++++++---------- src/main/java/com/booleanuk/core/Task.java | 7 +++-- .../java/com/booleanuk/core/TodoList.java | 9 ++++++ 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/domain-model.md b/domain-model.md index 7c536b242..4af2772a3 100644 --- a/domain-model.md +++ b/domain-model.md @@ -1,16 +1,16 @@ -| Classes | Variables | Methods | Scenario | Outcomes | -|------------|-------------------------|--------------------------------------|------------------------------------------------------------------------------------|--------------------------------------------------------------------| -| `TodoList` | `ArrayList tasks` | `Add(Task task)` | I want to add tasks to my todo list. | task is added to tasks and return confirmation print | -| | | `SeeTasks()` | I want to see all the tasks in my todo list. | Return print of elements in task | -| | | `ChangeStatus(String task, boolean)` | Change status of task in tasks | Change completed and return completed | -| | | | Change status of task not in tasks | Print | -| | | `SeeTasksCompleted()` | I want to be able to get only the complete tasks. | Return print of completed elements in task | -| | | `SeeTasksIncomplete()` | I want to be able to get only the incomplete tasks. | Return print of incomplete elements in task | -| | | `Search(String task)` | Search for task in tasks | Return print of status | -| | | | Search for task not in tasks | Return not found print | -| | | `Remove(String task)` | Remove task in tasks | Return confirmation print | -| | | | Remove task not in tasks | Return not found print | -| | | `SeeTasksAscending()` | I want to see all the tasks in my list ordered alphabetically in ascending order. | Return print of elements in task in alphabetically ascending order | +| Classes | Variables | Methods | Scenario | Outcomes | +|------------|-------------------------|--------------------------------------|------------------------------------------------------------------------------------|---------------------------------------------------------------------| +| `TodoList` | `ArrayList tasks` | `Add(Task task)` | I want to add tasks to my todo list. | task is added to tasks and return confirmation print | +| | | `SeeTasks()` | I want to see all the tasks in my todo list. | Return print of elements in task | +| | | `ChangeStatus(String task, boolean)` | Change status of task in tasks | Change completed and return completed | +| | | | Change status of task not in tasks | Print | +| | | `SeeTasksCompleted()` | I want to be able to get only the complete tasks. | Return print of completed elements in task | +| | | `SeeTasksIncomplete()` | I want to be able to get only the incomplete tasks. | Return print of incomplete elements in task | +| | | `Search(String task)` | Search for task in tasks | Return print of status | +| | | | Search for task not in tasks | Return not found print | +| | | `Remove(String task)` | Remove task in tasks | Return confirmation print | +| | | | Remove task not in tasks | Return not found print | +| | | `SeeTasksAscending()` | I want to see all the tasks in my list ordered alphabetically in ascending order. | Return print of elements in task in alphabetically ascending order | | | | `SeeTasksDescending()` | I want to see all the tasks in my list ordered alphabetically in descending order. | Return print of elements in task in alphabetically descending order | -| `Task` | `String name` | | | | -| | `Boolean completed` | | | | +| `Task` | `String name` | | | Return name | +| | `Boolean completed` | | | Return completed | diff --git a/src/main/java/com/booleanuk/core/Task.java b/src/main/java/com/booleanuk/core/Task.java index 2bd76f2e1..67f2cbd28 100644 --- a/src/main/java/com/booleanuk/core/Task.java +++ b/src/main/java/com/booleanuk/core/Task.java @@ -2,11 +2,14 @@ public class Task { - String name; - Boolean completed; + private String name; + private Boolean completed; Task(String name){ this.name = name; this.completed = false; } + + public String getName(){return name;} + public Boolean getCompleted(){return completed;} } diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 675adaf0b..742d05495 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -1,5 +1,14 @@ package com.booleanuk.core; +import java.util.ArrayList; + public class TodoList { + ArrayList tasks = new ArrayList<>(); + + public String add(Task task){ + tasks.add(task); + String result = task.getName() + " added."; + return result; + } } From 15dfd982cb7789d3a353cbc416bb1ba48290e85a Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 09:56:21 +0200 Subject: [PATCH 03/35] Test if seeTasks() works fails --- src/test/java/com/booleanuk/core/TodoListTest.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index f1848f8a6..21cdf67d9 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -17,6 +17,13 @@ public void exampleTest() { public void testAdd(){ Task taskOne = new Task("taskOne"); Assertions.assertEquals("taskOne added.", todoList.add(taskOne)); - //Assertions.assertTrue(todoList.tasks.contains("taskOne")); + Assertions.assertTrue(todoList.tasks.contains(taskOne)); + } + + @Test + public void testSeeTasks(){ + Task taskOne = new Task("taskOne"); + Task taskTwo = new Task("taskTwo"); + Assertions.assertEquals("taskOne incomplete, taskTwo incomplete", todoList.seeTasks()); } } From 9d4da6e30928875753ec2ba4d3939dd6b893753a Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 10:06:27 +0200 Subject: [PATCH 04/35] Test if seeTasks() works fails, retry after corrections --- .../java/com/booleanuk/core/TodoList.java | 22 +++++++++++++++++++ .../java/com/booleanuk/core/TodoListTest.java | 2 ++ 2 files changed, 24 insertions(+) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 742d05495..7c18fdf9e 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -11,4 +11,26 @@ public String add(Task task){ String result = task.getName() + " added."; return result; } + + /* + public String seeTasks(){ + String result = ""; + for(Task task : tasks){ + result += task.getName(); + + if(task.getCompleted()){ + result += " completed"; + } + else{ + result += " incomplete"; + } + + if(tasks.getLast() != task){ + result += ", "; + } + } + return result; + } + */ + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 21cdf67d9..ed68cc399 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -24,6 +24,8 @@ public void testAdd(){ public void testSeeTasks(){ Task taskOne = new Task("taskOne"); Task taskTwo = new Task("taskTwo"); + todoList.add(taskOne); + todoList.add(taskTwo); Assertions.assertEquals("taskOne incomplete, taskTwo incomplete", todoList.seeTasks()); } } From 360bf76f6e03826649cb6afdc484cddc7f726122 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 10:06:52 +0200 Subject: [PATCH 05/35] Test if seeTasks() works passes --- src/main/java/com/booleanuk/core/TodoList.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 7c18fdf9e..b6d37efc8 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -12,7 +12,6 @@ public String add(Task task){ return result; } - /* public String seeTasks(){ String result = ""; for(Task task : tasks){ @@ -31,6 +30,5 @@ public String seeTasks(){ } return result; } - */ } From 5634dcd8b9b71b87192b6e37f9bc99a5c3d7f21b Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 10:14:29 +0200 Subject: [PATCH 06/35] Test if changeStatus() works fails --- domain-model.md | 32 +++++++++---------- .../java/com/booleanuk/core/TodoListTest.java | 9 ++++++ 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/domain-model.md b/domain-model.md index 4af2772a3..cfdfc01b0 100644 --- a/domain-model.md +++ b/domain-model.md @@ -1,16 +1,16 @@ -| Classes | Variables | Methods | Scenario | Outcomes | -|------------|-------------------------|--------------------------------------|------------------------------------------------------------------------------------|---------------------------------------------------------------------| -| `TodoList` | `ArrayList tasks` | `Add(Task task)` | I want to add tasks to my todo list. | task is added to tasks and return confirmation print | -| | | `SeeTasks()` | I want to see all the tasks in my todo list. | Return print of elements in task | -| | | `ChangeStatus(String task, boolean)` | Change status of task in tasks | Change completed and return completed | -| | | | Change status of task not in tasks | Print | -| | | `SeeTasksCompleted()` | I want to be able to get only the complete tasks. | Return print of completed elements in task | -| | | `SeeTasksIncomplete()` | I want to be able to get only the incomplete tasks. | Return print of incomplete elements in task | -| | | `Search(String task)` | Search for task in tasks | Return print of status | -| | | | Search for task not in tasks | Return not found print | -| | | `Remove(String task)` | Remove task in tasks | Return confirmation print | -| | | | Remove task not in tasks | Return not found print | -| | | `SeeTasksAscending()` | I want to see all the tasks in my list ordered alphabetically in ascending order. | Return print of elements in task in alphabetically ascending order | -| | | `SeeTasksDescending()` | I want to see all the tasks in my list ordered alphabetically in descending order. | Return print of elements in task in alphabetically descending order | -| `Task` | `String name` | | | Return name | -| | `Boolean completed` | | | Return completed | +| Classes | Variables | Methods | Scenario | Outcomes | +|------------|-------------------------|------------------------------------|------------------------------------------------------------------------------------|---------------------------------------------------------------------| +| `TodoList` | `ArrayList tasks` | `add(Task task)` | I want to add tasks to my todo list. | task is added to tasks and return confirmation print | +| | | `seeTasks()` | I want to see all the tasks in my todo list. | Return print of elements in task | +| | | `changeStatus(Task task, boolean)` | Change status of task in tasks | Change completed and return completed | +| | | | Change status of task not in tasks | Print | +| | | `seeTasksCompleted()` | I want to be able to get only the complete tasks. | Return print of completed elements in task | +| | | `seeTasksIncomplete()` | I want to be able to get only the incomplete tasks. | Return print of incomplete elements in task | +| | | `search(String task)` | Search for task in tasks | Return print of status | +| | | | Search for task not in tasks | Return not found print | +| | | `remove(String task)` | Remove task in tasks | Return confirmation print | +| | | | Remove task not in tasks | Return not found print | +| | | `seeTasksAscending()` | I want to see all the tasks in my list ordered alphabetically in ascending order. | Return print of elements in task in alphabetically ascending order | +| | | `seeTasksDescending()` | I want to see all the tasks in my list ordered alphabetically in descending order. | Return print of elements in task in alphabetically descending order | +| `Task` | `String name` | | | Return name | +| | `Boolean completed` | | | Return completed | diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index ed68cc399..0907a94c8 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -28,4 +28,13 @@ public void testSeeTasks(){ todoList.add(taskTwo); Assertions.assertEquals("taskOne incomplete, taskTwo incomplete", todoList.seeTasks()); } + + @Test + public void testChangeStatus(){ + Task taskOne = new Task("taskOne"); + todoList.add(taskOne); + Assertions.assertTrue(todoList.changeStatus(taskOne, true)); + Assertions.assertFalse(todoList.changeStatus(taskOne, false)); + Assertions.assertFalse(todoList.changeStatus(taskOne, false)); + } } From d10280a872eb5659fb34318b2f530d74addba505 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 10:25:27 +0200 Subject: [PATCH 07/35] Test if changeStatus() works passes --- domain-model.md | 5 +++-- src/main/java/com/booleanuk/core/Task.java | 1 + src/main/java/com/booleanuk/core/TodoList.java | 5 +++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/domain-model.md b/domain-model.md index cfdfc01b0..e10e987d5 100644 --- a/domain-model.md +++ b/domain-model.md @@ -12,5 +12,6 @@ | | | | Remove task not in tasks | Return not found print | | | | `seeTasksAscending()` | I want to see all the tasks in my list ordered alphabetically in ascending order. | Return print of elements in task in alphabetically ascending order | | | | `seeTasksDescending()` | I want to see all the tasks in my list ordered alphabetically in descending order. | Return print of elements in task in alphabetically descending order | -| `Task` | `String name` | | | Return name | -| | `Boolean completed` | | | Return completed | +| `Task` | `String name` | `getName()` | | Return name | +| | `Boolean completed` | `getCompleted()` | | Return completed | +| | | `setCompleted(Boolean bool)` | | Set completed to bool | diff --git a/src/main/java/com/booleanuk/core/Task.java b/src/main/java/com/booleanuk/core/Task.java index 67f2cbd28..e76a8b6ee 100644 --- a/src/main/java/com/booleanuk/core/Task.java +++ b/src/main/java/com/booleanuk/core/Task.java @@ -12,4 +12,5 @@ public class Task { public String getName(){return name;} public Boolean getCompleted(){return completed;} + public void setCompleted(Boolean bool){completed = bool;} } diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index b6d37efc8..56171f23c 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -31,4 +31,9 @@ public String seeTasks(){ return result; } + public Boolean changeStatus(Task task, Boolean bool){ + task.setCompleted(bool); + return task.getCompleted(); + } + } From cd459b85f4d45c69df072ee4ffedd995dd350b1a Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 10:46:53 +0200 Subject: [PATCH 08/35] Retry of test if changeStatus() works fails --- domain-model.md | 4 ++-- src/main/java/com/booleanuk/core/TodoList.java | 7 +++++-- src/test/java/com/booleanuk/core/TodoListTest.java | 10 +++++++--- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/domain-model.md b/domain-model.md index e10e987d5..bd699b767 100644 --- a/domain-model.md +++ b/domain-model.md @@ -2,8 +2,8 @@ |------------|-------------------------|------------------------------------|------------------------------------------------------------------------------------|---------------------------------------------------------------------| | `TodoList` | `ArrayList tasks` | `add(Task task)` | I want to add tasks to my todo list. | task is added to tasks and return confirmation print | | | | `seeTasks()` | I want to see all the tasks in my todo list. | Return print of elements in task | -| | | `changeStatus(Task task, boolean)` | Change status of task in tasks | Change completed and return completed | -| | | | Change status of task not in tasks | Print | +| | | `changeStatus(Task task)` | Change status of task in tasks | Change completed and return completed | +| | | | Change status of task not in tasks | Print not found message and break method | | | | `seeTasksCompleted()` | I want to be able to get only the complete tasks. | Return print of completed elements in task | | | | `seeTasksIncomplete()` | I want to be able to get only the incomplete tasks. | Return print of incomplete elements in task | | | | `search(String task)` | Search for task in tasks | Return print of status | diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 56171f23c..f216e4e6f 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -31,9 +31,12 @@ public String seeTasks(){ return result; } - public Boolean changeStatus(Task task, Boolean bool){ - task.setCompleted(bool); + /* + public Boolean changeStatus(Task task){ + //task.setCompleted(false); return task.getCompleted(); } + */ + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 0907a94c8..30f5b675c 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -32,9 +32,13 @@ public void testSeeTasks(){ @Test public void testChangeStatus(){ Task taskOne = new Task("taskOne"); + Task taskTwo = new Task("taskTwo"); todoList.add(taskOne); - Assertions.assertTrue(todoList.changeStatus(taskOne, true)); - Assertions.assertFalse(todoList.changeStatus(taskOne, false)); - Assertions.assertFalse(todoList.changeStatus(taskOne, false)); + Assertions.assertTrue(todoList.changeStatus(taskOne)); + Assertions.assertFalse(todoList.changeStatus(taskOne)); + Assertions.assertFalse(todoList.changeStatus(taskOne)); + Assertions.fail(todoList.changeStatus(taskTwo)); } + + } From 5a2c5b41ecac30e510e46d2b9062b86d6e6c2cf3 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 10:55:51 +0200 Subject: [PATCH 09/35] Retry of test if changeStatus() works fails --- src/main/java/com/booleanuk/core/TodoList.java | 13 ++++++++++--- src/test/java/com/booleanuk/core/TodoListTest.java | 5 +++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index f216e4e6f..6eca8684d 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -31,12 +31,19 @@ public String seeTasks(){ return result; } - /* public Boolean changeStatus(Task task){ - //task.setCompleted(false); + /*if(!tasks.contains(task)){ + throw new Exception("Task not found!"); + }*/ + if(task.getCompleted()){ + task.setCompleted(false); + } + else{ + task.setCompleted(true); + } return task.getCompleted(); } - */ + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 30f5b675c..ef8266548 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -36,8 +36,9 @@ public void testChangeStatus(){ todoList.add(taskOne); Assertions.assertTrue(todoList.changeStatus(taskOne)); Assertions.assertFalse(todoList.changeStatus(taskOne)); - Assertions.assertFalse(todoList.changeStatus(taskOne)); - Assertions.fail(todoList.changeStatus(taskTwo)); + //Assertions.assertFalse(todoList.changeStatus(taskOne)); + Assertions.assertFalse(todoList.changeStatus(taskTwo)); + //Assertions.fail(todoList.changeStatus(taskTwo)); } From c451ef72ffc72f323d5a8dd1e95e09c1b19ab17e Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 10:57:17 +0200 Subject: [PATCH 10/35] Retry of test if changeStatus() works passes --- src/main/java/com/booleanuk/core/TodoList.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 6eca8684d..77a2981a8 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -35,11 +35,13 @@ public Boolean changeStatus(Task task){ /*if(!tasks.contains(task)){ throw new Exception("Task not found!"); }*/ - if(task.getCompleted()){ - task.setCompleted(false); - } - else{ - task.setCompleted(true); + if(tasks.contains(task)){ + if(task.getCompleted()){ + task.setCompleted(false); + } + else{ + task.setCompleted(true); + } } return task.getCompleted(); } From c74cb15f153dc99ff84e124f9d68a18d9db64eeb Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 11:04:34 +0200 Subject: [PATCH 11/35] Test if seeCompletedTasks() works fails --- domain-model.md | 1 - src/test/java/com/booleanuk/core/TodoListTest.java | 13 ++++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/domain-model.md b/domain-model.md index bd699b767..0ba6ad842 100644 --- a/domain-model.md +++ b/domain-model.md @@ -3,7 +3,6 @@ | `TodoList` | `ArrayList tasks` | `add(Task task)` | I want to add tasks to my todo list. | task is added to tasks and return confirmation print | | | | `seeTasks()` | I want to see all the tasks in my todo list. | Return print of elements in task | | | | `changeStatus(Task task)` | Change status of task in tasks | Change completed and return completed | -| | | | Change status of task not in tasks | Print not found message and break method | | | | `seeTasksCompleted()` | I want to be able to get only the complete tasks. | Return print of completed elements in task | | | | `seeTasksIncomplete()` | I want to be able to get only the incomplete tasks. | Return print of incomplete elements in task | | | | `search(String task)` | Search for task in tasks | Return print of status | diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index ef8266548..2f7736473 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -41,5 +41,16 @@ public void testChangeStatus(){ //Assertions.fail(todoList.changeStatus(taskTwo)); } - + @Test + public void testSeeCompletedTasks(){ + Task taskOne = new Task("taskOne"); + Task taskTwo = new Task("taskTwo"); + Task taskThree = new Task("taskThree"); + todoList.add(taskOne); + todoList.add(taskTwo); + todoList.add(taskThree); + todoList.changeStatus(taskOne); + todoList.changeStatus(taskThree); + Assertions.assertEquals("taskOne, taskThree", todoList.seeCompletedTasks()); + } } From 07a8c322ce3a6abd19b7b5352516d947425ffa52 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 11:09:28 +0200 Subject: [PATCH 12/35] Test if seeCompletedTasks() works passes --- src/main/java/com/booleanuk/core/TodoList.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 77a2981a8..d32d63953 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -46,6 +46,17 @@ public Boolean changeStatus(Task task){ return task.getCompleted(); } - + public String seeCompletedTasks(){ + String result = ""; + for(Task task : tasks){ + if(task.getCompleted()){ + result += task.getName(); + if(tasks.getLast() != task){ + result += ", "; + } + } + } + return result; + } } From ad1994baa9e0e37271f1f797b01c2bd3c36f40d2 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 11:12:22 +0200 Subject: [PATCH 13/35] Test if seeIncompleteTasks() works fail --- src/test/java/com/booleanuk/core/TodoListTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 2f7736473..48b2ecd13 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -53,4 +53,17 @@ public void testSeeCompletedTasks(){ todoList.changeStatus(taskThree); Assertions.assertEquals("taskOne, taskThree", todoList.seeCompletedTasks()); } + + @Test + public void testTasksIncomplete(){ + Task taskOne = new Task("taskOne"); + Task taskTwo = new Task("taskTwo"); + Task taskThree = new Task("taskThree"); + todoList.add(taskOne); + todoList.add(taskTwo); + todoList.add(taskThree); + todoList.changeStatus(taskOne); + todoList.changeStatus(taskThree); + Assertions.assertEquals("taskTwo, ", todoList.seeIncompleteTasks()); + } } From d3a81b9c4ca16c7b0a800214599149714f6dec9e Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 11:13:39 +0200 Subject: [PATCH 14/35] Test if seeIncompleteTasks() works fails again --- src/main/java/com/booleanuk/core/TodoList.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index d32d63953..24262b2f1 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -59,4 +59,17 @@ public String seeCompletedTasks(){ return result; } + public String seeIncompleteTasks(){ + String result = ""; + for(Task task : tasks){ + if(task.getCompleted()){ + result += task.getName(); + if(tasks.getLast() != task){ + result += ", "; + } + } + } + return result; + } + } From 808fd10f976ee84cff547dc90acba031dab70dfe Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 11:14:04 +0200 Subject: [PATCH 15/35] Test if seeIncompleteTasks() works passes --- src/main/java/com/booleanuk/core/TodoList.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 24262b2f1..c101c5dcf 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -62,7 +62,7 @@ public String seeCompletedTasks(){ public String seeIncompleteTasks(){ String result = ""; for(Task task : tasks){ - if(task.getCompleted()){ + if(!task.getCompleted()){ result += task.getName(); if(tasks.getLast() != task){ result += ", "; From c7d48006d8a83f5cea24e0f7f05f054fbcfa5c7e Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 11:19:54 +0200 Subject: [PATCH 16/35] Test if search() works fails --- src/main/java/com/booleanuk/core/TodoList.java | 4 ++++ src/test/java/com/booleanuk/core/TodoListTest.java | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index c101c5dcf..b55971d39 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -72,4 +72,8 @@ public String seeIncompleteTasks(){ return result; } + public String search(String task){ + return ""; + } + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 48b2ecd13..05f1c64fd 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -55,7 +55,7 @@ public void testSeeCompletedTasks(){ } @Test - public void testTasksIncomplete(){ + public void testSeeTasksIncomplete(){ Task taskOne = new Task("taskOne"); Task taskTwo = new Task("taskTwo"); Task taskThree = new Task("taskThree"); @@ -66,4 +66,11 @@ public void testTasksIncomplete(){ todoList.changeStatus(taskThree); Assertions.assertEquals("taskTwo, ", todoList.seeIncompleteTasks()); } + + @Test + public void testSearch(){ + Task taskOne = new Task("taskOne"); + todoList.add(taskOne); + Assertions.assertEquals("taskOne incomplete", todoList.search("taskOne")); + } } From 83ede2492a28583a006077d9ade6fccc18b92f6a Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 11:22:59 +0200 Subject: [PATCH 17/35] Test if search() works passes --- src/main/java/com/booleanuk/core/TodoList.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index b55971d39..7b94f6c73 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -72,8 +72,20 @@ public String seeIncompleteTasks(){ return result; } - public String search(String task){ - return ""; + public String search(String searchedTask){ + String result = ""; + for(Task task : tasks){ + if(task.getName().equals(searchedTask)){ + result += task.getName(); + if(task.getCompleted()){ + result += " completed"; + } + else{ + result += " incomplete"; + } + } + } + return result; } } From 6c3d6bb74bb6c6967be300fe27d64f12f5a88fc6 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 11:24:42 +0200 Subject: [PATCH 18/35] Test if search() works version 2 fails --- src/test/java/com/booleanuk/core/TodoListTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 05f1c64fd..1a91f2fa9 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -72,5 +72,8 @@ public void testSearch(){ Task taskOne = new Task("taskOne"); todoList.add(taskOne); Assertions.assertEquals("taskOne incomplete", todoList.search("taskOne")); + Assertions.assertEquals("Task not found", todoList.search("taskTwo")); } + + } From f7aaa6c4015e0d9bf581294eca0b188e9a3561d8 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 11:25:41 +0200 Subject: [PATCH 19/35] Test if search() works version 2 passes --- src/main/java/com/booleanuk/core/TodoList.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 7b94f6c73..d0518f269 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -83,9 +83,10 @@ public String search(String searchedTask){ else{ result += " incomplete"; } + return result; } } - return result; + return "Task not found"; } } From 8d70ae19856060c1b4c287ed0f79cc3491b1b681 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 11:35:26 +0200 Subject: [PATCH 20/35] Test if remove() works fails --- domain-model.md | 32 +++++++++---------- .../java/com/booleanuk/core/TodoList.java | 4 +++ .../java/com/booleanuk/core/TodoListTest.java | 10 ++++++ 3 files changed, 30 insertions(+), 16 deletions(-) diff --git a/domain-model.md b/domain-model.md index 0ba6ad842..e5c2c2702 100644 --- a/domain-model.md +++ b/domain-model.md @@ -1,16 +1,16 @@ -| Classes | Variables | Methods | Scenario | Outcomes | -|------------|-------------------------|------------------------------------|------------------------------------------------------------------------------------|---------------------------------------------------------------------| -| `TodoList` | `ArrayList tasks` | `add(Task task)` | I want to add tasks to my todo list. | task is added to tasks and return confirmation print | -| | | `seeTasks()` | I want to see all the tasks in my todo list. | Return print of elements in task | -| | | `changeStatus(Task task)` | Change status of task in tasks | Change completed and return completed | -| | | `seeTasksCompleted()` | I want to be able to get only the complete tasks. | Return print of completed elements in task | -| | | `seeTasksIncomplete()` | I want to be able to get only the incomplete tasks. | Return print of incomplete elements in task | -| | | `search(String task)` | Search for task in tasks | Return print of status | -| | | | Search for task not in tasks | Return not found print | -| | | `remove(String task)` | Remove task in tasks | Return confirmation print | -| | | | Remove task not in tasks | Return not found print | -| | | `seeTasksAscending()` | I want to see all the tasks in my list ordered alphabetically in ascending order. | Return print of elements in task in alphabetically ascending order | -| | | `seeTasksDescending()` | I want to see all the tasks in my list ordered alphabetically in descending order. | Return print of elements in task in alphabetically descending order | -| `Task` | `String name` | `getName()` | | Return name | -| | `Boolean completed` | `getCompleted()` | | Return completed | -| | | `setCompleted(Boolean bool)` | | Set completed to bool | +| Classes | Variables | Methods | Scenario | Outcomes | +|------------|-------------------------|------------------------------|------------------------------------------------------------------------------------|---------------------------------------------------------------------| +| `TodoList` | `ArrayList tasks` | `add(Task task)` | I want to add tasks to my todo list. | task is added to tasks and return confirmation print | +| | | `seeTasks()` | I want to see all the tasks in my todo list. | Return print of elements in task | +| | | `changeStatus(Task task)` | Change status of task in tasks | Change completed and return completed | +| | | `seeTasksCompleted()` | I want to be able to get only the complete tasks. | Return print of completed elements in task | +| | | `seeTasksIncomplete()` | I want to be able to get only the incomplete tasks. | Return print of incomplete elements in task | +| | | `search(String task)` | Search for task in tasks | Return print of status | +| | | | Search for task not in tasks | Return not found print | +| | | `remove(Task task)` | Remove task in tasks | Return confirmation print | +| | | | Remove task not in tasks | Return not found print | +| | | `seeTasksAscending()` | I want to see all the tasks in my list ordered alphabetically in ascending order. | Return print of elements in task in alphabetically ascending order | +| | | `seeTasksDescending()` | I want to see all the tasks in my list ordered alphabetically in descending order. | Return print of elements in task in alphabetically descending order | +| `Task` | `String name` | `getName()` | | Return name | +| | `Boolean completed` | `getCompleted()` | | Return completed | +| | | `setCompleted(Boolean bool)` | | Set completed to bool | diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index d0518f269..cdd6a7037 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -89,4 +89,8 @@ public String search(String searchedTask){ return "Task not found"; } + public String remove(Task task){ + return ""; + } + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 1a91f2fa9..8f553a162 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -75,5 +75,15 @@ public void testSearch(){ Assertions.assertEquals("Task not found", todoList.search("taskTwo")); } + @Test + public void testRemove(){ + Task taskOne = new Task("taskOne"); + Assertions.assertEquals("Task not found", todoList.remove(taskOne)); + todoList.add(taskOne); + Assertions.assertTrue(todoList.tasks.contains(taskOne)); + Assertions.assertEquals("taskOne removed", todoList.remove(taskOne)); + Assertions.assertFalse(todoList.tasks.contains(taskOne)); + } + } From 9cd64c25a472204f3310e76fd6316861a57d3d77 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 11:38:02 +0200 Subject: [PATCH 21/35] Test if remove() works passes --- src/main/java/com/booleanuk/core/TodoList.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index cdd6a7037..948cbc277 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -90,7 +90,11 @@ public String search(String searchedTask){ } public String remove(Task task){ - return ""; + if(tasks.contains(task)){ + tasks.remove(task); + return task.getName() + " removed"; + } + return "Task not found"; } } From bea18c7d3e84a842d470c8837f87e3e4728406b5 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 11:43:33 +0200 Subject: [PATCH 22/35] Test if seeTasksAscending() works fails --- src/main/java/com/booleanuk/core/TodoList.java | 4 ++++ src/test/java/com/booleanuk/core/TodoListTest.java | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 948cbc277..e3b717d0a 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -97,4 +97,8 @@ public String remove(Task task){ return "Task not found"; } + public String seeTasksAscending(){ + return ""; + } + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 8f553a162..7c601d9e3 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -85,5 +85,16 @@ public void testRemove(){ Assertions.assertFalse(todoList.tasks.contains(taskOne)); } + @Test + public void testSeeTasksAscending(){ + Task taskA = new Task("taskA"); + Task taskB = new Task("taskB"); + Task taskC = new Task("taskC"); + todoList.add(taskC); + todoList.add(taskA); + todoList.add(taskB); + Assertions.assertEquals("taskA taskB taskC", todoList.seeTasksAscending()); + } + } From 594b2d997130fb622126ffa214098c83d8cf373c Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 12:48:28 +0200 Subject: [PATCH 23/35] Test if seeTasksAscending() works passes --- src/main/java/com/booleanuk/core/TodoList.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index e3b717d0a..1bbae4923 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -98,7 +98,16 @@ public String remove(Task task){ } public String seeTasksAscending(){ - return ""; + String result = ""; + tasks.sort((t1, t2) -> t1.getName().compareTo(t2.getName())); + for(Task task : tasks){ + result += task.getName(); + + if(tasks.getLast() != task){ + result += " "; + } + } + return result; } } From 22676ccc22e899fe656ff5cbc16da2d5aa8146db Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 12:54:00 +0200 Subject: [PATCH 24/35] Test if seeTasksDescending() works fails --- src/main/java/com/booleanuk/core/TodoList.java | 13 +++++++++++++ src/test/java/com/booleanuk/core/TodoListTest.java | 11 +++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 1bbae4923..2c20bba76 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -110,4 +110,17 @@ public String seeTasksAscending(){ return result; } + public String seeTasksDescending(){ + String result = ""; + /*tasks.sort((t2, t1) -> t2.getName().compareTo(t1.getName())); + for(Task task : tasks){ + result += task.getName(); + + if(tasks.getLast() != task){ + result += " "; + } + }*/ + return result; + } + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 7c601d9e3..596c03f1f 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -96,5 +96,16 @@ public void testSeeTasksAscending(){ Assertions.assertEquals("taskA taskB taskC", todoList.seeTasksAscending()); } + @Test + public void testSeeTasksDescending(){ + Task taskA = new Task("taskA"); + Task taskB = new Task("taskB"); + Task taskC = new Task("taskC"); + todoList.add(taskC); + todoList.add(taskA); + todoList.add(taskB); + Assertions.assertEquals("taskC taskB taskA", todoList.seeTasksDescending()); + } + } From f9de5099ccb12e1ef64b9b1b9d6ef86c8f12486e Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 12:59:56 +0200 Subject: [PATCH 25/35] Test if seeTasksDescending() works passes --- src/main/java/com/booleanuk/core/TodoList.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 2c20bba76..24dbf6f9b 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -112,14 +112,14 @@ public String seeTasksAscending(){ public String seeTasksDescending(){ String result = ""; - /*tasks.sort((t2, t1) -> t2.getName().compareTo(t1.getName())); - for(Task task : tasks){ - result += task.getName(); + tasks.sort((t2, t1) -> t2.getName().compareTo(t1.getName())); + for(int i = tasks.size()-1; i > -1; --i){ + result += tasks.get(i).getName(); - if(tasks.getLast() != task){ + if(tasks.getFirst() != tasks.get(i)){ result += " "; } - }*/ + } return result; } From a48de947f1132b417299315d1c55a725c9e2f02c Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 13:01:47 +0200 Subject: [PATCH 26/35] Test if seeTasksDescending() works passes --- src/main/java/com/booleanuk/core/TodoList.java | 2 ++ src/test/java/com/booleanuk/core/TodoListTest.java | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/TodoList.java b/src/main/java/com/booleanuk/core/TodoList.java index 24dbf6f9b..0831b49b8 100644 --- a/src/main/java/com/booleanuk/core/TodoList.java +++ b/src/main/java/com/booleanuk/core/TodoList.java @@ -123,4 +123,6 @@ public String seeTasksDescending(){ return result; } + + } diff --git a/src/test/java/com/booleanuk/core/TodoListTest.java b/src/test/java/com/booleanuk/core/TodoListTest.java index 596c03f1f..ca498c1e6 100644 --- a/src/test/java/com/booleanuk/core/TodoListTest.java +++ b/src/test/java/com/booleanuk/core/TodoListTest.java @@ -107,5 +107,4 @@ public void testSeeTasksDescending(){ Assertions.assertEquals("taskC taskB taskA", todoList.seeTasksDescending()); } - } From c6e7c28abc33c922bc80cec963a9e6fea7bb3885 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 14:44:04 +0200 Subject: [PATCH 27/35] Test if getTaskById() works fails --- domain-model.md | 38 ++--- .../java/com/booleanuk/extension/Task.java | 28 ++++ .../com/booleanuk/extension/TodoList.java | 130 ++++++++++++++++++ .../extension/TodoListTestExtension.java | 116 ++++++++++++++++ 4 files changed, 296 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/booleanuk/extension/Task.java create mode 100644 src/main/java/com/booleanuk/extension/TodoList.java create mode 100644 src/test/java/com/booleanuk/extension/TodoListTestExtension.java diff --git a/domain-model.md b/domain-model.md index e5c2c2702..f338c839d 100644 --- a/domain-model.md +++ b/domain-model.md @@ -1,16 +1,22 @@ -| Classes | Variables | Methods | Scenario | Outcomes | -|------------|-------------------------|------------------------------|------------------------------------------------------------------------------------|---------------------------------------------------------------------| -| `TodoList` | `ArrayList tasks` | `add(Task task)` | I want to add tasks to my todo list. | task is added to tasks and return confirmation print | -| | | `seeTasks()` | I want to see all the tasks in my todo list. | Return print of elements in task | -| | | `changeStatus(Task task)` | Change status of task in tasks | Change completed and return completed | -| | | `seeTasksCompleted()` | I want to be able to get only the complete tasks. | Return print of completed elements in task | -| | | `seeTasksIncomplete()` | I want to be able to get only the incomplete tasks. | Return print of incomplete elements in task | -| | | `search(String task)` | Search for task in tasks | Return print of status | -| | | | Search for task not in tasks | Return not found print | -| | | `remove(Task task)` | Remove task in tasks | Return confirmation print | -| | | | Remove task not in tasks | Return not found print | -| | | `seeTasksAscending()` | I want to see all the tasks in my list ordered alphabetically in ascending order. | Return print of elements in task in alphabetically ascending order | -| | | `seeTasksDescending()` | I want to see all the tasks in my list ordered alphabetically in descending order. | Return print of elements in task in alphabetically descending order | -| `Task` | `String name` | `getName()` | | Return name | -| | `Boolean completed` | `getCompleted()` | | Return completed | -| | | `setCompleted(Boolean bool)` | | Set completed to bool | +| Classes | Variables | Methods | Scenario | Outcomes | +|------------|-------------------------|--------------------------------------|------------------------------------------------------------------------------------|---------------------------------------------------------------------| +| `TodoList` | `ArrayList tasks` | `add(Task task)` | I want to add tasks to my todo list. | task is added to tasks and return confirmation print | +| | | `seeTasks()` | I want to see all the tasks in my todo list. | Return print of elements in task | +| | | `changeStatus(Task task)` | Change status of task in tasks | Change completed and return completed | +| | | `seeTasksCompleted()` | I want to be able to get only the complete tasks. | Return print of completed elements in task | +| | | `seeTasksIncomplete()` | I want to be able to get only the incomplete tasks. | Return print of incomplete elements in task | +| | | `search(String task)` | Search for task in tasks | Return print of status | +| | | | Search for task not in tasks | Return not found print | +| | | `remove(Task task)` | Remove task in tasks | Return confirmation print | +| | | | Remove task not in tasks | Return not found print | +| | | `seeTasksAscending()` | I want to see all the tasks in my list ordered alphabetically in ascending order. | Return print of elements in task in alphabetically ascending order | +| | | `seeTasksDescending()` | I want to see all the tasks in my list ordered alphabetically in descending order. | Return print of elements in task in alphabetically descending order | +| | | `getTaskById(String id)` | I want to be able to get a task by a unique ID. | Return task | +| | | `setTaskId(String id, String newId)` | I want to update the name of a task by providing its ID and a new name. | Return new id | +| | | `changeStatusById(String id)` | I want to be able to change the status of a task by providing its ID. | Return new status | +| | | `seeDate(Task task)` | I want to be able to see the date and time that I created each task. | Return print of date and time | +| `Task` | `String name` | `getName()` | | Return name | +| | `String id` | `getId()` | | Return id | +| | | `setId(String newId)` | | Set id to newId | +| | `Boolean completed` | `getCompleted()` | | Return completed | +| | | `setCompleted(Boolean bool)` | | Set completed to bool | diff --git a/src/main/java/com/booleanuk/extension/Task.java b/src/main/java/com/booleanuk/extension/Task.java new file mode 100644 index 000000000..89d8164d7 --- /dev/null +++ b/src/main/java/com/booleanuk/extension/Task.java @@ -0,0 +1,28 @@ +package com.booleanuk.extension; + +import java.util.UUID; + +public class Task { + + private String name; + private String id; + private Boolean completed; + + Task(String name){ + this.name = name; + this.id = generateId(); + this.completed = false; + } + + private String generateId(){ + final String uuid = UUID.randomUUID().toString().replace("-", ""); + return uuid; + } + + public String getName(){return this.name;} + public Boolean getCompleted(){return this.completed;} + public void setCompleted(Boolean bool){this.completed = bool;} + public String getId(){return this.id;} + public void setId(String newId){this.id = newId;} + +} diff --git a/src/main/java/com/booleanuk/extension/TodoList.java b/src/main/java/com/booleanuk/extension/TodoList.java new file mode 100644 index 000000000..ff56457dd --- /dev/null +++ b/src/main/java/com/booleanuk/extension/TodoList.java @@ -0,0 +1,130 @@ +package com.booleanuk.extension; + +import java.util.ArrayList; + +public class TodoList { + + ArrayList tasks = new ArrayList<>(); + + public String add(Task task){ + tasks.add(task); + String result = task.getName() + " added."; + return result; + } + + public String seeTasks(){ + String result = ""; + for(Task task : tasks){ + result += task.getName(); + + if(task.getCompleted()){ + result += " completed"; + } + else{ + result += " incomplete"; + } + + if(tasks.getLast() != task){ + result += ", "; + } + } + return result; + } + + public Boolean changeStatus(Task task){ + /*if(!tasks.contains(task)){ + throw new Exception("Task not found!"); + }*/ + if(tasks.contains(task)){ + if(task.getCompleted()){ + task.setCompleted(false); + } + else{ + task.setCompleted(true); + } + } + return task.getCompleted(); + } + + public String seeCompletedTasks(){ + String result = ""; + for(Task task : tasks){ + if(task.getCompleted()){ + result += task.getName(); + if(tasks.getLast() != task){ + result += ", "; + } + } + } + return result; + } + + public String seeIncompleteTasks(){ + String result = ""; + for(Task task : tasks){ + if(!task.getCompleted()){ + result += task.getName(); + if(tasks.getLast() != task){ + result += ", "; + } + } + } + return result; + } + + public String search(String searchedTask){ + String result = ""; + for(Task task : tasks){ + if(task.getName().equals(searchedTask)){ + result += task.getName(); + if(task.getCompleted()){ + result += " completed"; + } + else{ + result += " incomplete"; + } + return result; + } + } + return "Task not found"; + } + + public String remove(Task task){ + if(tasks.contains(task)){ + tasks.remove(task); + return task.getName() + " removed"; + } + return "Task not found"; + } + + public String seeTasksAscending(){ + String result = ""; + tasks.sort((t1, t2) -> t1.getName().compareTo(t2.getName())); + for(Task task : tasks){ + result += task.getName(); + + if(tasks.getLast() != task){ + result += " "; + } + } + return result; + } + + public String seeTasksDescending(){ + String result = ""; + tasks.sort((t2, t1) -> t2.getName().compareTo(t1.getName())); + for(int i = tasks.size()-1; i > -1; --i){ + result += tasks.get(i).getName(); + + if(tasks.getFirst() != tasks.get(i)){ + result += " "; + } + } + return result; + } + + public Task getTaskById(String id){ + return tasks.get(0); + } + +} diff --git a/src/test/java/com/booleanuk/extension/TodoListTestExtension.java b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java new file mode 100644 index 000000000..2669bc8a0 --- /dev/null +++ b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java @@ -0,0 +1,116 @@ +package com.booleanuk.extension; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class TodoListTestExtension { + @Test + public void exampleTest() { + String hello = "Hello"; + Assertions.assertEquals("Hello", hello); + Assertions.assertNotEquals("Goodbye", hello); + } + + TodoList todoList = new TodoList(); + + @Test + public void testAdd(){ + Task taskOne = new Task("taskOne"); + Assertions.assertEquals("taskOne added.", todoList.add(taskOne)); + Assertions.assertTrue(todoList.tasks.contains(taskOne)); + } + + @Test + public void testSeeTasks(){ + Task taskOne = new Task("taskOne"); + Task taskTwo = new Task("taskTwo"); + todoList.add(taskOne); + todoList.add(taskTwo); + Assertions.assertEquals("taskOne incomplete, taskTwo incomplete", todoList.seeTasks()); + } + + @Test + public void testChangeStatus(){ + Task taskOne = new Task("taskOne"); + Task taskTwo = new Task("taskTwo"); + todoList.add(taskOne); + Assertions.assertTrue(todoList.changeStatus(taskOne)); + Assertions.assertFalse(todoList.changeStatus(taskOne)); + //Assertions.assertFalse(todoList.changeStatus(taskOne)); + Assertions.assertFalse(todoList.changeStatus(taskTwo)); + //Assertions.fail(todoList.changeStatus(taskTwo)); + } + + @Test + public void testSeeCompletedTasks(){ + Task taskOne = new Task("taskOne"); + Task taskTwo = new Task("taskTwo"); + Task taskThree = new Task("taskThree"); + todoList.add(taskOne); + todoList.add(taskTwo); + todoList.add(taskThree); + todoList.changeStatus(taskOne); + todoList.changeStatus(taskThree); + Assertions.assertEquals("taskOne, taskThree", todoList.seeCompletedTasks()); + } + + @Test + public void testSeeTasksIncomplete(){ + Task taskOne = new Task("taskOne"); + Task taskTwo = new Task("taskTwo"); + Task taskThree = new Task("taskThree"); + todoList.add(taskOne); + todoList.add(taskTwo); + todoList.add(taskThree); + todoList.changeStatus(taskOne); + todoList.changeStatus(taskThree); + Assertions.assertEquals("taskTwo, ", todoList.seeIncompleteTasks()); + } + + @Test + public void testSearch(){ + Task taskOne = new Task("taskOne"); + todoList.add(taskOne); + Assertions.assertEquals("taskOne incomplete", todoList.search("taskOne")); + Assertions.assertEquals("Task not found", todoList.search("taskTwo")); + } + + @Test + public void testRemove(){ + Task taskOne = new Task("taskOne"); + Assertions.assertEquals("Task not found", todoList.remove(taskOne)); + todoList.add(taskOne); + Assertions.assertTrue(todoList.tasks.contains(taskOne)); + Assertions.assertEquals("taskOne removed", todoList.remove(taskOne)); + Assertions.assertFalse(todoList.tasks.contains(taskOne)); + } + + @Test + public void testSeeTasksAscending(){ + Task taskA = new Task("taskA"); + Task taskB = new Task("taskB"); + Task taskC = new Task("taskC"); + todoList.add(taskC); + todoList.add(taskA); + todoList.add(taskB); + Assertions.assertEquals("taskA taskB taskC", todoList.seeTasksAscending()); + } + + @Test + public void testSeeTasksDescending(){ + Task taskA = new Task("taskA"); + Task taskB = new Task("taskB"); + Task taskC = new Task("taskC"); + todoList.add(taskC); + todoList.add(taskA); + todoList.add(taskB); + Assertions.assertEquals("taskC taskB taskA", todoList.seeTasksDescending()); + } + + @Test + public void testGetTaskById(){ + Task taskA = new Task("taskA"); + todoList.add(taskA); + Assertions.assertEquals("taskA", todoList.getTaskById(taskA.getId())); + } +} From 2681856392f58cffee82ba7054a1de73733ced86 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 14:48:59 +0200 Subject: [PATCH 28/35] Test if getTaskById() works passes --- src/main/java/com/booleanuk/extension/TodoList.java | 7 ++++++- .../com/booleanuk/extension/TodoListTestExtension.java | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/booleanuk/extension/TodoList.java b/src/main/java/com/booleanuk/extension/TodoList.java index ff56457dd..c7447f5ce 100644 --- a/src/main/java/com/booleanuk/extension/TodoList.java +++ b/src/main/java/com/booleanuk/extension/TodoList.java @@ -124,7 +124,12 @@ public String seeTasksDescending(){ } public Task getTaskById(String id){ - return tasks.get(0); + for(Task task : tasks){ + if(task.getId().equals(id)){ + return task; + } + } + return null; } } diff --git a/src/test/java/com/booleanuk/extension/TodoListTestExtension.java b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java index 2669bc8a0..214fa0f7a 100644 --- a/src/test/java/com/booleanuk/extension/TodoListTestExtension.java +++ b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java @@ -111,6 +111,6 @@ public void testSeeTasksDescending(){ public void testGetTaskById(){ Task taskA = new Task("taskA"); todoList.add(taskA); - Assertions.assertEquals("taskA", todoList.getTaskById(taskA.getId())); + Assertions.assertEquals(taskA, todoList.getTaskById(taskA.getId())); } } From dda16a4e8aed2286619adfa854357a9af9eac774 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 14:58:39 +0200 Subject: [PATCH 29/35] Test setNameById() fail --- domain-model.md | 44 +++++++++---------- .../com/booleanuk/extension/TodoList.java | 4 ++ .../extension/TodoListTestExtension.java | 7 +++ 3 files changed, 33 insertions(+), 22 deletions(-) diff --git a/domain-model.md b/domain-model.md index f338c839d..e261ad812 100644 --- a/domain-model.md +++ b/domain-model.md @@ -1,22 +1,22 @@ -| Classes | Variables | Methods | Scenario | Outcomes | -|------------|-------------------------|--------------------------------------|------------------------------------------------------------------------------------|---------------------------------------------------------------------| -| `TodoList` | `ArrayList tasks` | `add(Task task)` | I want to add tasks to my todo list. | task is added to tasks and return confirmation print | -| | | `seeTasks()` | I want to see all the tasks in my todo list. | Return print of elements in task | -| | | `changeStatus(Task task)` | Change status of task in tasks | Change completed and return completed | -| | | `seeTasksCompleted()` | I want to be able to get only the complete tasks. | Return print of completed elements in task | -| | | `seeTasksIncomplete()` | I want to be able to get only the incomplete tasks. | Return print of incomplete elements in task | -| | | `search(String task)` | Search for task in tasks | Return print of status | -| | | | Search for task not in tasks | Return not found print | -| | | `remove(Task task)` | Remove task in tasks | Return confirmation print | -| | | | Remove task not in tasks | Return not found print | -| | | `seeTasksAscending()` | I want to see all the tasks in my list ordered alphabetically in ascending order. | Return print of elements in task in alphabetically ascending order | -| | | `seeTasksDescending()` | I want to see all the tasks in my list ordered alphabetically in descending order. | Return print of elements in task in alphabetically descending order | -| | | `getTaskById(String id)` | I want to be able to get a task by a unique ID. | Return task | -| | | `setTaskId(String id, String newId)` | I want to update the name of a task by providing its ID and a new name. | Return new id | -| | | `changeStatusById(String id)` | I want to be able to change the status of a task by providing its ID. | Return new status | -| | | `seeDate(Task task)` | I want to be able to see the date and time that I created each task. | Return print of date and time | -| `Task` | `String name` | `getName()` | | Return name | -| | `String id` | `getId()` | | Return id | -| | | `setId(String newId)` | | Set id to newId | -| | `Boolean completed` | `getCompleted()` | | Return completed | -| | | `setCompleted(Boolean bool)` | | Set completed to bool | +| Classes | Variables | Methods | Scenario | Outcomes | +|------------|-------------------------|------------------------------------------|------------------------------------------------------------------------------------|---------------------------------------------------------------------| +| `TodoList` | `ArrayList tasks` | `add(Task task)` | I want to add tasks to my todo list. | task is added to tasks and return confirmation print | +| | | `seeTasks()` | I want to see all the tasks in my todo list. | Return print of elements in task | +| | | `changeStatus(Task task)` | Change status of task in tasks | Change completed and return completed | +| | | `seeTasksCompleted()` | I want to be able to get only the complete tasks. | Return print of completed elements in task | +| | | `seeTasksIncomplete()` | I want to be able to get only the incomplete tasks. | Return print of incomplete elements in task | +| | | `search(String task)` | Search for task in tasks | Return print of status | +| | | | Search for task not in tasks | Return not found print | +| | | `remove(Task task)` | Remove task in tasks | Return confirmation print | +| | | | Remove task not in tasks | Return not found print | +| | | `seeTasksAscending()` | I want to see all the tasks in my list ordered alphabetically in ascending order. | Return print of elements in task in alphabetically ascending order | +| | | `seeTasksDescending()` | I want to see all the tasks in my list ordered alphabetically in descending order. | Return print of elements in task in alphabetically descending order | +| | | `getTaskById(String id)` | I want to be able to get a task by a unique ID. | Return task | +| | | `setNameById(String id, String newName)` | I want to update the name of a task by providing its ID and a new name. | Return new name | +| | | `changeStatusById(String id)` | I want to be able to change the status of a task by providing its ID. | Return new status | +| | | `seeDate(Task task)` | I want to be able to see the date and time that I created each task. | Return print of date and time | +| `Task` | `String name` | `getName()` | | Return name | +| | `String id` | `getId()` | | Return id | +| | | `setId(String newId)` | | Set id to newId | +| | `Boolean completed` | `getCompleted()` | | Return completed | +| | | `setCompleted(Boolean bool)` | | Set completed to bool | diff --git a/src/main/java/com/booleanuk/extension/TodoList.java b/src/main/java/com/booleanuk/extension/TodoList.java index c7447f5ce..12515cc57 100644 --- a/src/main/java/com/booleanuk/extension/TodoList.java +++ b/src/main/java/com/booleanuk/extension/TodoList.java @@ -132,4 +132,8 @@ public Task getTaskById(String id){ return null; } + public String setNameById(String id, String newName){ + return ""; + } + } diff --git a/src/test/java/com/booleanuk/extension/TodoListTestExtension.java b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java index 214fa0f7a..4905a4cbd 100644 --- a/src/test/java/com/booleanuk/extension/TodoListTestExtension.java +++ b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java @@ -113,4 +113,11 @@ public void testGetTaskById(){ todoList.add(taskA); Assertions.assertEquals(taskA, todoList.getTaskById(taskA.getId())); } + + @Test + public void testSetNameById(){ + Task taskA = new Task("taskA"); + todoList.add(taskA); + Assertions.assertEquals("newName", todoList.setNameById(taskA.getId(), "newName")); + } } From 4856d046475f5f30e526bd365f73d8128a8c001b Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 15:04:04 +0200 Subject: [PATCH 30/35] Test setNameById() pass --- domain-model.md | 2 +- src/main/java/com/booleanuk/extension/Task.java | 2 +- src/main/java/com/booleanuk/extension/TodoList.java | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/domain-model.md b/domain-model.md index e261ad812..fbc650834 100644 --- a/domain-model.md +++ b/domain-model.md @@ -16,7 +16,7 @@ | | | `changeStatusById(String id)` | I want to be able to change the status of a task by providing its ID. | Return new status | | | | `seeDate(Task task)` | I want to be able to see the date and time that I created each task. | Return print of date and time | | `Task` | `String name` | `getName()` | | Return name | +| | | `setName(String newName)` | | Set name to newName | | | `String id` | `getId()` | | Return id | -| | | `setId(String newId)` | | Set id to newId | | | `Boolean completed` | `getCompleted()` | | Return completed | | | | `setCompleted(Boolean bool)` | | Set completed to bool | diff --git a/src/main/java/com/booleanuk/extension/Task.java b/src/main/java/com/booleanuk/extension/Task.java index 89d8164d7..f24774c82 100644 --- a/src/main/java/com/booleanuk/extension/Task.java +++ b/src/main/java/com/booleanuk/extension/Task.java @@ -20,9 +20,9 @@ private String generateId(){ } public String getName(){return this.name;} + public void setName(String newName){this.name = newName;} public Boolean getCompleted(){return this.completed;} public void setCompleted(Boolean bool){this.completed = bool;} public String getId(){return this.id;} - public void setId(String newId){this.id = newId;} } diff --git a/src/main/java/com/booleanuk/extension/TodoList.java b/src/main/java/com/booleanuk/extension/TodoList.java index 12515cc57..4f30064a8 100644 --- a/src/main/java/com/booleanuk/extension/TodoList.java +++ b/src/main/java/com/booleanuk/extension/TodoList.java @@ -133,7 +133,9 @@ public Task getTaskById(String id){ } public String setNameById(String id, String newName){ - return ""; + Task task = getTaskById(id); + task.setName(newName); + return task.getName(); } } From 8c5fd6880420ac123767ce1e7dde16f73e2d371e Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 15:08:09 +0200 Subject: [PATCH 31/35] Test changeStatusById() fail --- src/main/java/com/booleanuk/extension/TodoList.java | 5 +++++ .../com/booleanuk/extension/TodoListTestExtension.java | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/src/main/java/com/booleanuk/extension/TodoList.java b/src/main/java/com/booleanuk/extension/TodoList.java index 4f30064a8..27b57401d 100644 --- a/src/main/java/com/booleanuk/extension/TodoList.java +++ b/src/main/java/com/booleanuk/extension/TodoList.java @@ -138,4 +138,9 @@ public String setNameById(String id, String newName){ return task.getName(); } + public Boolean changeStatusById(String id){ + //return changeStatus(getTaskById(id)); + return null; + } + } diff --git a/src/test/java/com/booleanuk/extension/TodoListTestExtension.java b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java index 4905a4cbd..d2b68e84f 100644 --- a/src/test/java/com/booleanuk/extension/TodoListTestExtension.java +++ b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java @@ -120,4 +120,11 @@ public void testSetNameById(){ todoList.add(taskA); Assertions.assertEquals("newName", todoList.setNameById(taskA.getId(), "newName")); } + + @Test + public void testChangeStatusById(){ + Task taskA = new Task("taskA"); + todoList.add(taskA); + Assertions.assertTrue(todoList.changeStatusById(taskA.getId())); + } } From 67da8fd6eae7cb32af8d7f163124832c4d277571 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 15:08:28 +0200 Subject: [PATCH 32/35] Test changeStatusById() pass --- src/main/java/com/booleanuk/extension/TodoList.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/booleanuk/extension/TodoList.java b/src/main/java/com/booleanuk/extension/TodoList.java index 27b57401d..ccf064bc6 100644 --- a/src/main/java/com/booleanuk/extension/TodoList.java +++ b/src/main/java/com/booleanuk/extension/TodoList.java @@ -139,8 +139,8 @@ public String setNameById(String id, String newName){ } public Boolean changeStatusById(String id){ - //return changeStatus(getTaskById(id)); - return null; + return changeStatus(getTaskById(id)); + //return null; } } From eb789be3d2b3cc0be2363f67ebd44eacbc886662 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 15:18:00 +0200 Subject: [PATCH 33/35] Test seeDates() fail --- domain-model.md | 2 +- src/main/java/com/booleanuk/extension/Task.java | 5 +++++ src/main/java/com/booleanuk/extension/TodoList.java | 4 ++++ .../com/booleanuk/extension/TodoListTestExtension.java | 9 +++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/domain-model.md b/domain-model.md index fbc650834..587ba9e6c 100644 --- a/domain-model.md +++ b/domain-model.md @@ -14,7 +14,7 @@ | | | `getTaskById(String id)` | I want to be able to get a task by a unique ID. | Return task | | | | `setNameById(String id, String newName)` | I want to update the name of a task by providing its ID and a new name. | Return new name | | | | `changeStatusById(String id)` | I want to be able to change the status of a task by providing its ID. | Return new status | -| | | `seeDate(Task task)` | I want to be able to see the date and time that I created each task. | Return print of date and time | +| | | `seeDates()` | I want to be able to see the date and time that I created each task. | Return print of dates and times | | `Task` | `String name` | `getName()` | | Return name | | | | `setName(String newName)` | | Set name to newName | | | `String id` | `getId()` | | Return id | diff --git a/src/main/java/com/booleanuk/extension/Task.java b/src/main/java/com/booleanuk/extension/Task.java index f24774c82..eedc3f65e 100644 --- a/src/main/java/com/booleanuk/extension/Task.java +++ b/src/main/java/com/booleanuk/extension/Task.java @@ -1,5 +1,7 @@ package com.booleanuk.extension; +import java.time.LocalDateTime; +import java.util.Date; import java.util.UUID; public class Task { @@ -7,11 +9,13 @@ public class Task { private String name; private String id; private Boolean completed; + private LocalDateTime date; Task(String name){ this.name = name; this.id = generateId(); this.completed = false; + this.date = LocalDateTime.now(); } private String generateId(){ @@ -24,5 +28,6 @@ private String generateId(){ public Boolean getCompleted(){return this.completed;} public void setCompleted(Boolean bool){this.completed = bool;} public String getId(){return this.id;} + public LocalDateTime getDate(){return date;} } diff --git a/src/main/java/com/booleanuk/extension/TodoList.java b/src/main/java/com/booleanuk/extension/TodoList.java index ccf064bc6..f5e30394a 100644 --- a/src/main/java/com/booleanuk/extension/TodoList.java +++ b/src/main/java/com/booleanuk/extension/TodoList.java @@ -143,4 +143,8 @@ public Boolean changeStatusById(String id){ //return null; } + public String seeDates(){ + return ""; + } + } diff --git a/src/test/java/com/booleanuk/extension/TodoListTestExtension.java b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java index d2b68e84f..a70885823 100644 --- a/src/test/java/com/booleanuk/extension/TodoListTestExtension.java +++ b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java @@ -3,6 +3,8 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import java.time.LocalDateTime; + public class TodoListTestExtension { @Test public void exampleTest() { @@ -127,4 +129,11 @@ public void testChangeStatusById(){ todoList.add(taskA); Assertions.assertTrue(todoList.changeStatusById(taskA.getId())); } + + @Test + public void testSeeDates(){ + Task taskA = new Task("taskA"); + todoList.add(taskA); + Assertions.assertEquals(LocalDateTime.now(), todoList.seeDates()); + } } From 9b9a8304f346413c03ba783142769d1f395950b6 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Thu, 15 Aug 2024 15:28:39 +0200 Subject: [PATCH 34/35] Test seeDates() pass --- src/main/java/com/booleanuk/extension/TodoList.java | 12 +++++++++++- .../booleanuk/extension/TodoListTestExtension.java | 5 ++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/booleanuk/extension/TodoList.java b/src/main/java/com/booleanuk/extension/TodoList.java index f5e30394a..9af69eb4b 100644 --- a/src/main/java/com/booleanuk/extension/TodoList.java +++ b/src/main/java/com/booleanuk/extension/TodoList.java @@ -1,5 +1,6 @@ package com.booleanuk.extension; +import java.time.temporal.ChronoUnit; import java.util.ArrayList; public class TodoList { @@ -144,7 +145,16 @@ public Boolean changeStatusById(String id){ } public String seeDates(){ - return ""; + String result = ""; + for(Task task : tasks){ + result += task.getName() + " " + task.getDate().truncatedTo(ChronoUnit.SECONDS).toString(); + + if(tasks.getLast() != task){ + result += " "; + } + } + System.out.println(result); + return result; } } diff --git a/src/test/java/com/booleanuk/extension/TodoListTestExtension.java b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java index a70885823..8f6879205 100644 --- a/src/test/java/com/booleanuk/extension/TodoListTestExtension.java +++ b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java @@ -4,6 +4,7 @@ import org.junit.jupiter.api.Test; import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; public class TodoListTestExtension { @Test @@ -133,7 +134,9 @@ public void testChangeStatusById(){ @Test public void testSeeDates(){ Task taskA = new Task("taskA"); + Task taskB = new Task("taskB"); todoList.add(taskA); - Assertions.assertEquals(LocalDateTime.now(), todoList.seeDates()); + todoList.add(taskB); + Assertions.assertEquals("taskA " + LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS).toString() + " taskB " + LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS).toString(), todoList.seeDates()); } } From 8edde34e69a1cdf48b2c7f92413cbcaaf44daa30 Mon Sep 17 00:00:00 2001 From: Fredrik Haupt Date: Fri, 16 Aug 2024 15:03:39 +0200 Subject: [PATCH 35/35] Retry to change name so that I can be seen on github --- .../java/com/booleanuk/extension/TodoListTestExtension.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/booleanuk/extension/TodoListTestExtension.java b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java index 8f6879205..fbac99977 100644 --- a/src/test/java/com/booleanuk/extension/TodoListTestExtension.java +++ b/src/test/java/com/booleanuk/extension/TodoListTestExtension.java @@ -137,6 +137,7 @@ public void testSeeDates(){ Task taskB = new Task("taskB"); todoList.add(taskA); todoList.add(taskB); - Assertions.assertEquals("taskA " + LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS).toString() + " taskB " + LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS).toString(), todoList.seeDates()); + Assertions.assertEquals("taskA " + LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS).toString() + + " taskB " + LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS).toString(), todoList.seeDates()); } }