@@ -37,4 +37,51 @@ void getTask_returnsEmptyForUnknownId() {
3737
3838 assertTrue (result .isEmpty ());
3939 }
40+
41+ @ Test
42+ void completeTask_setsStatusToDoneForValidId () {
43+ Task created = taskService .addTask ("Buy groceries" , "Milk, eggs, bread" );
44+
45+ Optional <Task > result = taskService .completeTask (created .getId ());
46+
47+ assertTrue (result .isPresent ());
48+ assertEquals (TaskStatus .DONE , result .get ().getStatus ());
49+ assertEquals (created .getId (), result .get ().getId ());
50+ }
51+
52+ @ Test
53+ void completeTask_returnsEmptyForUnknownId () {
54+ Optional <Task > result = taskService .completeTask ("non-existent-id" );
55+
56+ assertTrue (result .isEmpty ());
57+ }
58+
59+ @ Test
60+ void deleteTask_setsStatusToDeletedForValidId () {
61+ Task created = taskService .addTask ("Buy groceries" , "Milk, eggs, bread" );
62+
63+ Optional <Task > result = taskService .deleteTask (created .getId ());
64+
65+ assertTrue (result .isPresent ());
66+ assertEquals (TaskStatus .DELETED , result .get ().getStatus ());
67+ assertEquals (created .getId (), result .get ().getId ());
68+ }
69+
70+ @ Test
71+ void deleteTask_returnsEmptyForUnknownId () {
72+ Optional <Task > result = taskService .deleteTask ("non-existent-id" );
73+
74+ assertTrue (result .isEmpty ());
75+ }
76+
77+ @ Test
78+ void deleteTask_handlesAlreadyDeletedTask () {
79+ Task created = taskService .addTask ("Buy groceries" , "Milk, eggs, bread" );
80+ taskService .deleteTask (created .getId ()); // First delete
81+
82+ Optional <Task > result = taskService .deleteTask (created .getId ()); // Second delete
83+
84+ assertTrue (result .isPresent ());
85+ assertEquals (TaskStatus .DELETED , result .get ().getStatus ());
86+ }
4087}
0 commit comments