Files
GSE2TaskTracker/test/project/BadCaseTaskTest.java
Jan-Philipp Luithardt c775b4ab96
Some checks are pending
Gradle CI with Jacoco / build (push) Has started running
add db
2025-12-06 20:08:03 +01:00

134 lines
5.0 KiB
Java

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.SQLNoConectionException;
import hhn.temp.project.expections.SQLStatmentException;
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;
private String user = "hhn";
private String password = "!9oSmhsiwYO.m)_x";
private String db = "hhn";
private String host = "localhost";
@BeforeEach
public void setup() {
Main main = new Main();
}
@Test
@DisplayName("Create a new TaskManager and test Connecton")
public void assertCreateNewTaskManager() {
assertThrows(SQLNoConectionException.class,() -> taskManager = new TaskManager("deep", "deep", db, host));
}
@Test
@DisplayName("Assert an IllegalArgumentException when you create a new Task with no or wrong Name, Description")
public void assertExceptionOnCreateNewTask() {
taskManager = new TaskManager(user, password, db, host);
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"));
assertDoesNotThrow(() -> taskManager.resetTest());
}
@Test
@DisplayName("Assert an IllegalArgumentException when you create a new Task with the same Name of a exits Task")
public void assertExceptionOnCreateNewTaskWithExitsName() {
taskManager = new TaskManager(user, password, db, host);
String name = "Name";
String description = "Description";
assertDoesNotThrow(() -> taskManager.createTask(name, description));
assertThrows(TaskAlreadyExistsException.class, () -> taskManager.createTask(name, description));
assertDoesNotThrow(() -> taskManager.resetTest());
}
@Test
@DisplayName("Assert an IllegalArgumentException when you edit a exits Task")
public void assertExceptionOnEditATask() {
taskManager = new TaskManager(user, password, db, host);
String name = "Name";
String description = "Description";
Task task = taskManager.createTask(name, description);
assertThrows(IllegalArgumentException.class, () -> task.setDescription(null));
assertThrows(IllegalArgumentException.class, () -> task.setStatus(null));
assertDoesNotThrow(() -> taskManager.resetTest());
}
@Test
@DisplayName("Assert an IllegalArgumentException when calling a non-Existing Task")
public void assertExceptionOnCallingANonextistingTask (){
taskManager = new TaskManager(user, password, db, host);
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));
assertDoesNotThrow(() -> taskManager.resetTest());
}
@Test
@DisplayName("Assert an IllegalArgumentException when delete a existing Task with wrong arguments")
public void assertExceptionOnDeletingTask (){
taskManager = new TaskManager(user, password, db, host);
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));
assertDoesNotThrow(() -> taskManager.resetTest());
}
@Test
@DisplayName("Get a Exeption by setWorker and getWorker")
public void assertExeptionBySetAndGetAuthorOfATask() {
taskManager = new TaskManager(user, password, db, host);
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#-"));
assertDoesNotThrow(() -> taskManager.resetTest());
}
}