package managers;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import org.junit.Test;
import models.WorkItemStateType;
public class WorkItemManagerTest extends Setup {
@Test
public void testDelete() {
workItemManager.delete(workItem.id);
assertFalse(transition.isActive);
assertFalse(workItem.isActive);
}
@Test
public void testCreate() {
workItemManager.create(workItem);
assertEquals(WorkItemStateType.INITIAL, workItem.state);
}
@Test
public void testAssign() {
workItemManager.assign(workItem.id, user.id, null, null);
assertEquals(WorkItemStateType.IN_PROCESS, workItem.state);
assertEquals(workItem.assignee.id, user.id);
assertEquals(workItem.history.get(workItem.history.size() - 1).toState, WorkItemStateType.IN_PROCESS);
assertEquals(workItem.history.get(workItem.history.size() - 1).toAssignee.id, user.id);
}
@Test
public void testProcess() {
// unassign the workitem from last station to test processing workItem
// in non-final stations.
workItem.station = null;
workItemManager.process(workItem.id, null, null);
assertEquals(WorkItemStateType.PROCESSED, workItem.state);
assertEquals(workItem.history.get(workItem.history.size() - 1).toState, WorkItemStateType.PROCESSED);
}
@Test
public void testProcessFromLastStation() {
// workItem is in last station so processing it means it is completed
workItemManager.process(workItem.id, null, null);
assertEquals(WorkItemStateType.COMPLETED, workItem.state);
assertEquals(workItem.history.get(workItem.history.size() - 1).toState, WorkItemStateType.COMPLETED);
}
@Test
public void testNext() {
workItemManager.next(workItem.id, station.id, null, null);
assertEquals(WorkItemStateType.UNASSIGNED, workItem.state);
assertEquals(workItem.assignee, null);
assertEquals(workItem.station.id, station.id);
assertEquals(workItem.history.get(workItem.history.size() - 1).toState, WorkItemStateType.UNASSIGNED);
assertEquals(workItem.history.get(workItem.history.size() - 1).toAssignee, null);
assertEquals(workItem.history.get(workItem.history.size() - 1).toStation.id, station.id);
}
}