6 Commits

10 changed files with 52 additions and 31 deletions

View File

@@ -19,14 +19,14 @@ public class SimpleDatabaseManager implements DatabaseManager {
private final static Path SELECT_TASK = Path.of("resources/sql/SelectTaskTable.sql"); private final static Path SELECT_TASK = Path.of("resources/sql/SelectTaskTable.sql");
private final static Path UPDATE_TASK = Path.of("resources/sql/UpdateTaskTable.sql"); private final static Path UPDATE_TASK = Path.of("resources/sql/UpdateTaskTable.sql");
private final static Path COUNT_ALL_TASK = Path.of("resources/sql/CountAllFieldsTask.sql"); private final static Path COUNT_ALL_TASK = Path.of("resources/sql/CountAllFieldsTask.sql");
private final static Path SELECT_ALL_TASK = Path.of("resources/sql/SelectAllFieldsTask.sql"); private final static Path SELECT_ALL_TASK = Path.of("resources/sql/SelectAllTask.sql");
private final static Path SELECT_TASK_BY_ID = Path.of("resources/sql/SelectTaskById.sql"); private final static Path SELECT_TASK_BY_ID = Path.of("resources/sql/SelectTaskById.sql");
private final static Path INSERT_WORKER = Path.of("resources/sql/InsertWorkerTable.sql"); private final static Path INSERT_WORKER = Path.of("resources/sql/InsertWorkerTable.sql");
private final static Path DELETE_WORKER = Path.of("resources/sql/DeleteWorkerTable.sql"); private final static Path DELETE_WORKER = Path.of("resources/sql/DeleteWorkerTable.sql");
private final static Path SELECT_WORKER = Path.of("resources/sql/SelectWorkerTable.sql"); private final static Path SELECT_WORKER = Path.of("resources/sql/SelectWorkerTable.sql");
private final static Path UPDATE_WORKER = Path.of("resources/sql/UpdateWorkerTable.sql"); private final static Path UPDATE_WORKER = Path.of("resources/sql/UpdateWorkerTable.sql");
private final static Path COUNT_ALL_WORKER = Path.of("resources/sql/CountAllFieldsWorker.sql"); private final static Path COUNT_ALL_WORKER = Path.of("resources/sql/CountAllFieldsWorker.sql");
private final static Path SELECT_ALL_WORKER = Path.of("resources/sql/SelectAllFieldsWorker.sql"); private final static Path SELECT_ALL_WORKER = Path.of("resources/sql/SelectAllWorker.sql");
private final static Path SELECT_WORKER_BY_ID = Path.of("resources/sql/SelectWorkerById.sql"); private final static Path SELECT_WORKER_BY_ID = Path.of("resources/sql/SelectWorkerById.sql");
public enum QueryMode { public enum QueryMode {
@@ -46,7 +46,7 @@ public class SimpleDatabaseManager implements DatabaseManager {
SELECT_WORKER_BY_ID, SELECT_WORKER_BY_ID,
} }
public String loadFile(QueryMode queryMode) throws IOException { private String loadFile(QueryMode queryMode) throws IOException {
switch (queryMode) { switch (queryMode) {
case INSERT_TASK -> { case INSERT_TASK -> {
return Files.readString(INSERT_TASK); return Files.readString(INSERT_TASK);
@@ -110,7 +110,7 @@ public class SimpleDatabaseManager implements DatabaseManager {
try { try {
query = loadFile(QueryMode.INSERT_TASK); query = loadFile(QueryMode.INSERT_TASK);
} catch (IOException e) { } catch (IOException e) {
System.err.println(e.getStackTrace()); e.printStackTrace();
return; return;
} }
try (PreparedStatement preparedStatement = connection.prepareStatement(query);) { try (PreparedStatement preparedStatement = connection.prepareStatement(query);) {
@@ -136,7 +136,7 @@ public class SimpleDatabaseManager implements DatabaseManager {
try { try {
query = loadFile(QueryMode.INSERT_WORKER); query = loadFile(QueryMode.INSERT_WORKER);
} catch (IOException e) { } catch (IOException e) {
System.err.println(e.getStackTrace()); e.printStackTrace();
return; return;
} }
try (PreparedStatement preparedStatement = connection.prepareStatement(query);) { try (PreparedStatement preparedStatement = connection.prepareStatement(query);) {
@@ -159,7 +159,7 @@ public class SimpleDatabaseManager implements DatabaseManager {
try { try {
query = loadFile(QueryMode.UPDATE_TASK); query = loadFile(QueryMode.UPDATE_TASK);
} catch (IOException e) { } catch (IOException e) {
System.err.println(e.getStackTrace()); e.printStackTrace();
return; return;
} }
try (PreparedStatement preparedStatement = connection.prepareStatement(query);) { try (PreparedStatement preparedStatement = connection.prepareStatement(query);) {
@@ -177,7 +177,7 @@ public class SimpleDatabaseManager implements DatabaseManager {
try { try {
query = loadFile(QueryMode.UPDATE_WORKER); query = loadFile(QueryMode.UPDATE_WORKER);
} catch (IOException e) { } catch (IOException e) {
System.err.println(e.getStackTrace()); e.printStackTrace();
return; return;
} }
try (PreparedStatement preparedStatement = connection.prepareStatement(query);) { try (PreparedStatement preparedStatement = connection.prepareStatement(query);) {
@@ -194,7 +194,7 @@ public class SimpleDatabaseManager implements DatabaseManager {
try { try {
query = loadFile(QueryMode.DELETE_TASK); query = loadFile(QueryMode.DELETE_TASK);
} catch (IOException e) { } catch (IOException e) {
System.err.println(e.getStackTrace()); e.printStackTrace();
return; return;
} }
try (PreparedStatement preparedStatement = connection.prepareStatement(query);) { try (PreparedStatement preparedStatement = connection.prepareStatement(query);) {
@@ -209,7 +209,7 @@ public class SimpleDatabaseManager implements DatabaseManager {
try { try {
query = loadFile(QueryMode.DELETE_WORKER); query = loadFile(QueryMode.DELETE_WORKER);
} catch (IOException e) { } catch (IOException e) {
System.err.println(e.getStackTrace()); e.printStackTrace();
return; return;
} }
try (PreparedStatement preparedStatement = connection.prepareStatement(query);) { try (PreparedStatement preparedStatement = connection.prepareStatement(query);) {
@@ -224,7 +224,7 @@ public class SimpleDatabaseManager implements DatabaseManager {
try { try {
query = loadFile(QueryMode.SELECT_ALL_TASK); query = loadFile(QueryMode.SELECT_ALL_TASK);
} catch (IOException e) { } catch (IOException e) {
System.err.println(e.getStackTrace()); e.printStackTrace();
return null; return null;
} }
@@ -257,7 +257,7 @@ public class SimpleDatabaseManager implements DatabaseManager {
try { try {
query = loadFile(QueryMode.SELECT_ALL_WORKER); query = loadFile(QueryMode.SELECT_ALL_WORKER);
} catch (IOException e) { } catch (IOException e) {
System.err.println(e.getStackTrace()); e.printStackTrace();
return null; return null;
} }
@@ -286,7 +286,7 @@ public class SimpleDatabaseManager implements DatabaseManager {
try { try {
query = loadFile(QueryMode.SELECT_TASK_BY_ID); query = loadFile(QueryMode.SELECT_TASK_BY_ID);
} catch (IOException e) { } catch (IOException e) {
System.err.println(e.getStackTrace()); e.printStackTrace();
return null; return null;
} }
@@ -320,7 +320,7 @@ public class SimpleDatabaseManager implements DatabaseManager {
try { try {
query = loadFile(QueryMode.SELECT_WORKER_BY_ID); query = loadFile(QueryMode.SELECT_WORKER_BY_ID);
} catch (IOException e) { } catch (IOException e) {
System.err.println(e.getStackTrace()); e.printStackTrace();
return null; return null;
} }
@@ -350,7 +350,7 @@ public class SimpleDatabaseManager implements DatabaseManager {
try { try {
query = loadFile(QueryMode.COUNT_ALL_TASK); query = loadFile(QueryMode.COUNT_ALL_TASK);
} catch (IOException e) { } catch (IOException e) {
System.err.println(e.getStackTrace()); e.printStackTrace();
return -1; return -1;
} }
try (Statement statement = connection.createStatement(); try (Statement statement = connection.createStatement();
@@ -370,7 +370,7 @@ public class SimpleDatabaseManager implements DatabaseManager {
try { try {
query = loadFile(QueryMode.COUNT_ALL_WORKER); query = loadFile(QueryMode.COUNT_ALL_WORKER);
} catch (IOException e) { } catch (IOException e) {
System.err.println(e.getStackTrace()); e.printStackTrace();
return -1; return -1;
} }
try (Statement statement = connection.createStatement(); try (Statement statement = connection.createStatement();

View File

@@ -19,6 +19,7 @@ public class BadCasesTest {
public void assertNewTasksAreNotNull() { public void assertNewTasksAreNotNull() {
int workerId = manager.createWorker("Alfred"); int workerId = manager.createWorker("Alfred");
assertThrows(IllegalArgumentException.class, () -> manager.addTask(workerId, null, null)); assertThrows(IllegalArgumentException.class, () -> manager.addTask(workerId, null, null));
manager.removeWorker(workerId);
} }
@Test @Test
@DisplayName("Assert List isn't empty after adding a task") @DisplayName("Assert List isn't empty after adding a task")
@@ -26,6 +27,8 @@ public class BadCasesTest {
int workerId = manager.createWorker("Alfred"); int workerId = manager.createWorker("Alfred");
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles"); int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
assertFalse(manager.getTaskMap().isEmpty()); assertFalse(manager.getTaskMap().isEmpty());
manager.removeWorker(workerId);
manager.removeTask(taskId);
} }
@Test @Test
@DisplayName("Assert only existing tasks can be edited") @DisplayName("Assert only existing tasks can be edited")
@@ -33,6 +36,7 @@ public class BadCasesTest {
int workerId = manager.createWorker("Alfred"); int workerId = manager.createWorker("Alfred");
assertThrows(IllegalArgumentException.class, () -> manager.editTask(workerId, 99969, "I", "am Illegal")); assertThrows(IllegalArgumentException.class, () -> manager.editTask(workerId, 99969, "I", "am Illegal"));
assertThrows(IllegalArgumentException.class, () -> manager.editTask(22200, 99969, "I", "am Illegal")); assertThrows(IllegalArgumentException.class, () -> manager.editTask(22200, 99969, "I", "am Illegal"));
manager.removeWorker(workerId);
} }
@Test @Test
@DisplayName("Assert Add Task is programmed defensively") @DisplayName("Assert Add Task is programmed defensively")
@@ -40,6 +44,7 @@ public class BadCasesTest {
int workerId = manager.createWorker("Alfred"); int workerId = manager.createWorker("Alfred");
assertThrows(IllegalArgumentException.class, () -> manager.addTask( 20203,"I", "am Illegal")); assertThrows(IllegalArgumentException.class, () -> manager.addTask( 20203,"I", "am Illegal"));
assertThrows(IllegalArgumentException.class, () -> manager.addTask( workerId,null, null)); assertThrows(IllegalArgumentException.class, () -> manager.addTask( workerId,null, null));
manager.removeWorker(workerId);
} }
@Test @Test
@DisplayName("Assert that Remove Task is programmed defensively") @DisplayName("Assert that Remove Task is programmed defensively")
@@ -67,5 +72,7 @@ public class BadCasesTest {
} catch (Exception e) { } catch (Exception e) {
fail("Should not crash just because a command is invalid"); fail("Should not crash just because a command is invalid");
} }
manager.removeWorker(workerId);
manager.removeTask(taskId);
} }
} }

View File

@@ -5,12 +5,8 @@ import hhn.temp.project.provider.SimpleDatabaseManager;
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;
import java.io.IOException;
import java.sql.SQLException; import java.sql.SQLException;
import static org.junit.jupiter.api.Assertions.*;
public class DatabaseBadCasesTest { public class DatabaseBadCasesTest {
private DatabaseManager databaseManager; private DatabaseManager databaseManager;
@@ -19,7 +15,7 @@ public class DatabaseBadCasesTest {
public void setup() throws SQLException { public void setup() throws SQLException {
databaseManager = new SimpleDatabaseManager(); databaseManager = new SimpleDatabaseManager();
databaseManager.connect(); databaseManager.connect();
databaseManager.clearDatabase(); //databaseManager.clearDatabase();
} }
@Test @Test
@@ -31,6 +27,9 @@ public class DatabaseBadCasesTest {
databaseManager.saveTask(task); databaseManager.saveTask(task);
databaseManager.saveTask(taskFaker); databaseManager.saveTask(taskFaker);
databaseManager.deleteTask(task.getTaskId());
databaseManager.deleteTask(taskFaker.getTaskId());
} }
@Test @Test
@@ -42,5 +41,8 @@ public class DatabaseBadCasesTest {
databaseManager.saveWorker(worker); databaseManager.saveWorker(worker);
databaseManager.saveWorker(workerFaker); databaseManager.saveWorker(workerFaker);
databaseManager.deleteWorker(worker.getId());
databaseManager.deleteWorker(workerFaker.getId());
} }
} }

View File

@@ -7,8 +7,6 @@ import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import java.io.IOException;
import java.net.URISyntaxException;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@@ -21,7 +19,7 @@ public class DatabaseGoodCasesTest {
public void setup() throws SQLException { public void setup() throws SQLException {
databaseManager = new SimpleDatabaseManager(); databaseManager = new SimpleDatabaseManager();
databaseManager.connect(); databaseManager.connect();
databaseManager.clearDatabase(); //databaseManager.clearDatabase();
} }
@Test @Test
@@ -39,7 +37,7 @@ public class DatabaseGoodCasesTest {
assertEquals(task.getName(), reTask.getName()); assertEquals(task.getName(), reTask.getName());
assertEquals(task.getWorkerId(), reTask.getWorkerId()); assertEquals(task.getWorkerId(), reTask.getWorkerId());
assertEquals(1, databaseManager.getTotalNumberOfTasks()); databaseManager.deleteTask(task.getTaskId());
} }
@Test @Test
@@ -55,9 +53,11 @@ public class DatabaseGoodCasesTest {
assertEquals(worker.getId(), reWorker.getId()); assertEquals(worker.getId(), reWorker.getId());
assertEquals(worker.getName(), reWorker.getName()); assertEquals(worker.getName(), reWorker.getName());
databaseManager.deleteWorker(worker.getId());
} }
@Test /*@Test
@DisplayName("Clearing the database (Task and Worker) test") @DisplayName("Clearing the database (Task and Worker) test")
public void clearDatabaseTest() throws SQLException, InterruptedException { public void clearDatabaseTest() throws SQLException, InterruptedException {
Task task1 = new Task(10, 5, "Hello", "World"); Task task1 = new Task(10, 5, "Hello", "World");
@@ -81,10 +81,5 @@ public class DatabaseGoodCasesTest {
assertEquals(0, databaseManager.getTotalNumberOfTasks()); assertEquals(0, databaseManager.getTotalNumberOfTasks());
assertEquals(0, databaseManager.getTotalNumberOfWorkers()); assertEquals(0, databaseManager.getTotalNumberOfWorkers());
} }*/
@Test
public void testRandom() throws IOException, URISyntaxException {
System.out.println(databaseManager.loadFile(SimpleDatabaseManager.QueryMode.INSERT_TASK));
}
} }

View File

@@ -23,6 +23,8 @@ public class GoodCasesTest {
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles"); int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
assertNotNull(manager.getTask(taskId)); assertNotNull(manager.getTask(taskId));
assertEquals("Run", manager.getTask(taskId).getName()); assertEquals("Run", manager.getTask(taskId).getName());
manager.removeWorker(workerId);
manager.removeTask(taskId);
} }
@Test @Test
@@ -32,6 +34,8 @@ public class GoodCasesTest {
int workerId = manager.createWorker("Alfred"); int workerId = manager.createWorker("Alfred");
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles"); int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
assertEquals(sizeCount + 1, manager.getTaskMap().size()); assertEquals(sizeCount + 1, manager.getTaskMap().size());
manager.removeWorker(workerId);
manager.removeTask(taskId);
} }
@Test @Test
@@ -42,6 +46,8 @@ public class GoodCasesTest {
manager.editTask(workerId, taskId, "Walk", "Walk 3 Miles"); manager.editTask(workerId, taskId, "Walk", "Walk 3 Miles");
assertEquals("Walk", manager.getTask(taskId).getName()); assertEquals("Walk", manager.getTask(taskId).getName());
assertEquals("Walk 3 Miles", manager.getTask(taskId).getDescription()); assertEquals("Walk 3 Miles", manager.getTask(taskId).getDescription());
manager.removeWorker(workerId);
manager.removeTask(taskId);
} }
@Test @Test
@@ -53,6 +59,7 @@ public class GoodCasesTest {
assertEquals(sizeCount + 1, manager.getTaskMap().size()); assertEquals(sizeCount + 1, manager.getTaskMap().size());
manager.removeTask(taskId); manager.removeTask(taskId);
assertEquals(sizeCount, manager.getTaskMap().size()); assertEquals(sizeCount, manager.getTaskMap().size());
manager.removeWorker(workerId);
} }
@Test @Test
@@ -62,6 +69,7 @@ public class GoodCasesTest {
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles"); int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
manager.removeTask(taskId); manager.removeTask(taskId);
assertThrows(IllegalArgumentException.class, () -> manager.getTask(taskId)); assertThrows(IllegalArgumentException.class, () -> manager.getTask(taskId));
manager.removeWorker(workerId);
} }
@Test @Test
@@ -74,6 +82,8 @@ public class GoodCasesTest {
assertEquals(manager.getWorkerMap().get(workerId).getId(), workerId); assertEquals(manager.getWorkerMap().get(workerId).getId(), workerId);
assertEquals(manager.getTask(taskId).getTaskId(), taskId); assertEquals(manager.getTask(taskId).getTaskId(), taskId);
assertEquals(manager.getTask(taskId).getWorkerId(), workerId); assertEquals(manager.getTask(taskId).getWorkerId(), workerId);
manager.removeWorker(workerId);
manager.removeTask(taskId);
} }
@@ -86,6 +96,8 @@ public class GoodCasesTest {
assertSame(TaskState.FINISHED, manager.getTask(taskId).getTaskState()); assertSame(TaskState.FINISHED, manager.getTask(taskId).getTaskState());
manager.unfinishTask(workerId, taskId); manager.unfinishTask(workerId, taskId);
assertSame(TaskState.IN_PROGRESS, manager.getTask(taskId).getTaskState()); assertSame(TaskState.IN_PROGRESS, manager.getTask(taskId).getTaskState());
manager.removeWorker(workerId);
manager.removeTask(taskId);
} }
@Test @Test
@@ -120,6 +132,7 @@ public class GoodCasesTest {
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("remove")); assertDoesNotThrow(() -> manager.getUserCommands().handleInput("remove"));
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("back")); assertDoesNotThrow(() -> manager.getUserCommands().handleInput("back"));
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("edit")); assertDoesNotThrow(() -> manager.getUserCommands().handleInput("edit"));
manager.removeWorker(workerId);
} }
@Test @Test
@DisplayName("Check that editing is possible through UI") @DisplayName("Check that editing is possible through UI")
@@ -133,6 +146,8 @@ public class GoodCasesTest {
assertEquals("Walk", manager.getTask(taskId).getName()); assertEquals("Walk", manager.getTask(taskId).getName());
assertEquals("Walk 3 Miles", manager.getTask(taskId).getDescription()); assertEquals("Walk 3 Miles", manager.getTask(taskId).getDescription());
manager.getUserCommands().handleInput("back"); manager.getUserCommands().handleInput("back");
manager.removeWorker(workerId);
manager.removeTask(taskId);
} }
@Test @Test
@DisplayName("Assert that removing Workers is possible through the UI") @DisplayName("Assert that removing Workers is possible through the UI")
@@ -144,6 +159,8 @@ public class GoodCasesTest {
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("remove")); assertDoesNotThrow(() -> manager.getUserCommands().handleInput("remove"));
manager.getUserCommands().handleInput(workerId2 + ""); manager.getUserCommands().handleInput(workerId2 + "");
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("back")); assertDoesNotThrow(() -> manager.getUserCommands().handleInput("back"));
manager.removeWorker(workerId);
manager.removeWorker(workerId2);
} }
@Test @Test
@DisplayName("Assert that removing a worker removes the worker from the worker list") @DisplayName("Assert that removing a worker removes the worker from the worker list")