package com.metservice.kanban.model;
import static java.util.Arrays.asList;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import org.junit.Test;
public class DefaultKanbanProjectTest {
@Test
public void canDeleteWorkItems() {
WorkItemTree tree = mock(WorkItemTree.class);
DefaultKanbanProject project = new DefaultKanbanProject(null, null, tree, null, null);
project.deleteWorkItem(7);
verify(tree).delete(7);
}
@Test
public void canReparentWorkItems() {
WorkItemTree tree = mock(WorkItemTree.class);
DefaultKanbanProject project = new DefaultKanbanProject(null, null, tree, null, null);
project.reparentWorkItem(11, 2);
verify(tree).reparent(11, 2);
}
@Test
public void reorderIsCalledProperly() {
WorkItemTree tree = mock(WorkItemTree.class);
WorkItem workItem1 = new WorkItem(1, new WorkItemType());
WorkItem workItem2 = new WorkItem(2, new WorkItemType());
WorkItem workItem3 = new WorkItem(3, new WorkItemType());
when(tree.getWorkItem(1)).thenReturn(workItem1);
when(tree.getWorkItem(2)).thenReturn(workItem2);
when(tree.getWorkItem(3)).thenReturn(workItem3);
DefaultKanbanProject project = new DefaultKanbanProject(null, null, tree, null, null);
project.reorder(1, new Integer[] {2,1,3});
verify(tree).reorder(workItem1, asList(workItem2, workItem1, workItem3));
project.reorder(1, new Integer[] {2,3,1});
verify(tree).reorder(workItem1, asList(workItem2, workItem3, workItem1));
project.reorder(1, new Integer[] {1,2,3});
verify(tree).reorder(workItem1, asList(workItem1, workItem2, workItem3));
}
}