ScannerImplementation #5
@@ -26,11 +26,14 @@ public class AssignmentManager {
|
||||
workerMap.put(workerIdCounter, worker);
|
||||
return workerIdCounter;
|
||||
}
|
||||
public void removeWorker(int workerId) {
|
||||
workerMap.remove(workerId);
|
||||
}
|
||||
public int addTask(int workerId, String name, String description) {
|
||||
if (!workerMap.containsKey(workerId) || name == null || description == null) {
|
||||
throw new IllegalArgumentException("WorkerId must exist and name or description can't be null");
|
||||
}
|
||||
Task task = new Task(++taskIdCounter, workerId, name, description, this);
|
||||
Task task = new Task(++taskIdCounter, workerId, name, description);
|
||||
taskMap.put(taskIdCounter, task);
|
||||
return taskIdCounter;
|
||||
}
|
||||
|
||||
@@ -5,10 +5,8 @@ public class Task {
|
||||
String description;
|
||||
int taskId;
|
||||
int workerId;
|
||||
AssignmentManager manager;
|
||||
TaskState state;
|
||||
public Task(int taskId, int workerId, String name, String description, AssignmentManager manager) {
|
||||
this.manager = manager;
|
||||
public Task(int taskId, int workerId, String name, String description) {
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
this.taskId = taskId;
|
||||
|
||||
@@ -52,4 +52,20 @@ public class BadCasesTest {
|
||||
assertThrows(IllegalArgumentException.class, () -> manager.finishTask(20405, 21034));
|
||||
assertThrows(IllegalArgumentException.class, () -> manager.unfinishTask(20405, 21034));
|
||||
}
|
||||
@Test
|
||||
@DisplayName("Assert that removing a non-existent worker throws an Exception")
|
||||
public void assertRemovingNonExistentWorkerFails() {
|
||||
assertThrows(IllegalArgumentException.class, () -> manager.removeWorker(34054));
|
||||
}
|
||||
@Test
|
||||
@DisplayName("Assert non-existent commands are recognized as such")
|
||||
public void assertInvalidCommandsDontCrash() {
|
||||
int workerId = manager.createWorker("Alfred");
|
||||
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
|
||||
try {
|
||||
manager.getUserCommands().handleInput("baum");
|
||||
} catch (Exception e) {
|
||||
fail("Should not crash just because a command is invalid");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +113,41 @@ public class GoodCasesTest {
|
||||
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
|
||||
manager.getUserCommands().handleInput("selectTask");
|
||||
assertDoesNotThrow(() -> manager.getUserCommands().handleInput(taskId));
|
||||
assertDoesNotThrow(() -> manager.getUserCommands().handleInput("finishTask"));
|
||||
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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user