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());