Skip to content

Commit 96d3170

Browse files
committed
add task service tests
1 parent f62060b commit 96d3170

1 file changed

Lines changed: 118 additions & 0 deletions

File tree

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
package com.taskmanagerapi;
2+
3+
import com.taskmanagerapi.dto.TaskResponse;
4+
import com.taskmanagerapi.exception.TaskNotFoundException;
5+
import com.taskmanagerapi.model.Task;
6+
import com.taskmanagerapi.model.TaskStatus;
7+
import com.taskmanagerapi.repository.TaskRepository;
8+
import com.taskmanagerapi.service.TaskService;
9+
import org.junit.jupiter.api.Test;
10+
import org.junit.jupiter.api.extension.ExtendWith;
11+
import org.mockito.InjectMocks;
12+
import org.mockito.Mock;
13+
import org.mockito.junit.jupiter.MockitoExtension;
14+
15+
import java.util.List;
16+
import java.util.Optional;
17+
18+
import static org.junit.jupiter.api.Assertions.*;
19+
import static org.mockito.Mockito.*;
20+
21+
@ExtendWith(MockitoExtension.class)
22+
class TaskServiceTest {
23+
24+
@Mock
25+
private TaskRepository taskRepository;
26+
27+
@InjectMocks
28+
private TaskService taskService;
29+
30+
@Test
31+
void addTask_returnsTaskResponse() {
32+
Task task = new Task("Buy groceries", "Milk, eggs, bread");
33+
when(taskRepository.save(any(Task.class))).thenReturn(task);
34+
35+
TaskResponse response = taskService.addTask("Buy groceries", "Milk, eggs, bread");
36+
37+
assertEquals("Buy groceries", response.getName());
38+
assertEquals(TaskStatus.CREATED, response.getStatus());
39+
}
40+
41+
@Test
42+
void getTask_returnsTaskResponse_whenFound() {
43+
Task task = new Task("Buy groceries", "Milk, eggs, bread");
44+
when(taskRepository.findById(task.getId())).thenReturn(Optional.of(task));
45+
46+
TaskResponse response = taskService.getTask(task.getId());
47+
48+
assertEquals(task.getId(), response.getId());
49+
}
50+
51+
@Test
52+
void getTask_throwsTaskNotFoundException_whenNotFound() {
53+
when(taskRepository.findById("bad-id")).thenReturn(Optional.empty());
54+
55+
assertThrows(TaskNotFoundException.class, () -> taskService.getTask("bad-id"));
56+
}
57+
58+
@Test
59+
void getAllTasks_returnsListOfTaskResponses() {
60+
List<Task> tasks = List.of(
61+
new Task("Task one", "Description one"),
62+
new Task("Task two", "Description two")
63+
);
64+
when(taskRepository.findAll()).thenReturn(tasks);
65+
66+
List<TaskResponse> responses = taskService.getAllTasks();
67+
68+
assertEquals(2, responses.size());
69+
}
70+
71+
@Test
72+
void completeTask_setsStatusToDone() {
73+
Task task = new Task("Buy groceries", "Milk, eggs, bread");
74+
when(taskRepository.findById(task.getId())).thenReturn(Optional.of(task));
75+
76+
TaskResponse response = taskService.completeTask(task.getId());
77+
78+
assertEquals(TaskStatus.DONE, response.getStatus());
79+
}
80+
81+
@Test
82+
void deleteTask_setsStatusToDeleted() {
83+
Task task = new Task("Buy groceries", "Milk, eggs, bread");
84+
when(taskRepository.findById(task.getId())).thenReturn(Optional.of(task));
85+
86+
TaskResponse response = taskService.deleteTask(task.getId());
87+
88+
assertEquals(TaskStatus.DELETED, response.getStatus());
89+
}
90+
91+
@Test
92+
void undoDelete_setsStatusToCreated() {
93+
Task task = new Task("Buy groceries", "Milk, eggs, bread");
94+
task.setStatus(TaskStatus.DELETED);
95+
when(taskRepository.findById(task.getId())).thenReturn(Optional.of(task));
96+
97+
TaskResponse response = taskService.undoDelete(task.getId());
98+
99+
assertEquals(TaskStatus.CREATED, response.getStatus());
100+
}
101+
102+
@Test
103+
void searchTaskByName_returnsTaskResponse_whenFound() {
104+
Task task = new Task("Buy groceries", "Milk, eggs, bread");
105+
when(taskRepository.findTaskByName("Buy groceries")).thenReturn(Optional.of(task));
106+
107+
TaskResponse response = taskService.searchTaskByName("Buy groceries");
108+
109+
assertEquals("Buy groceries", response.getName());
110+
}
111+
112+
@Test
113+
void searchTaskByName_throwsTaskNotFoundException_whenNotFound() {
114+
when(taskRepository.findTaskByName("unknown")).thenReturn(Optional.empty());
115+
116+
assertThrows(TaskNotFoundException.class, () -> taskService.searchTaskByName("unknown"));
117+
}
118+
}

0 commit comments

Comments
 (0)