79 lines
3.2 KiB
Java
79 lines
3.2 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 static org.junit.jupiter.api.Assertions.*;
|
|
|
|
public class BadCasesTest {
|
|
AssignmentManager manager;
|
|
|
|
@BeforeEach
|
|
public void setup() {
|
|
manager = new AssignmentManager();
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("Assert that added tasks can't be Null")
|
|
public void assertNewTasksAreNotNull() {
|
|
int workerId = manager.createWorker("Alfred");
|
|
assertThrows(IllegalArgumentException.class, () -> manager.addTask(workerId, null, null));
|
|
manager.removeWorker(workerId);
|
|
}
|
|
@Test
|
|
@DisplayName("Assert List isn't empty after adding a task")
|
|
public void assertListNowEmptyAfterAdd() {
|
|
int workerId = manager.createWorker("Alfred");
|
|
int taskId = manager.addTask(workerId, "Run", "Jog 10 Miles");
|
|
assertFalse(manager.getTaskMap().isEmpty());
|
|
manager.removeWorker(workerId);
|
|
manager.removeTask(taskId);
|
|
}
|
|
@Test
|
|
@DisplayName("Assert only existing tasks can be edited")
|
|
public void assertEditOnlyExistingTasks() {
|
|
int workerId = manager.createWorker("Alfred");
|
|
assertThrows(IllegalArgumentException.class, () -> manager.editTask(workerId, 99969, "I", "am Illegal"));
|
|
assertThrows(IllegalArgumentException.class, () -> manager.editTask(22200, 99969, "I", "am Illegal"));
|
|
manager.removeWorker(workerId);
|
|
}
|
|
@Test
|
|
@DisplayName("Assert Add Task is programmed defensively")
|
|
public void assertAddTaskOnlyAcceptsValidParameters() {
|
|
int workerId = manager.createWorker("Alfred");
|
|
assertThrows(IllegalArgumentException.class, () -> manager.addTask( 20203,"I", "am Illegal"));
|
|
assertThrows(IllegalArgumentException.class, () -> manager.addTask( workerId,null, null));
|
|
manager.removeWorker(workerId);
|
|
}
|
|
@Test
|
|
@DisplayName("Assert that Remove Task is programmed defensively")
|
|
public void assertRemoveTaskOnlyAcceptsValidParameters() {
|
|
assertThrows(IllegalArgumentException.class, () -> manager.removeTask(20320));
|
|
}
|
|
@Test
|
|
@DisplayName("Assert that un-/finishing a Task only works with valid parameters")
|
|
public void assertTaskStateChangesOnlyAcceptsValidParameters() {
|
|
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");
|
|
}
|
|
manager.removeWorker(workerId);
|
|
manager.removeTask(taskId);
|
|
}
|
|
}
|