From 76025e86dc4cdf4cdba9dd9a0d8f43af8f9866b9 Mon Sep 17 00:00:00 2001 From: Patrik Michal Vlcek <493059@mail.muni.cz> Date: Mon, 31 Jan 2022 10:16:13 +0100 Subject: [PATCH] implemented unit tests --- .../project/db/subtask/SubTaskDaoTest.java | 73 +++++++++++++++++-- 1 file changed, 65 insertions(+), 8 deletions(-) diff --git a/src/test/java/cz/muni/fi/pv168/project/db/subtask/SubTaskDaoTest.java b/src/test/java/cz/muni/fi/pv168/project/db/subtask/SubTaskDaoTest.java index 711c0d4d..a27ae604 100644 --- a/src/test/java/cz/muni/fi/pv168/project/db/subtask/SubTaskDaoTest.java +++ b/src/test/java/cz/muni/fi/pv168/project/db/subtask/SubTaskDaoTest.java @@ -1,5 +1,6 @@ package cz.muni.fi.pv168.project.db.subtask; +import cz.muni.fi.pv168.project.data.task.SubTask; import cz.muni.fi.pv168.project.data.task.Task; import cz.muni.fi.pv168.project.db.category.CategoryDao; import cz.muni.fi.pv168.project.db.categorytime.CategoryTimeDao; @@ -15,7 +16,10 @@ import org.junit.jupiter.api.Test; import java.sql.SQLException; import java.time.LocalDate; +import java.util.Arrays; +import java.util.LinkedList; +import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; class SubTaskDaoTest { @@ -46,32 +50,85 @@ class SubTaskDaoTest { @AfterEach void cleanUp() { - taskManager.dropTable(); subTaskManager.dropTable(); + taskManager.dropTable(); } @Test - void getAllEntitiesFor() { - + void getAllEntitiesFor_ExistingTaskWithSubtasks_SubTasksFromTaskReturned() { + var task = taskBuilder.build(); + taskDao.add(task); + var subTasks = setupSubtasks(task.getId()); + assertThat(subTaskDao.getAllEntitiesFor(task.getId())).isEqualTo(subTasks); } @Test - void deleteAllEntitiesFor() { + void deleteAllEntitiesFor_ExistingTaskWIthSubTasks_AllSubtasksDeleted() { + var task = taskBuilder.build(); + taskDao.add(task); + var subTasks = setupSubtasks(task.getId()); + subTaskDao.deleteAllEntitiesFor(task.getId()); + assertThat(subTaskDao.getAllEntitiesFor(task.getId())).isEmpty(); } @Test - void addEntityFor() { + void addEntityFor_ExistingTaskWithoutSubTasks_SubTasksAdded() { + var task = taskBuilder.build(); + taskDao.add(task); + var subTasks = new LinkedList<SubTask>(Arrays.asList( + new SubTask("A", false), + new SubTask("B", true), + new SubTask("C", false))); + for (var subTask : + subTasks) { + subTaskDao.addEntityFor(task.getId(), subTask); + } + assertThat(subTaskDao.getAllEntitiesFor(task.getId())).isEqualTo(subTasks); } @Test - void update() { + void update_ExistingSubTask_SubTaskUpdated() { + var task = taskBuilder.build(); + taskDao.add(task); + var subTasks = setupSubtasks(task.getId()); + subTasks.get(0).setTitle("New TITLE"); + subTasks.get(0).toggleIsCompleted(); + subTaskDao.update(subTasks.get(0)); + assertThat(subTaskDao.getAllEntitiesFor(task.getId())).isEqualTo(subTasks); } @Test - void delete() { + void delete_ExistingSubtask_SubTaskDeleted() { + var task = taskBuilder.build(); + taskDao.add(task); + var subTasks = setupSubtasks(task.getId()); + subTaskDao.delete(subTasks.get(0)); + subTasks.remove(0); + assertThat(subTaskDao.getAllEntitiesFor(task.getId())).isEqualTo(subTasks); } @Test - void fetch() { + void fetch_ExistingSubTask_SubTaskFetched() { + var task = taskBuilder.build(); + taskDao.add(task); + var subTasks = setupSubtasks(task.getId()); + var fetchedSubtask = subTaskDao.fetch(subTasks.get(0).getId()); + assertThat(fetchedSubtask).isEqualTo(subTasks.get(0)); + } + + private LinkedList<SubTask> setupSubtasks(long taskId) { + var subTasks = new LinkedList<SubTask>(Arrays.asList( + new SubTask("Testing subtask", false), + new SubTask("Testing subtask", false), + new SubTask("Testing subtask", false), + new SubTask("Testing subtask", false), + new SubTask("Testing subtask", false)) + ); + for (var subTask : + subTasks) { + subTaskDao.addEntityFor(taskId, subTask); + + } + return subTasks; } } \ No newline at end of file -- GitLab