ScannerImplementation #5
@@ -26,11 +26,14 @@ public class AssignmentManager {
|
|||||||
workerMap.put(workerIdCounter, worker);
|
workerMap.put(workerIdCounter, worker);
|
||||||
return workerIdCounter;
|
return workerIdCounter;
|
||||||
}
|
}
|
||||||
|
public void removeWorker(int workerId) {
|
||||||
|
workerMap.remove(workerId);
|
||||||
|
}
|
||||||
public int addTask(int workerId, String name, String description) {
|
public int addTask(int workerId, String name, String description) {
|
||||||
if (!workerMap.containsKey(workerId) || name == null || description == null) {
|
if (!workerMap.containsKey(workerId) || name == null || description == null) {
|
||||||
throw new IllegalArgumentException("WorkerId must exist and name or description can't be 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);
|
taskMap.put(taskIdCounter, task);
|
||||||
return taskIdCounter;
|
return taskIdCounter;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,8 @@ public class Task {
|
|||||||
String description;
|
String description;
|
||||||
int taskId;
|
int taskId;
|
||||||
int workerId;
|
int workerId;
|
||||||
AssignmentManager manager;
|
|
||||||
TaskState state;
|
TaskState state;
|
||||||
public Task(int taskId, int workerId, String name, String description, AssignmentManager manager) {
|
public Task(int taskId, int workerId, String name, String description) {
|
||||||
this.manager = manager;
|
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.taskId = taskId;
|
this.taskId = taskId;
|
||||||
|
|||||||
@@ -52,4 +52,20 @@ public class BadCasesTest {
|
|||||||
assertThrows(IllegalArgumentException.class, () -> manager.finishTask(20405, 21034));
|
assertThrows(IllegalArgumentException.class, () -> manager.finishTask(20405, 21034));
|
||||||
assertThrows(IllegalArgumentException.class, () -> manager.unfinishTask(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");
|
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
|
||||||
manager.getUserCommands().handleInput("selectTask");
|
manager.getUserCommands().handleInput("selectTask");
|
||||||
assertDoesNotThrow(() -> manager.getUserCommands().handleInput(taskId));
|
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