package project; import hhn.temp.project.Main; import hhn.temp.project.Task; import hhn.temp.project.TaskManager; import hhn.temp.project.TaskStatus; import hhn.temp.project.expections.TaskAlreadyExistsException; import hhn.temp.project.expections.TaskHasNoWorkerException; 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 BadCaseTaskTest { private TaskManager taskManager; @BeforeEach public void setup() { Main main = new Main(); taskManager = new TaskManager(); } @Test @DisplayName("Assert an IllegalArgumentException when you create a new Task with no or wrong Name, Description") public void assertExceptionOnCreateNewTask() { assertThrows(IllegalArgumentException.class,() -> taskManager.createTask("", null)); assertThrows(IllegalArgumentException.class,() -> taskManager.createTask(null, "")); assertThrows(IllegalArgumentException.class,() -> taskManager.createTask(null, null)); assertThrows(IllegalArgumentException.class,() -> taskManager.createTask("", "")); assertThrows(IllegalArgumentException.class,() -> taskManager.createTask("", "test")); assertThrows(IllegalArgumentException.class,() -> taskManager.createTask("ä#eadsew2", "test")); } @Test @DisplayName("Assert an IllegalArgumentException when you create a new Task with the same Name of a exits Task") public void assertExceptionOnCreateNewTaskWithExitsName() { String name = "Name"; String description = "Description"; assertDoesNotThrow(() -> taskManager.createTask(name, description)); assertThrows(TaskAlreadyExistsException.class, () -> taskManager.createTask(name, description)); } @Test @DisplayName("Assert an IllegalArgumentException when you edit a exits Task") public void assertExceptionOnEditATask() { String name = "Name"; String description = "Description"; Task task = taskManager.createTask(name, description); assertThrows(IllegalArgumentException.class, () -> task.setDescription(null)); assertThrows(IllegalArgumentException.class, () -> task.setStatus(null)); } @Test @DisplayName("Assert an IllegalArgumentException when calling a non-Existing Task") public void assertExceptionOnCallingANonextistingTask (){ String wrongName = "Manager"; String name = "Name"; String description = "Description"; Task task = taskManager.createTask(name, description); assertThrows(IllegalArgumentException.class, () -> taskManager.getTask(wrongName)); assertThrows(IllegalArgumentException.class, () -> taskManager.getTask(23)); } @Test @DisplayName("Assert an IllegalArgumentException when delete a existing Task with wrong arguments") public void assertExceptionOnDeletingTask (){ String wrongName = "Manager"; String name = "Name"; String description = "Description"; Task task = taskManager.createTask(name, description); assertThrows(IllegalArgumentException.class, () -> taskManager.deleteTask(null)); assertThrows(IllegalArgumentException.class, () -> taskManager.deleteTask("")); assertThrows(IllegalArgumentException.class, () -> taskManager.deleteTask(wrongName)); } @Test @DisplayName("Get a Exeption by setWorker and getWorker") public void assertExeptionBySetAndGetAuthorOfATask() { String name = "Name"; String description = "Description"; String workerName = "worker"; Task task = taskManager.createTask(name, description); assertThrows(TaskHasNoWorkerException.class, () -> task.getWorker()); assertThrows(IllegalArgumentException.class, () -> task.setWorker(null)); assertThrows(IllegalArgumentException.class, () -> task.setWorker("")); assertThrows(IllegalArgumentException.class, () -> task.setWorker("ewrgi43rfoiw2öa#-")); } }