package net.sourceforge.ganttproject.test.task; import java.util.List; import biz.ganttproject.core.time.CalendarFactory; import net.sourceforge.ganttproject.task.Task; import net.sourceforge.ganttproject.task.TaskActivity; import net.sourceforge.ganttproject.task.TaskMutator; /** * @author bard */ public class TestTaskActivitiesRecalculation extends TaskTestCase { public void testRecalculateOnChangingDurationByMutator() { Task task = getTaskManager().createTask(); { task.setStart(CalendarFactory.createGanttCalendar(2000, 0, 3)); task.setDuration(getTaskManager().createLength(1)); List<TaskActivity> activities = task.getActivities(); assertEquals("Unexpected length of activities", 1, activities.size()); assertEquals("Unexpected end of the las activity", CalendarFactory.createGanttCalendar(2000, 0, 4).getTime(), activities.get(0).getEnd()); } // { TaskMutator mutator = task.createMutator(); mutator.setDuration(getTaskManager().createLength(2)); List<TaskActivity> activities = task.getActivities(); assertEquals("Unexpected length of activities", 1, activities.size()); assertEquals("Unexpected end of the last activity", CalendarFactory.createGanttCalendar(2000, 0, 5).getTime(), activities.get(0).getEnd()); } } public void testRecalculateOnChangingStartByFixingDurationMutator() { Task task = getTaskManager().createTask(); { task.setStart(CalendarFactory.createGanttCalendar(2000, 0, 3)); task.setDuration(getTaskManager().createLength(3)); } { TaskMutator mutator = task.createMutatorFixingDuration(); mutator.setStart(CalendarFactory.createGanttCalendar(2000, 0, 4)); mutator.commit(); List<TaskActivity> activities = task.getActivities(); assertEquals("Unexpected length of activities", 1, activities.size()); assertEquals("Unexpected end of the last activity", CalendarFactory.createGanttCalendar(2000, 0, 7).getTime(), activities.get(0).getEnd()); } } }