database #3
@@ -10,6 +10,7 @@ public interface DatabaseManager<E> extends Database {
|
|||||||
public void saveObjects(Collection<E> objects) throws SQLException;
|
public void saveObjects(Collection<E> objects) throws SQLException;
|
||||||
public Collection<E> getObjects() throws SQLException;
|
public Collection<E> getObjects() throws SQLException;
|
||||||
public void saveObject(E object) throws SQLException;
|
public void saveObject(E object) throws SQLException;
|
||||||
public E getObject(int id) throws SQLException;
|
public E getObject(int taskId) throws SQLException;
|
||||||
public void deleteObject(int id) throws SQLException;
|
public void deleteObject(int taskId) throws SQLException;
|
||||||
|
public E updateObject(int taskId, E object) throws SQLException;
|
||||||
}
|
}
|
||||||
@@ -2,11 +2,11 @@ package hhn.temp.project.provider;
|
|||||||
|
|
||||||
import hhn.temp.project.Task;
|
import hhn.temp.project.Task;
|
||||||
import hhn.temp.project.TaskState;
|
import hhn.temp.project.TaskState;
|
||||||
import jdk.jshell.spi.ExecutionControl;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class SimpleDatabaseManager<E> implements DatabaseManager<E> {
|
public class SimpleDatabaseManager<E> implements DatabaseManager<E> {
|
||||||
|
|
||||||
@@ -78,33 +78,42 @@ public class SimpleDatabaseManager<E> implements DatabaseManager<E> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public E getObject(int id) throws SQLException {
|
public E getObject(int taskId) throws SQLException {
|
||||||
String query = getQuery(QueryMode.SELECT);
|
String query = getQuery(QueryMode.SELECT);
|
||||||
Task task = null;
|
Task task = null;
|
||||||
|
|
||||||
try (PreparedStatement ps = connection.prepareStatement(query)) {
|
PreparedStatement ps = connection.prepareStatement(query);
|
||||||
ps.setInt(1, id);
|
ps.setInt(1, taskId);
|
||||||
|
|
||||||
ResultSet resultSet = ps.executeQuery();
|
ResultSet resultSet = ps.executeQuery();
|
||||||
|
|
||||||
if (resultSet.next()) {
|
if (resultSet.next()) {
|
||||||
|
|
||||||
task = new Task(
|
task = new Task(
|
||||||
resultSet.getInt("taskid"),
|
resultSet.getInt("taskid"),
|
||||||
resultSet.getInt("workerid"),
|
resultSet.getInt("workerid"),
|
||||||
resultSet.getString("name"),
|
resultSet.getString("name"),
|
||||||
resultSet.getString("description")
|
resultSet.getString("description")
|
||||||
);
|
);
|
||||||
task.setTaskState(intToTaskState(resultSet.getInt("taskstate")));
|
task.setTaskState(intToTaskState(resultSet.getInt("taskstate")));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (E) task;
|
return (E) task;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteObject(int id) throws SQLException {
|
public void deleteObject(int taskId) throws SQLException {
|
||||||
throw new SQLException("Not implemented yet");
|
String query = getQuery(QueryMode.DELETE);
|
||||||
|
|
||||||
|
try (PreparedStatement ps = connection.prepareStatement(query)) {
|
||||||
|
ps.setInt(1, taskId);
|
||||||
|
ps.executeUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public E updateObject(int taskId, E object) throws SQLException {
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import org.junit.jupiter.api.BeforeEach;
|
|||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
@@ -27,7 +28,21 @@ public class DatabaseBadCasesTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setup() {
|
public void setup() throws SQLException, IOException {
|
||||||
databaseManager = new SimpleDatabaseManager<>();
|
databaseManager = new SimpleDatabaseManager<>();
|
||||||
|
databaseManager.connect();
|
||||||
|
databaseManager.clearDatabase();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("Gets an object that may not be existent")
|
||||||
|
public void assertObjectShouldNotBeExistent() throws SQLException {
|
||||||
|
assertNull(databaseManager.getObject(999));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("Updates an object that does not exist")
|
||||||
|
public void assertUpdateNonExistentObject() throws SQLException {
|
||||||
|
assertNull(databaseManager.updateObject(123, new Task(1, 2, "", "")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,6 @@ package hhn.temp.project;
|
|||||||
|
|
||||||
import hhn.temp.project.provider.DatabaseManager;
|
import hhn.temp.project.provider.DatabaseManager;
|
||||||
import hhn.temp.project.provider.SimpleDatabaseManager;
|
import hhn.temp.project.provider.SimpleDatabaseManager;
|
||||||
import jdk.jshell.spi.ExecutionControl;
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@@ -17,19 +16,17 @@ import java.util.Collection;
|
|||||||
public class DatabaseGoodCasesTest {
|
public class DatabaseGoodCasesTest {
|
||||||
|
|
||||||
private DatabaseManager<Task> databaseManager;
|
private DatabaseManager<Task> databaseManager;
|
||||||
private AssignmentManager manager;
|
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setup() throws SQLException, IOException {
|
public void setup() throws SQLException, IOException {
|
||||||
databaseManager = new SimpleDatabaseManager<>();
|
databaseManager = new SimpleDatabaseManager<>();
|
||||||
databaseManager.connect();
|
databaseManager.connect();
|
||||||
databaseManager.clearDatabase();
|
databaseManager.clearDatabase();
|
||||||
manager = new AssignmentManager();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("Assert that the TestClass could be inserted into the database")
|
@DisplayName("Assert that the TestClass could be inserted into the database")
|
||||||
public void assertGetTestClass() throws SQLException, IOException {
|
public void assertGetTestClass() throws SQLException {
|
||||||
|
|
||||||
databaseManager.connect();
|
databaseManager.connect();
|
||||||
|
|
||||||
@@ -48,9 +45,26 @@ public class DatabaseGoodCasesTest {
|
|||||||
databaseManager.close();
|
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
|
@Test
|
||||||
@DisplayName("Assert that a simple Task could be inserted into the database")
|
@DisplayName("Assert that a simple Task could be inserted into the database")
|
||||||
public void assertInsertTask() throws SQLException, IOException, ExecutionControl.NotImplementedException {
|
public void assertInsertTask() throws SQLException {
|
||||||
|
|
||||||
Task testTask = new Task(1, 1, "Hello World", "Description");
|
Task testTask = new Task(1, 1, "Hello World", "Description");
|
||||||
|
|
||||||
@@ -60,8 +74,8 @@ public class DatabaseGoodCasesTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("Assert that simple Tasks could be inserted into the database")
|
@DisplayName("Assert that multiple Tasks could be inserted into the database")
|
||||||
public void assertInsertMultipleTasks() throws SQLException, IOException, ExecutionControl.NotImplementedException {
|
public void assertInsertMultipleTasks() throws SQLException {
|
||||||
|
|
||||||
Task testTaskZero = new Task(1, 1, "Hello", "Description");
|
Task testTaskZero = new Task(1, 1, "Hello", "Description");
|
||||||
Task testTaskOne = new Task(2, 2, "World", "Description");
|
Task testTaskOne = new Task(2, 2, "World", "Description");
|
||||||
@@ -76,4 +90,25 @@ public class DatabaseGoodCasesTest {
|
|||||||
databaseManager.saveObjects(tasks);
|
databaseManager.saveObjects(tasks);
|
||||||
databaseManager.close();
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user