Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import static org.springframework.http.HttpStatus.CREATED;

import com.poliveira.javaverse.model.SimpleTaskVO;
import com.poliveira.javaverse.model.SuccessVO;
import com.poliveira.javaverse.model.TaskVO;
import com.poliveira.javaverse.service.TaskService;
import java.util.List;
Expand Down Expand Up @@ -41,9 +42,11 @@ public TaskVO updateTask(@PathVariable Long id, @RequestBody SimpleTaskVO taskVO
}

@DeleteMapping("/{id}")
public void deleteTask(@PathVariable Long id) {
// @TODO return object with delete status
taskService.deleteTask(id);
public SuccessVO deleteTask(@PathVariable Long id) {
return SuccessVO.builder()
.success(taskService.deleteTask(id))
.message("Task deleted successfully")
.build();
}

@GetMapping
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.poliveira.javaverse.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SuccessVO {
private boolean success;
private String message;
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,12 @@ public TaskVO updateTask(Long id, SimpleTaskVO task) {
return null;
}

public void deleteTask(Long id) {
taskRepository.deleteById(id);
public boolean deleteTask(Long id) {
try {
taskRepository.deleteById(id);
return true;
} catch (Exception e) {
return false;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
import static com.poliveira.javaverse.model.Status.TODO;
import static java.lang.System.currentTimeMillis;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;

import com.poliveira.javaverse.model.SimpleTaskVO;
import com.poliveira.javaverse.model.TaskVO;
import com.poliveira.javaverse.repository.TaskRepository;
import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
Expand All @@ -26,13 +27,11 @@ public void setUp() {}

@Test
public void testCreateTask() {
SimpleTaskVO task =
SimpleTaskVO.builder().title("New Task").description("This is a new task").build();
TaskVO mockTaskVO =
TaskVO.builder()
.id(1L)
.title(task.getTitle())
.description(task.getDescription())
.title("New Task")
.description("This is a new task")
.status(TODO)
.createdAt(currentTimeMillis())
.updatedAt(currentTimeMillis())
Expand All @@ -42,8 +41,89 @@ public void testCreateTask() {

TaskVO taskVO = taskRepository.save(mockTaskVO);
assertTrue(taskVO.getId() > 0);
assertEquals(task.getTitle(), taskVO.getTitle());
assertEquals(task.getDescription(), taskVO.getDescription());
assertEquals(mockTaskVO.getTitle(), taskVO.getTitle());
assertEquals(mockTaskVO.getDescription(), taskVO.getDescription());
assertEquals(TODO, taskVO.getStatus());
}

@Test
public void testFindAllTasks() {
TaskVO task1 =
TaskVO.builder()
.id(1L)
.title("Task 1")
.description("Description 1")
.status(TODO)
.createdAt(currentTimeMillis())
.updatedAt(currentTimeMillis())
.build();

TaskVO task2 =
TaskVO.builder()
.id(2L)
.title("Task 2")
.description("Description 2")
.status(TODO)
.createdAt(currentTimeMillis())
.updatedAt(currentTimeMillis())
.build();

when(taskRepository.findAll()).thenReturn(List.of(task1, task2));

List<TaskVO> tasks = taskRepository.findAll();
assertEquals(2, tasks.size());
assertEquals(task1.getTitle(), tasks.get(0).getTitle());
assertEquals(task2.getTitle(), tasks.get(1).getTitle());
}

@Test
public void testFindById() {
TaskVO task1 =
TaskVO.builder()
.id(1L)
.title("Task 1")
.description("Description 1")
.status(TODO)
.createdAt(currentTimeMillis())
.updatedAt(currentTimeMillis())
.build();

when(taskRepository.findById(1L)).thenReturn(java.util.Optional.of(task1));

TaskVO foundTask = taskRepository.findById(1L).orElse(null);
assertNotNull(foundTask);
assertEquals(task1.getTitle(), foundTask.getTitle());
assertEquals(task1.getDescription(), foundTask.getDescription());
}

@Test
public void testUpdateTask() {
TaskVO mockTaskVO =
TaskVO.builder()
.id(1L)
.title("New Task")
.description("This is an new task")
.status(TODO)
.createdAt(currentTimeMillis())
.updatedAt(currentTimeMillis())
.build();

when(taskRepository.save(any(TaskVO.class))).thenReturn(mockTaskVO);

TaskVO taskVO1 = taskRepository.save(mockTaskVO);
assertTrue(taskVO1.getId() > 0);
assertEquals(mockTaskVO.getTitle(), taskVO1.getTitle());
assertEquals(mockTaskVO.getDescription(), taskVO1.getDescription());
assertEquals(TODO, taskVO1.getStatus());

// update the task
mockTaskVO.setTitle("Updated Task");
when(taskRepository.save(any(TaskVO.class))).thenReturn(mockTaskVO);

TaskVO taskVO2 = taskRepository.save(mockTaskVO);
assertTrue(taskVO2.getId() > 0);
assertEquals(mockTaskVO.getTitle(), taskVO2.getTitle());
assertEquals(mockTaskVO.getDescription(), taskVO2.getDescription());
assertEquals(TODO, taskVO2.getStatus());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
import com.poliveira.javaverse.model.TaskVO;
import com.poliveira.javaverse.repository.TaskRepository;
import com.poliveira.javaverse.service.TaskService;
import org.junit.jupiter.api.BeforeEach;
import java.util.List;
import java.util.Optional;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
Expand All @@ -22,16 +23,8 @@
public class TasksServiceTest {

@Mock private TaskRepository taskRepository;

@InjectMocks private TaskService taskService;

@BeforeEach
public void setUp() {
SimpleTaskVO task =
SimpleTaskVO.builder().title("Test Task").description("This is a test task").build();
taskService.createTask(task);
}

@Test
public void testCreateTask() {
SimpleTaskVO task =
Expand All @@ -54,4 +47,54 @@ public void testCreateTask() {
assertEquals(task.getDescription(), taskVO.getDescription());
assertEquals(TODO, taskVO.getStatus());
}

@Test
public void testFindAll() {
TaskVO task =
TaskVO.builder()
.id(1L)
.title("Test Task")
.description("This is a test task")
.status(TODO)
.createdAt(currentTimeMillis())
.updatedAt(currentTimeMillis())
.build();

when(taskRepository.findAll()).thenReturn(List.of(task));

List<TaskVO> tasks = taskService.getAllTasks();
assertEquals(1, tasks.size());
assertEquals(task.getTitle(), tasks.getFirst().getTitle());
}

@Test
public void testUpdateTask() {
TaskVO mockExistingTask =
TaskVO.builder()
.id(1L)
.title("Old Task")
.description("This is an old task")
.status(TODO)
.createdAt(currentTimeMillis())
.updatedAt(currentTimeMillis())
.build();
TaskVO mockUpdatedTask =
TaskVO.builder()
.id(1L)
.title("Updated Task")
.description("This is an updated task")
.status(TODO)
.createdAt(currentTimeMillis())
.updatedAt(currentTimeMillis())
.build();

when(taskRepository.findById(1L)).thenReturn(Optional.of(mockExistingTask));
when(taskRepository.save(any(TaskVO.class))).thenReturn(mockUpdatedTask);

SimpleTaskVO task =
SimpleTaskVO.builder().title("Updated Task").description("This is an updated task").build();
TaskVO updatedTask = taskService.updateTask(1L, task);
assertEquals(task.getTitle(), updatedTask.getTitle());
assertEquals(task.getDescription(), updatedTask.getDescription());
}
}