package hhn.temp.project; import hhn.temp.project.provider.DatabaseManager; import hhn.temp.project.provider.SimpleDatabaseManager; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.Collection; public class DatabaseGoodCasesTest { private DatabaseManager databaseManager; @BeforeEach public void setup() throws SQLException, IOException { databaseManager = new SimpleDatabaseManager<>(); databaseManager.connect(); databaseManager.clearDatabase(); } @Test @DisplayName("Assert that the TestClass could be inserted into the database") public void assertGetTestClass() throws SQLException { databaseManager.connect(); Task task = new Task(1, 1, "hi", "hi"); databaseManager.saveObject(task); Task taskNew = databaseManager.getObject(1); assertEquals(task.getTaskId(), taskNew.getTaskId()); assertEquals(task.getName(), taskNew.getName()); assertEquals(task.getDescription(), taskNew.getDescription()); assertEquals(task.getWorkerId(), taskNew.getWorkerId()); assertEquals(task.getTaskState(), taskNew.getTaskState()); databaseManager.close(); } @Test @DisplayName("Assert that an inserted and deleted task is not there anymore") public void assertDeleteTest() throws SQLException { databaseManager.connect(); Task task = new Task(9, 1, "hi", "hi"); databaseManager.saveObject(task); databaseManager.deleteObject(9); databaseManager.getObject(9); databaseManager.close(); } @Test @DisplayName("Assert that a simple Task could be inserted into the database") public void assertInsertTask() throws SQLException { Task testTask = new Task(1, 1, "Hello World", "Description"); databaseManager.connect(); databaseManager.saveObject(testTask); databaseManager.close(); } @Test @DisplayName("Assert that multiple Tasks could be inserted into the database") public void assertInsertMultipleTasks() throws SQLException { Task testTaskZero = new Task(1, 1, "Hello", "Description"); Task testTaskOne = new Task(2, 2, "World", "Description"); Task testTaskTwo = new Task(3, 3, "Hello World", "Description"); Collection tasks = new ArrayList<>(); tasks.add(testTaskZero); tasks.add(testTaskOne); tasks.add(testTaskTwo); databaseManager.connect(); databaseManager.saveObjects(tasks); databaseManager.close(); } @Test @DisplayName("Assert insert object and update it") public void assertInsertUpdateTask() throws SQLException { int taskId = 1; Task testTask = new Task(taskId, 1, "Hello World", "Description"); Task newTask = new Task(taskId, 1, "No World", "Description"); databaseManager.connect(); databaseManager.saveObject(testTask); newTask = databaseManager.updateObject(testTask.getTaskId(), newTask); assertNotNull(testTask); assertNotEquals(testTask.getDescription(), newTask.getDescription()); assertEquals(testTask.getTaskId(), newTask.getTaskId()); databaseManager.close(); } }