156 lines
7.0 KiB
Java
156 lines
7.0 KiB
Java
package hhn.temp.project;
|
|
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.DisplayName;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import java.util.Scanner;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
public class GoodCasesTest {
|
|
AssignmentManager manager;
|
|
|
|
@BeforeEach
|
|
public void setup() {
|
|
manager = new AssignmentManager();
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("Assert that a Worker can add a Task")
|
|
public void assertWorkerCanAddTask() {
|
|
int workerId = manager.createWorker("Alfred");
|
|
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
|
|
assertNotNull(manager.getTask(taskId));
|
|
assertEquals("Run", manager.getTask(taskId).getName());
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("Assert that added Tasks are added to the List")
|
|
public void assertTasksShowInList() {
|
|
int sizeCount = manager.getTaskMap().size();
|
|
int workerId = manager.createWorker("Alfred");
|
|
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
|
|
assertEquals(sizeCount + 1, manager.getTaskMap().size());
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("Assert existing Tasks can be edited")
|
|
public void assertExistingTasksCanBeEdited() {
|
|
int workerId = manager.createWorker("Alfred");
|
|
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
|
|
manager.editTask(workerId, taskId, "Walk", "Walk 3 Miles");
|
|
assertEquals("Walk", manager.getTask(taskId).getName());
|
|
assertEquals("Walk 3 Miles", manager.getTask(taskId).getDescription());
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("Assert that Worker can remove Task")
|
|
public void assertWorkerCanRemoveOwnTask() {
|
|
int sizeCount = manager.getTaskMap().size();
|
|
int workerId = manager.createWorker("Alfred");
|
|
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
|
|
assertEquals(sizeCount + 1, manager.getTaskMap().size());
|
|
manager.removeTask(taskId);
|
|
assertEquals(sizeCount, manager.getTaskMap().size());
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("Assert deleted Tasks no longer show up in the List")
|
|
public void assertDeletedTasksDisappear() {
|
|
int workerId = manager.createWorker("Alfred");
|
|
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
|
|
manager.removeTask(taskId);
|
|
assertThrows(IllegalArgumentException.class, () -> manager.getTask(taskId));
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("Check Getters")
|
|
public void assertGettersWorkCorrectly() {
|
|
int workerId = manager.createWorker("Alfred");
|
|
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
|
|
assertEquals("Alfred", manager.workerMap.get(workerId).getName());
|
|
//This one may be somewhat nonsensical, but it ensures the getId works so one may iterate over the workerMap
|
|
assertEquals(manager.workerMap.get(workerId).getId(), workerId);
|
|
assertEquals(manager.getTask(taskId).getTaskId(), taskId);
|
|
assertEquals(manager.getTask(taskId).getWorkerId(), workerId);
|
|
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("Assert that Task State is actually changed when submitted as finished")
|
|
public void assertTaskStateChanges() {
|
|
int workerId = manager.createWorker("Alfred");
|
|
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
|
|
manager.finishTask(workerId, taskId);
|
|
assertSame(TaskState.FINISHED, manager.getTask(taskId).getTaskState());
|
|
manager.unfinishTask(workerId, taskId);
|
|
assertSame(TaskState.IN_PROGRESS, manager.getTask(taskId).getTaskState());
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("Assert that the Scanner is actually started when AM calls start")
|
|
public void assertScannerExists() {
|
|
try {
|
|
Scanner scanner = manager.getUserCommands().getScanner();
|
|
} catch (Exception e) {
|
|
fail("Scanner does not exists or can't be gotten by getScanner()");
|
|
}
|
|
}
|
|
@Test
|
|
@DisplayName("Check that every required surface command actually works")
|
|
public void assertCommandsAreRecognized() {
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("?"));
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("help"));
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("createWorker"));
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("createTask"));
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("selectTask"));
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("listWorkers"));
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("exit"));
|
|
}
|
|
@Test
|
|
@DisplayName("Check that every task command works")
|
|
public void assertFinishingTasksIsPossibleThroughUi() {
|
|
int workerId = manager.createWorker("Alfred");
|
|
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
|
|
manager.getUserCommands().handleInput("selectTask");
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput(taskId + ""));
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("finish"));
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("unfinish"));
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("remove"));
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("back"));
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("edit"));
|
|
}
|
|
@Test
|
|
@DisplayName("Check that editing is possible through UI")
|
|
public void assertEditingTasksIsPossibleThroughUi() {
|
|
int workerId = manager.createWorker("Alfred");
|
|
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
|
|
manager.getUserCommands().handleInput("selectTask");
|
|
manager.getUserCommands().handleInput(taskId + "");
|
|
manager.getUserCommands().handleInput("edit");
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("Walk;Walk 3 Miles"));
|
|
assertEquals("Walk", manager.getTask(taskId).getName());
|
|
assertEquals("Walk 3 Miles", manager.getTask(taskId).getDescription());
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("back"));
|
|
}
|
|
@Test
|
|
@DisplayName("Assert that removing Workers is possible through the UI")
|
|
public void assertRemovingWorkersIsPossibleThroughUI() {
|
|
int workerId = manager.createWorker("Alfred");
|
|
int workerId2 = manager.createWorker("Balfred");
|
|
manager.getUserCommands().handleInput("listWorkers");
|
|
manager.getUserCommands().handleInput(workerId + "");
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("remove"));
|
|
manager.getUserCommands().handleInput(workerId2 + "");
|
|
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("back"));
|
|
}
|
|
@Test
|
|
@DisplayName("Assert that removing a worker removes the worker from the worker list")
|
|
public void assertRemoveWorkerActuallyRemoves() {
|
|
int workerId = manager.createWorker("Alfred");
|
|
manager.removeWorker(workerId);
|
|
assertThrows(IllegalArgumentException.class, () -> manager.workerMap.containsKey(workerId));
|
|
}
|
|
}
|