package net.sourceforge.ganttproject.test.task.dependency; import net.sourceforge.ganttproject.task.Task; import net.sourceforge.ganttproject.task.TaskMutator; import net.sourceforge.ganttproject.task.dependency.constraint.FinishFinishConstraintImpl; import net.sourceforge.ganttproject.task.dependency.constraint.FinishStartConstraintImpl; import net.sourceforge.ganttproject.test.task.TaskTestCase; public class Test1362749 extends TaskTestCase{ public void testBugReport1362749() throws Exception { Task t1 = getTaskManager().createTask(); Task t2 = getTaskManager().createTask(); Task t3 = getTaskManager().createTask(); Task t4 = getTaskManager().createTask(); getTaskManager().getDependencyCollection().createDependency(t4, t3, new FinishStartConstraintImpl()); getTaskManager().getDependencyCollection().createDependency(t1, t3, new FinishFinishConstraintImpl()); getTaskManager().getDependencyCollection().createDependency(t2, t4, new FinishFinishConstraintImpl()); TaskMutator mutator = t3.createMutator(); mutator.setDuration(getTaskManager().createLength(3)); mutator.commit(); getTaskManager().getAlgorithmCollection().getRecalculateTaskScheduleAlgorithm().run(t3); assertEquals("Task="+t4+" is expected to start when task="+t3+" finishes", t3.getEnd(), t4.getStart()); assertEquals("Task="+t1+" is expected to finish together with task="+t3, t1.getEnd(), t3.getEnd()); assertEquals("Task="+t2+" is expected to finish together with task="+t4, t2.getEnd(), t4.getEnd()); assertTrue("It is expected that start date of task="+t1+" is less than start date of task="+t2, t1.getStart().compareTo(t2.getStart())<0); } }