package project; import hhn.temp.project.Main; import hhn.temp.project.TaskManager; import hhn.temp.project.Task; import hhn.temp.project.TaskStatus; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import java.util.List; import static org.junit.jupiter.api.Assertions.*; public class GoodCaseTaskTest { private TaskManager taskManager; private String user = "hhn"; private String password = "!9oSmhsiwYO.m)_x"; private String db = "hhn"; private String host = "nas.local"; @BeforeEach public void setup() { Main main = new Main(); } @Test @DisplayName("Create a new TaskManager and test Connecton") public void assertCreateNewTaskManager() { assertDoesNotThrow(() -> taskManager = new TaskManager(user, password, db, host)); assertDoesNotThrow(() -> taskManager.resetTest()); String name = "Name"; String description = "Description"; assertDoesNotThrow(() -> taskManager.createTask(name, description)); assertDoesNotThrow(() -> taskManager.resetTest()); } @Test @DisplayName("Create a new Task") public void assertCreateNewTask() { taskManager = new TaskManager(user, password, db, host); assertDoesNotThrow(() -> taskManager.resetTest()); String name = "Name"; String description = "Description"; Task task = taskManager.createTask(name, description); assertNotNull(task); assertEquals(name, task.getName()); assertEquals(description, task.getDescription()); assertEquals(TaskStatus.OPEN, task.getStatus()); assertDoesNotThrow(() -> taskManager.resetTest()); } @Test @DisplayName("Delete Task") public void assertDeleteTask(){ taskManager = new TaskManager(user, password, db, host); assertDoesNotThrow(() -> taskManager.resetTest()); String name = "Name"; String description = "Description"; String deletingTask = "Name"; Task task = taskManager.createTask(name, description); List tasklist = taskManager.getTaskList(); assertNotNull(tasklist); assertTrue(tasklist.stream().anyMatch( t -> t.getName().equals(deletingTask))); Task dbTask = taskManager.getTask(name); assertNotNull(dbTask); assertEquals(task.getName(), dbTask.getName()); assertEquals(task.getTaskID(), dbTask.getTaskID()); assertEquals(task.getStatus(), dbTask.getStatus()); taskManager.deleteTask(deletingTask); assertDoesNotThrow(() -> taskManager.resetTest()); } @Test @DisplayName("Check TaskList if Task there") public void assertCheckTaskListForTask() { taskManager = new TaskManager(user, password, db, host); assertDoesNotThrow(() -> taskManager.resetTest()); String name = "Name"; String description = "Description"; Task task = taskManager.createTask(name, description); List taskList = taskManager.getTaskList(); assertNotNull(taskList); assertTrue(taskList.stream().anyMatch(t -> t.getName().equals(task.getName()))); Task dbTask = taskManager.getTask(name); assertNotNull(dbTask); assertEquals(task.getName(), dbTask.getName()); assertEquals(task.getTaskID(), dbTask.getTaskID()); assertEquals(task.getStatus(), dbTask.getStatus()); Task dbTaskWithId = taskManager.getTask(task.getTaskID()); assertNotNull(dbTaskWithId); assertEquals(task.getName(), dbTaskWithId.getName()); assertEquals(task.getTaskID(), dbTaskWithId.getTaskID()); assertEquals(task.getStatus(), dbTaskWithId.getStatus()); assertDoesNotThrow(() -> taskManager.resetTest()); } @Test @DisplayName("Edit Task") public void assertEditATask() { taskManager = new TaskManager(user, password, db, host); assertDoesNotThrow(() -> taskManager.resetTest()); String name = "Name"; String description = "Description"; //String newName = "Name2"; String newDescription = "Description2"; Task task = taskManager.createTask(name, description); assertNotNull(task); assertEquals(description, task.getDescription()); task.setDescription(newDescription); assertEquals(newDescription, task.getDescription()); assertEquals(TaskStatus.OPEN, task.getStatus()); task.setStatus(TaskStatus.INPROCESS); assertEquals(TaskStatus.INPROCESS, task.getStatus()); assertDoesNotThrow(() -> taskManager.resetTest()); } @Test @DisplayName("Set Author of a Task") public void assertSetAuthorOfATask() { taskManager = new TaskManager(user, password, db, host); assertDoesNotThrow(() -> taskManager.resetTest()); String name = "Name"; String description = "Description"; String workerName = "worker"; //String newName = "Name2"; String newDescription = "Description2"; Task task = taskManager.createTask(name, description); assertNotNull(task); assertEquals(TaskStatus.OPEN, task.getStatus()); assertDoesNotThrow(() -> task.setWorker(workerName)); assertEquals(workerName, task.getWorker()); assertEquals(TaskStatus.INPROCESS, task.getStatus()); assertDoesNotThrow(() -> taskManager.resetTest()); } }