package project; import hhn.temp.project.Main; import hhn.temp.project.Task; import hhn.temp.project.TaskManager; import hhn.temp.project.expections.TaskAlreadyExistsException; 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")); } @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)); } }